Знакомство с языком Паскаль Структура программы Ветвление на Паскале Циклические программы Пример линейной программы Пример программы с ветвлением Пример циклической программы Алгоритм Евклида на Паскале
Структура программы Линейные алгоритмы Арифметические операции + Сложение _ Вычитание Умножение / Деление Div Деление нацело Mod Остаток от деления Функции Sin (x) - sin x Cos (x) - cos x LN (x) - LN x SQRT (x) - EXP(x) – e x SQR(x) – x 2 ABS – |x|Заголовокпрограммы Program ; Раздел описания переменных Var : ; … Раздел операторов (исполняемая часть) Begin ; ; end. Типы числовых данных integer (целый) real (вещественный) Операторы для записи линейных программ Ввод данных Присваивание Вывод результатов Read ( );(readln) readln (x,y,z) := F:=(x+y+z)*2; Write ( );(writeln) writeln (результат F=,F); Приоритеты выполнения операций ( ) функции * mod / div +-+- Оператор- это команда алгоритма, записанная на языке программирования
Пример линейной программы Даны a,b,c-стороны треугольника. Вычислить площадь треугольника по формуле Герона: S= p- полупериметр треугольника P=(a+b+c)/2 начало p:=(a+b+c)/2 S:= конец Алгоритмический язык алг площадь треугольника вещ a,b,c,p,S нач ввод a,b,c P:=(a+b+c) S:= вывод S кон Программа на Паскале Program Geron; var a, b, c, p, S : real; begin readln (a, b, c) ; p:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(h-c)); Writeln (S=,S) end вывод S ввод a,b,c В языке Паскаль нет различия между строчными и прописными буквами. Точка с запятой (;) –разделитель операторов, запятая (,) – разделитель элементов в списках.
Ветвление на Паскаль Простое условие Составное условие Операции отношения > Больше < Меньше > = Больше или равно Меньше
Пример программы с ветвлением алг БИТ 1 вещ A,B,C,D нач ввод A,B,C если A>B то D:=A иначе D:=B кв если C>D то D:=С кв вывод D кон Program BIT1; var A,B,C,D:real; begin readln (A,B,C); if A>B then D:=A else D:=B; if C>D then D:=C; writeln (D) end. Последовательные ветвления Вложенные ветвления алг БИТ 2 вещ A,B,C,D нач ввод A,B,C если A>B то если A>B то D:=A иначе D:=C кв иначе если B>C то D:=B иначе D:=C кв кв вывод кон Program BIT 2; var A,B,C,D:real; begin reabln (A,B,C); if A>B then if A>C then D:=A else D:=C else if B>C then D:=B; else D:=C; writeln (D) end. Пример: Найти наибольшее значение среди трёх величин:A,B,C
Циклические программы Оператор цикла с предусловием While do Пока условие истинно, выполняется оператор (тело цикла) Оператор цикла с постусловием Repeat until Повторяется выполнение тела цикла до того, как условие станет истинным Оператор цикла с параметром По возрастанию параметра цикла for := to do По убыванию параметра цикла for := downto do - имя параметра цикла (счетчик цикла) - определяет начальное значение параметра цикла - определяет конечное значение параметра цикла
Пример циклической программы Пример: «N факториал» F=n!= 1*2*...*n While...do... Program n!1; var i,n: integer; F:real; F:real;begin readln (n); readln (n); F:=1; F:=1; i:=1; i:=1; while in; writeln (F) writeln (F) end. Использование вещественного типа для F увеличивает диапазон допустимых значений для n For...to...do... Program n!3; var i,n: integer; F:real; F:real;begin readln (n); readln (n); F:=1; F:=1; for i:=1 to n do for i:=1 to n do F:=F*i; F:=F*i; writeln (F) writeln (F) end. For...downto...do... Program n!4; var i,n: integer; F:real; F:real;begin readln (n); readln (n); F:=1; F:=1; for i:=n downto1do for i:=n downto1do F:=F*i; F:=F*i; writeln (F) writeln (F) end.
Алгоритм Евклида Определение наибольшего общего делителя (НОД) двух натуральных чисел начало Ввод M,N M=NM=N M>N M:=M-NN:=N-M вывод M конец алг Евклида цел M,N нач вывод введите M и N ввод M,N пока M=N, повторять нц если M>N то M:=M-N иначе N:=N-M кв кц вывод НОД=, M кон Program Evklid; var M, N: integer; begin writeln (введите M и N); readln (M, N); while MN do begin if M>N then M:=M-N else N:=N-M end; write (НОД=,M) end.