1 Курс « Паскаль. Программирование на языке высокого

Скачать презентацию 1 Курс « Паскаль. Программирование на языке высокого Скачать презентацию 1 Курс « Паскаль. Программирование на языке высокого

osnovnye_konstrukcii_yazyka_lekcii_3_4_5.ppt

  • Размер: 491.5 Кб
  • Автор:
  • Количество слайдов: 33

Описание презентации 1 Курс « Паскаль. Программирование на языке высокого по слайдам

 1 Курс « Паскаль. Программирование на языке высокого уровня»  1 Курс « Паскаль. Программирование на языке высокого уровня»

 2 Управляющие операторы языка Рассматриваются управляющие операторы языка (ветвления, циклы, передача управления). 2 Управляющие операторы языка Рассматриваются управляющие операторы языка (ветвления, циклы, передача управления).

 3 Операторы ветвления  3 Операторы ветвления

4 Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо одна,4 Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.

5 Разветвляющийся алгоритм полная форма если условие,  то… иначе… неполная форма если условие,5 Разветвляющийся алгоритм полная форма если условие, то… иначе… неполная форма если условие, то. . . Открыть зонт. Идет дождь данет Остаться дома. Идет дождь да Пойти гулять нет

6 Условный оператор if if a  0 then b : = 1; if6 Условный оператор if if a < 0 then b : = 1; if (a d) or (a = 0)) then inc(b) else begin b : = b * a; a : = 0 end; if a < b then if a < c then m : = a else m : = c else if b < c then m : = b else m : = c ; if выражение then оператор_1 [else оператор_2; ]

7 Типовые задачи: Нахождение значения функции Квадратное уравнение Принадлежность точки  указанной области 7 Типовые задачи: Нахождение значения функции Квадратное уравнение Принадлежность точки указанной области

8 Пример1 Составить блок-схему алгоритма нахождения значения функции Y :   2 ,8 Пример1 Составить блок-схему алгоритма нахождения значения функции Y : 2 , если 5 2 , если =

9 НАЧАЛО XX ДА X  0 НЕТ Y = X 2  X9 НАЧАЛО XX ДА X 5 ДА НЕТ Y = X — 1 Y = 2* X YY КОНЕЦ X = 3 ДА НЕТ

10 Пример2  Составить блок-схему алгоритма решения квадратного уравнения  a. X 2 +10 Пример2 Составить блок-схему алгоритма решения квадратного уравнения a. X 2 + b. X + c =

11 Пример 3. Определить принадлежность точки указанной области -2 -2 1 -2 -2 211 Пример 3. Определить принадлежность точки указанной области -2 -2 1 -2 -2 2 xy 2 0 0 1 22 xy y x илиyx program shot ; var x , y : real ; begin writeln (‘ Введите значения х и у: ’); readln(x, y); if (sqr(x) + sqr(y) <= 1) or (x = — x — 2) then writeln (‘ Точка попадает в область’) else writeln (‘ Точка не попадает в область’); end.

12 Программа, которая по введенному значению аргумента вычисляет значение функции,  заданной в виде12 Программа, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика

13 Описание алгоритма в неформальном словесном виде 1.  Ввести значение аргумента х. 2.13 Описание алгоритма в неформальном словесном виде 1. Ввести значение аргумента х. 2. Определить, какому интервалу из области определения функции оно принадлежит, и вычислить значение функции y по соответствующей формуле. 3. Вывести значения х и y.

14 Второй пункт алгоритма следует детализировать 14 Второй пункт алгоритма следует детализировать

