ПиОА Сем 1 Лекция 2 Схемы алгоритмов_операторы


Чтобы посмотреть презентацию с картинками, оформлением и слайдами, скачайте ее файл и откройте в PowerPoint на своем компьютере.
Текстовое содержимое слайдов презентации:

Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 1. Схемы алгоритмов Операторы языка Pascal Терминатор (вход, выход) Операция Решение Предопределенный процесс Ввод, вывод данных Граница цикла Комментарий Соединитель * 1. Схемы алгоритмов Операторы языка Pascal Линии потока Излом линии Пересечение линий потока Слияние линий потока, место слияний потока обозначено точкой * 1. Схемы алгоритмов Операторы языка Pascal a = 10, 15, 20 мм.b =1.5a * 1. Схемы алгоритмов Операторы языка Pascal Схема алгоритма решения квадратного уравнения Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 2. Подпрограммы ввода-вывода Операторы языка Pascal Ввод данных с клавиатуры: Read(<Список ввода>); Readln(<Список ввода>); Вывод данных на экран: Write(<Список вывода>); Writeln(<Список вывода>); Readln; Writeln; * 2. Подпрограммы ввода-вывода Операторы языка Pascal var a: integer; b: real; begin readln(a,b); writeln(a); writeln(b); end. Вариант ввода 1:1 10.12110.12 Вариант ввода 2:1112.11112.1 * 2. Подпрограммы ввода-вывода Операторы языка Pascal Форматированный вывод Символ «:» задает формат вывода числа Write(x:5); // под вывод числа отводится 5 символов,// не хватает - расширяется Write(x:5:2);// под число – 5 символов, // под дробную часть – 2 символа * 2. Подпрограммы ввода-вывода Операторы языка Pascal var x: real; y : integer;beginx:=12345.1537; y := 10;write(y); write(x); writeln;writeln(y,x); writeln(y,'-',x);writeln('Переменная y=',y,', переменная x=',x);writeln(y,x:12);writeln(x:2:3); writeln(x:3:4);writeln(x:15:2);end. Результат:1012345.15371012345.153710-12345.1537Переменная y=10, переменная x=12345.153710 12345.153712345.15412345.1537 12345.15 Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 3. Составной оператор Операторы языка Pascal Составной оператор – это последовательность произвольных операторов программы, заключенная в операторные скобки – зарезервированные слова BEGIN … END. Составные операторы обрабатываются, как один оператор. Это имеет решающее значение там, где синтаксис Паскаля допускает использование только одного оператора. begin………beginZ := X;X := Y;end;end; Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 4. Условный оператор Операторы языка Pascal Структура полной формы условного оператора:IF <условие> THEN <оператор1> ELSE <оператор2> где IF, THEN, ELSE – зарезервированные слова (если, то, иначе);<условие> – произвольное выражение логического типа;<оператор1>, <оператор2> – любые операторы * 4. Условный оператор Операторы языка Pascal Структура краткой формы условного оператора:IF <условие> THEN <оператор1> * 4. Условный оператор Операторы языка Pascal var x, y, max: real;begin... {ввод значений x, y, max}if x>max then //Полная форма условного оператора y := maxelse y := x;...end. var x, y, max: real;begin... {ввод значений x, y, max}y := x;if y>max then //Краткая форма условного оператора y := max;...end. * 4. Условный оператор Операторы языка Pascal var a, b, c, max: integer;begin...if a>b then if b>c then max := a else if a>c then max := a else max := celse {b>a} if b>c then max := b else max := c;wirteln(‘Max = ‘, max);end. var a, b, c, max: integer;begin...max := a;if b>max then max := b;if c>max then max := c;wirteln(‘Max = ‘, max);end. Пример. Отыскание наибольшего из трех чисел * 4. Условный оператор Операторы языка Pascal Схема алгоритма к задаче поиска наибольшего из трех чисел * 4. Условный оператор Операторы языка Pascal Пример: Вывести на экран сообщение попадает ли значение введенной переменной в отрезок [10; 20] var a:integer;begin writeln('Введите значение переменной'); readln(a); if a >= 10 and a<=20 then writeln('Значение "a" попадает в отрезок [10; 20]') else writeln('Значение "a" не попадает в отрезок [10; 20]');end. var a:integer;begin writeln('Введите значение переменной'); readln(a); if (a >= 10) and (a<=20) then writeln('Значение "a" попадает в отрезок [10; 20]') else writeln('Значение "a" не попадает в отрезок [10; 20]');end. ОШИБКА: Операция '>=' не применима к типам integer и boolean Верно Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 5. Оператор выбора CASE Операторы языка Pascal Структура:case <ключ выбора> of  <список выбора 1>: <оператор1>;  ...  <список выбора N>: <операторN>;else <оператор0>end;Здесь CASE, OF, ELSE, END – зарезервированные слова (случай, из, иначе, конец);< список выбора>: <оператор>;(< список выбора > – константа того же типа, что и <ключ выбора>);<оператор> – произвольный оператор Турбо Паскаля * 5. Оператор выбора CASE Операторы языка Pascal Схема алгоритма оператора выбора CASE * 5. Оператор выбора CASE Операторы языка Pascal var x,y,z: real; operation: char; {знак операции} stop: boolean; {признак ошибочной операции и останов}beginstop := false;repeat writeln; {пустая строка-разделитель} write(’x, y =’); readln(x,y); write(’операция:’); readln(operation); case operation of ’+’: z := x+y; ’-’: z := x-y; ’/’: z := x/y; ’*’: z := x*y; else stop := true; end; if not stop then writeln(’результат = ’, z);until stop;end. Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 6. Операторы цикла Операторы языка Pascal Цикл – повторение одних и тех же действий Тело цикла – последовательность действий, которая повторяется в цикле Шаг цикла – один проход цикла Параметры цикла – переменные, которые изменяются внутри цикла и влияют на его окончания ВАЖНО:– цикл всегда должен закончиться, содержимое тела должно обязательно влиять на его окончание– условие выхода из цикла должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 7. Оператор цикла for Операторы языка Pascal СтруктураFOR <парам. цикла> := <нач. знач.> TO <кон. знач.> DO <оператор>;FOR <парам. цикла> := <кон. знач.> DOWNTO <нач. знач.> DO <оператор>;Здесь FOR, TO, DO – зарезервированные слова (для, до, выполнить) <парам. цикла> – переменная перечисляемого типа; <нач. знач.> и <кон. знач.> – выражения переменная перечисляемого типа; <оператор> – произвольный оператор Паскаля * 7. Оператор цикла for Операторы языка Pascal Пример. Расчёт факториала числа N var i, N, fact: integer;begin write(‘Введите N:’); readln(N); fact := 1; for i := 1 to N do fact := fact*i; writeln(‘N!=’,fact);end. var i, N, fact: integer;begin write(‘Введите N:’); readln(N); fact := 1; for i := N downto 1 do fact := fact*i; writeln(‘N!=’,fact);end. * 7. Оператор цикла for Операторы языка Pascal var i: integer;begin writeln('начало цикла'); for i := 1 to 3 do writeln('счетчик ',i); writeln('цикл завершился');end. var i: integer;begin writeln('начало цикла'); for i := 10 downto 8 do writeln('счетчик ',i); writeln('цикл завершился');end. начало цикласчетчик 1счетчик 2счетчик 3цикл завершился начало цикласчетчик 10счетчик 9счетчик 8цикл завершился * 7. Оператор цикла for Операторы языка Pascal var i: integer;begin writeln('начало цикла'); for i := 5 to 2 do writeln('счетчик ',i); writeln('цикл завершился');end. var i: integer;begin writeln('начало цикла'); for i := 10 downto 11 do writeln('счетчик ',i); writeln('цикл завершился');end. начало циклацикл завершился начало циклацикл завершился * 7. Оператор цикла for Операторы языка Pascal var i,x: integer;begin writeln('начало цикла'); x := 1; for i := 1 to 5 do begin x := x + 2; writeln('счетчик ',i, ' x=',x); end; writeln('цикл завершился');end. начало цикласчетчик 1 x=3счетчик 2 x=5счетчик 3 x=7счетчик 4 x=9счетчик 5 x=11цикл завершился * 7. Оператор цикла for Операторы языка Pascal var i: integer;begin writeln('начало цикла'); for i := 1 to 5 do ; writeln('счетчик ',i); writeln('цикл завершился');end. начало цикласчетчик 5цикл завершился Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 8. Оператор цикла while Операторы языка Pascal СтруктураWHILE <условие> DO <оператор>Здесь WHILE, DO – зарезервированные слова (пока [выполняется условие], делать)<условие> – произвольное выражение логического типа;<оператор> – произвольный оператор. * 8. Оператор цикла while Операторы языка Pascal var run: boolean; x : integer;begin run := true; x := 0; while run do begin writeln('в цикле x=',x); x := x + 1; if x>=3 then run := false; end; writeln('после цикла x=',x);end. в цикле x=0в цикле x=1в цикле x=2после цикла x=3 * 8. Оператор цикла while Операторы языка Pascal program mdp;function f(x: real): real; begin f:=exp(x*ln(5))-6*x-3; end;var a, b, e, c, x: real;begin a:=1; b:=2; write ('задайте точность e='); read(e); c:=(a+b)/2; while abs(b-a)>e do begin if f(a)*f(c)<0 then b:=c else a:=c; c:=(a+b)/2; end; x:=(a+b)/2; writeln ('x=',x:3:3,' f(x)=',f(x):4:4);end. Пример. Отделение корня на отрезке методом половинного деления. Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 9. Оператор цикла repeat..until Операторы языка Pascal СтруктураREPEAT <тело цикла> UNTIL <условие>Здесь REPEAT, UNTIL – зарезервированные слова (повторять до тех пор, пока не будет выполнено условие) <тело цикла> – произвольная последовательность операторов. <условие> – произвольное выражение логического типа * 9. Оператор цикла repeat..until Операторы языка Pascal const ENTER = 13;var ch: char;beginrepeat readln(ch); writeln(‘Код символа ’’’, ch, ’’’ – ’, ord(ch) );until ord(ch) = ENTERend. Пример. Вывод ASCII-кода символа. 1Код символа '1' – 49 Код символа ' ' – 32rКод символа 'r' – 114RКод символа 'R' – 82Код символа '' – 13 * 9. Оператор цикла repeat..until Операторы языка Pascal var i,N: integer; a,b,h,x,y : real;begin writeln('введите параметры отрезка [a,b], h'); write('a=');readln(a); write('b=');readln(b); write('h=');readln(h); x := a; N := trunc((b-a)/h)+1; for i := 1 to N do begin y := 2*x + 3; writeln('y(',x,')=',y); x := x + h; end;end. Рассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h При помощи цикла for * 9. Оператор цикла repeat..until Операторы языка Pascal var i,N: integer; a,b,h,x,y : real;begin writeln('введите параметры отрезка [a,b], h'); write('a=');readln(a); write('b=');readln(b); write('h=');readln(h); x := a; while not (x > b) do begin y := 2*x + 3; writeln('y(',x,')=',y); x := x + h; end;end. Рассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h При помощи цикла while * 9. Оператор цикла repeat..until Операторы языка Pascal var i,N: integer; a,b,h,x,y : real;begin writeln('введите параметры отрезка [a,b], h'); write('a=');readln(a); write('b=');readln(b); write('h=');readln(h); x := a; repeat y := 2*x + 3; writeln('y(',x,')=',y); x := x + h; until x > bend. Рассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h При помощи цикла repeat..until * 9. Оператор цикла repeat..until Операторы языка Pascal При помощи цикла for введите параметры отрезка [a,b], ha=-3b=4h=2y(-3)=-3y(-1)=1y(1)=5y(3)=9 При помощи цикла while введите параметры отрезка [a,b], ha=-3b=4h=2y(-3)=-3y(-1)=1y(1)=5y(3)=9 При помощи цикла repeat..until введите параметры отрезка [a,b], ha=-3b=4h=2y(-3)=-3y(-1)=1y(1)=5y(3)=9 Операторы языка Pascal * Схемы алгоритмовПодпрограммы ввода-выводаСоставной операторУсловный операторОператор выбора caseОператоры циклаОператор цикла forОператор цикла whileОператор цикла repeat..untilОператоры передачи управления * 10. Операторы передачи управления Операторы языка Pascal Операторы передачи управления принудительно изменяют порядок выполнения команд: BREAK - осуществляет немедленный выход из циклов repeat, while, for и управление передается оператору, находящемуся непосредственно за циклом,CONTINUE – начинает новую итерацию цикла, даже если предыдущая не была завершена,EXIT – осуществляет выход из подпрограммы,HALT – прекращает выполнение программы. * 10. Операторы передачи управления Операторы языка Pascal begin writeln('строка 1'); writeln('строка 2'); halt; writeln('строка 3'); writeln('строка 4');end. строка 1строка 2 var i : integer;begin writeln('До цикла'); for i := 1 to 5 do begin writeln('итерация ',i); if i=2 then break; end; writeln('После цикла');end. До циклаитерация 1итерация 2После цикла * 10. Операторы передачи управления Операторы языка Pascal var i, j : integer;begin writeln('До цикла'); for i := 1 to 3 do for j := 1 to 3 do begin writeln('итерация i=',i,' j=',j); if i=2 then break; end; writeln('После цикла');end. До циклаитерация i=1 j=1итерация i=1 j=2итерация i=1 j=3итерация i=2 j=1итерация i=3 j=1итерация i=3 j=2итерация i=3 j=3После цикла

Приложенные файлы

  • ppt 912753
    Размер файла: 706 kB Загрузок: 0

Добавить комментарий