Повторение изученного материала
1. Структура программы Program Uses Label Const Type Var Procedure (Function) Begin Раздел операторов End. Раздел описаний Раздел операторов
Выражение Операции 1. Арифметические операции 2. Операции отношения 3. Логические операции 4. Строковые операции
Выражение 1. x+10/(x*y+2) 2. (x+10)/xy+2 3. x+10/x*y+2 4. (x+10)/(x*y+2) 5. (x+10)/(xy+2)
Порядок выполнения операций Not *, /, div, mod,and +,-, or, xor Операции отношения z := (5*a*c+3*(c-d))/a*(b-c)/ b; x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));
Алгоритм великий восточный ученый Мухаммед Аль Хорезми
Свойства алгоритма Понятность ТочностьДискретность Массовость Эффектив- ность Результатив- ность
Неразлучное трио ЛинейныйIntegerIf Пред- условие Пост- условие Then ЦиклическийByte Word Разветвля- ющийся Else Параметр Линейный Циклический Разветвля- ющийся Integer Word Byte If Then Пост- условие Else Параметр Пред- условие
Линейный Разветвляющийся Циклический
Пример программы Program primer; Uses crt; Var n:integer; Begin ClrScr; writeln(введите n); readln(n); x:=2n+1; writln(x=, x); Readln; End. Program primer; Uses crt; Var n:integer; Begin ClrScr; writeln(введите n); readln(n); x:=2n+1; writln(x=, x); Readln; End. Var n,x:integer; x:=2*n+1; Writeln(x=,x);
program qq; var a, b: integer; x, y: real; begin a := 5; 10 := x; y := 7,8; b := 2.5; x := 2*(a + y); a := b + x; end. program qq; var a, b: integer; x, y: real; begin a := 5; 10 := x; y := 7,8; b := 2.5; x := 2*(a + y); a := b + x; end. Какие операторы неправильные? имя переменной должно быть слева от знака := целая и дробная часть отделяются точкой нельзя записывать вещественное значение в целую переменную
Ручная прокрутка программы program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end. ab ??
IF THEN ELSE
а:=53; в:=14; If а в then х:=а+в else х:=2*а-4*в;
а:=5; в:=4; с:=3; If а < в then х:=а+в else Begin а:=в+с; х:=а-3*в; End;
а:=9; в:=8; с:=2; If (а>в) and (в>с) then х:=2*а+в+с else х:=а-в+с;
Что неправильно? if a > b then begin a := b; else b := a; if a > b then begin a := b; else b := a; if a > b then begin a := b; end; else b := a; if a > b then begin a := b; end; else b := a; if a > b then a := b; else b := a; end; if a > b then a := b; else b := a; end; a := b end a := b
Оператор выбора Case case K of A1: ; A2: ; AN: ; else end;
Составить программу, которая по введенном номеру месяца выводит на экран название времени года
Блок - схема начало конец оператор выбора ни один вариант не подошел да нет M = 6,7,8 M =9,10,11 Такого месяца нет да нет M = 1,2,12 M = 3,4,5 ввод M Зима Весна Лето Осень
«Том вышел на улицу с ведром известки и длинной кистью. Он окинул взглядом забор, и радость в одно мгновение улетела у него из души, и там воцарилась тоска... Со вздохом обмакнул он кисть в известку, провел ею по крайней доске, потом проделал то же самое снова и остановился: как ничтожна белая полоска по сравнению с огромным пространством некрашеного забора!..» Марк Твен
Блок - схема начало конец красить i := 1 до 50 блок "цикл" тело цикла
Циклические операторы Turbo Pascal. Цикл с параметром. Цикл с предусловием Цикл постусловием Цикл с параметром
for := to do begin {тело цикла} end; for := to do begin {тело цикла} end; Увеличение переменной на 1: for := downto do begin {тело цикла} end; for := downto do begin {тело цикла} end; Уменьшение переменной на 1:
Цикл с параметром Особенности: переменная цикла может быть только целой ( integer ) шаг изменения переменной цикла всегда равен 1 ( to ) или -1 ( downto ) если в теле цикла только один оператор, слова begin и end можно не писать: если конечное значение меньше начального, цикл ( to ) не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием) for i:=1 to 8 do writeln('Привет'); for i:=1 to 8 do writeln('Привет');
Сколько раз выполняется цикл? a := 1; for i:=1 to 3 do a := a+1; a := 1; for i:=1 to 3 do a := a+1; a = 4a = 4 a = 4a = 4 a := 1; for i:=3 to 1 do a := a+1; a := 1; for i:=3 to 1 do a := a+1; a = 1a = 1 a = 1a = 1 a := 1; for i:=1 downto 3 do a := a+1; a := 1; for i:=1 downto 3 do a := a+1; a = 1a = 1 a = 1a = 1 a := 1; for i:=3 downto 1 do a := a+1; a := 1; for i:=3 downto 1 do a := a+1; a = 4a = 4 a = 4a = 4
Задача. Вывести на экран квадраты и кубы целых чисел от 1 до 8 (от a до b). Особенность: одинаковые действия выполняются 8 раз.
Алгоритм (с блоком "цикл") начало i, i2, i3 конец i2 := i * i; i3 := i2 * i; i := 1,8 блок "цикл" тело цикла
Программа program qq; var i, i2, i3: integer; begin for i:=1 to 8 do begin i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); end; end. переменная цикла начальное значение конечное значение
Домашнее задание 1. Оператор выбора Case. 2. Понятие цикла. Виды циклов. 3. Цикл с параметром. Решить задачу: даны натуральные числа x и y. Вычислить произведение x*y, используя только операцию сложения.