15 program calc_function_1; var x, y : real; begin writeln(' Введите значение аргумента'); readln(x);15 program calc_function_1; var x, y : real; begin writeln(‘ Введите значение аргумента’); readln(x); if x = – 2) and (x = – 1) and (x = 1) and (x = 2 then y : = 0; writeln(‘Для x = ‘, x: 6: 2, ‘ значение функции y = ‘, y: 6: 2); end.

16 По введенному значению аргумента вычислить значение функции, заданной в виде графика 16 По введенному значению аргумента вычислить значение функции, заданной в виде графика

17 Запись условий Нужно сократить количество проверок,  т. е. использовать вложенные условия 17 Запись условий Нужно сократить количество проверок, т. е. использовать вложенные условия

18 Оператор варианта case выражение of константы_1  : оператор_1 ; константы_2  :18 Оператор варианта case выражение of константы_1 : оператор_1 ; константы_2 : оператор_2 ; константы_n : оператор_n; [ else оператор ] end ;

 19 Пример 1 Program primer 3; Uses crt; Var day: byte; Begin Wtiteln 19 Пример 1 Program primer 3; Uses crt; Var day: byte; Begin Wtiteln (‘ введите номер дня недели ’ ); Case day of 1. . 5: writeln(‘ рабочий день ’); 6: writeln(‘ суббота ’); 7: writeln(‘ воскресенье ’) else writeln ( ‘ ошибка ввода данных ’) end; readkey; end.

20 Пример 2 program cursor _ keys ; uses Crt; var key : char;20 Пример 2 program cursor _ keys ; uses Crt; var key : char; begin writeln (‘Нажмите одну из курсорных клавиш ‘); key : = readkey; if ord(key) 0 then writeln(‘ обычная клавиша ‘) else begin key : = readkey; case ord(key) of 77: writeln(‘ стрелка вправо ‘); 75: writeln(‘ стрелка влево ‘); 0 72: writeln(‘ стрелка вверх ‘); 80: writeln(‘ стрелка вниз ‘); else writeln(‘ не стрелка ‘); end.

 21 Операторы цикла  21 Операторы цикла

22 Структура оператора цикла Усл-е. Начальные значения Тело цикла Модиф-я параметра 22 Структура оператора цикла Усл-е. Начальные значения Тело цикла Модиф-я параметра

23 Цикл с предусловием while выражение do оператор program tabl_fun; var Xn, Xk, d.23 Цикл с предусловием while выражение do оператор program tabl_fun; var Xn, Xk, d. X, t, x, y : real; begin writeln(‘ Введите Xn, Xk, d. X, t’); readln(Xn, Xk, d. X, t); writeln(‘| X | Y |’); x : = Xn ; while x <= Xk do begin y : = t * x; writeln('|', x: 9: 2, ' |', y: 9: 2, ' |'); x : = x + d. X; end; writeln(' ————— '); end. y = t x x n x k X Y

24 Цикл с постусловием repeat тело цикла until выражение program square_root; var X ,24 Цикл с постусловием repeat тело цикла until выражение program square_root; var X , eps , Yp, Y : real; begin repeat writeln(‘Введите аргумент и точность : ‘); readln(X, eps); until (X > 0) and (eps > 0); Y : = 1; repeat Yp : = Y; Y : = (Yp + X / Yp) / 2; until abs(Y — Yp) < eps; writeln('Корень из ', X: 6: 3, ' с точно c тью ', eps : 7: 5, 'равен ', Y: 9: 5); end. y n = ½ (y n– 1 + x/y n– 1 )

25 Цикл с параметром for параметр : = выражение_1 to выражение_2 do оператор for25 Цикл с параметром for параметр : = выражение_1 to выражение_2 do оператор for параметр : = выражение_2 downto выражение_1 do оператор var i : integer ; begin for i : = 1 to 10 do writeln ( i ) end.

26 Примеры цикла с параметром var i ,  sum :  integer ;26 Примеры цикла с параметром var i , sum : integer ; begin sum : = 0; for i : = 10 downto 1 do begin writeln(i); inc(sum, i) end; writeln(sum); end. var ch : char; begin for ch : = ’a’ to ’z’ do writeln(ch) end.

27 Рекомендации не забывать о том, что если в теле циклов while и for27 Рекомендации не забывать о том, что если в теле циклов while и for требуется выполнить более одного оператора, нужно заключать их в блок ; убедиться, что всем переменным, встречающимся в правой части операторов присваивания в теле цикла, до этого присвоены значения, а также возможно ли выполнение других операторов; проверить, изменяется ли в теле цикла хотя бы одна переменная, входящая в условие продолжения цикла; предусматривать аварийный выход из итеративного цикла по достижению некоторого предельно допустимого количества итераций.

 28 Процедуры передачи управления  28 Процедуры передачи управления

29 Процедуры передачи управления break — завершает выполнение цикла, внутри которого записана;  continue29 Процедуры передачи управления break — завершает выполнение цикла, внутри которого записана; continue — выполняет переход к следующей итерации цикла; exit — выходит из программы или подпрограммы, внутри которой записана; halt — немедленно завершает выполнение программы.

30 Пример Написать программу вычисления значения функции sin с помощью степенного ряда с точностью30 Пример Написать программу вычисления значения функции sin с помощью степенного ряда с точностью по формуле: 3 5 7. . . 3! 5! 7! x x x y x 2 1 1 2 1 ! n n n x C n 2 1 2 2 1 n n x C C n n ||n.

31 program sinus ; const Max. Iter = 500;   { максимально допустимое31 program sinus ; const Max. Iter = 500; { максимально допустимое количество итераций } var x , eps : double ; { аргумент и точность } c , y : double ; { член ряда и его сумма } n : integer ; { номер члена ряда } done : boolean ; { признак достижения точности } begin writeln (‘Введите аргумент и точность: ‘); readln(x, eps);

32 done : = true ; c : = x ;  y :32 done : = true ; c : = x ; y : = c ; n : = 1; while abs(c) > eps do begin c : = — c * sqr ( x ) / 2 / n / (2 * n + 1) ; y : = y + c ; inc ( n ); if n <= Max. Iter then continue; writeln ('Ряд расходится!'); done : = false ; break end; if done then writeln ('Аргумент: ', x : 10: 6, #13#10, 'Значение функции: ', y : 10: 6, #13#10, 'Вычислено с точностью ', eps : 8: 6, ' за ', n , ' итераций'); end.

33 Оператор перехода goto Использование оператора безусловного перехода оправдано, как правило,  только в33 Оператор перехода goto Использование оператора безусловного перехода оправдано, как правило, только в двух случаях : принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей; переход из нескольких мест программы в одно (например, если перед выходом из программы необходимо всегда выполнять какие-либо действия).