Алгоритмы, схемы, программы. Глава 2
Алгоритм приготовления блюда быстрого питания: 1.Высыпать в ёмкость содержимое пакетика. 2.Налить в ёмкость 200 мл горячей воды. 3.Тщательно перемешать.
Свойства алгоритма Результативность алгоритма – возможность получения из исходных данных результата за конечное число шагов. Массовость – возможность применения алгоритма к большому количеству различных исходных данных. Детерминированность – выполнение команд алгоритма в строгой последовательности. Выполнимость и понятность – команды алгоритма должны входить в систему команд исполнителя и записаны на понятном для исполнителя языке.
Алгоритм – Это конечная последовательность действий. Описывающая процесс в преобразования объекта из начального состояния в конечное, записанная с помощью точных и понятных исполнителю команд.
Схема - графическое изображение последовательности действий алгоритма. Алгоритм нахождения среднего арифметического Высыпать в ёмкость содержимое пакетика. Налить в ёмкость 200 мл горячей воды. Тщательно перемешать. начало Ввод А,В,С S:=A+B+C SR:=S/3 Вывод SR конец
Программа – алгоритм записанный на понятном компьютеру языке программирования. Program srednee_ar; {название программы} var A,B,C,S:integer; {перечисление переменных} sr:real; Begin {начало работы} writeln(vvedi A,B,C); {ввод данных} readln(A,B,C); s:=A+B+C; {действия} sr:=s/3; writeln(sred. ar.=,sr:3:2); {вывод результата} readln End. {конец работы программы}
Практическая работа 1.Проект «среднее арифметическое для трёх элементов» 2.Проект «среднее арифметическое для пяти элементов» 3.Проект «Объём, площадь полной поверхности прямоугольного параллелепипеда»
а в с v=abc S полная = V:=a*b*c; S:= a b c V= ; s=
Program parallelepiped; {название программы} var A,B,C,S,V:integer; { перечисление переменных} Begin {начало работы} writeln(vvedi A,B,C); {ввод данных} readln(A,B,C); V:=A*B*C; {действия} S:=2*A*B+2*A*C+2*B*C; writeln(V=,V:3); {вывод результата} writeln(S=,S:3); readln End. {конец работы программы}
Практическая работа 1.Проект «Объём, площадь полной поверхности прямоугольного параллелепипеда» 2.Проект «Вычисление площади треугольника по трем сторонам» p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); 3.Проект «Решение квадратного уравнения» d:= X1:= X2:= а b c
Program treugolnik; {название программы} var A,B,C:integer; { перечисление переменных} p,S:real; Begin {начало работы} writeln(vvedi A,B,C); {ввод данных} readln(A,B,C); p:=(A+B+C)/2; {действия} S:=SQRT(p*(p-A)*(p-B)*(p-C)); writeln(p=,p:3:2); {вывод результата} writeln(S=,S:3:2); readln End. {конец работы программы}
5x 2 -8x+3=0 D = 4 X 1 = 0.6 X 2 = 1
Program kvadr_ur; {название программы} var A,B,C,D:integer; {перечисление переменных} X1,X2:real; Begin {начало работы} writeln(vvedi A,B,C); {ввод данных} readln(A,B,C); D:= ; {действия} X1:= ; X2:= ; writeln(X1=,X1:3:2); {вывод результата} writeln(X2=,X2:3:2); readln End. {конец работы программы}
Program sistem_ur; {название программы} var A,B,C,D,E,F,OP,OX,OY:integer; X,Y:real; Begin {начало работы} writeln(vvedi A,B,C,D,E,F); {ввод данных} readln(A,B,C,D,E,F); OP:= ; {действия} OX:= ; OY:= ; X:= ; Y:= ; writeln(X=,X:3:2); {вывод результата} writeln(Y=,Y:3:2); readln End. {конец работы программы}
НАЧАЛО ВВОД ДАННЫХ ДЕЙСТВИЕ 1 ДЕЙСТВИЕ 2 ДЕЙСТВИЕ 3 ДЕЙСТВИЕ 4 ВЫВОД ДАННЫХ КОНЕЦ ЛИНЕЙНЫЕ СХЕМЫ, АЛГОРИТМЫ, ПРОГРАММЫ.
Алгоритмическая структура «выбор»- выполняется одно или несколько действий при истинности условия Полное ветвление Неполное ветвление ДА Услови е Действие 1 Действие 2 НЕТ Действие Услови е ДА НЕТ
А>B M:=B M:=A Ввод А,В Вывод М Начало Конец Program MAX; VAR A,B,M:INTEGER; BEGIN WRITELN(BBEDI A,B); READLN(A,B); IF A>B THEN M:=A ELSE M:=B; WRITELN(MAX=,M:4); READLN END. ДАНЕТ
А
начало Ввод а,b,c a>b M:=аM:=b Mb then M:=a else M:=b; If M
Y X ; если Х2 Y=
X2 ДА НЕТ Y:=X-3 Y:=-X+1 Program ZF; Var X,Y:Real; Begin WriteLN(BBEDI X); ReadLN(X); If X2 then Y:=X-3 else Y:=-X+1; WriteLN(Y=,Y:4:3); ReadLN End ,5 0,5 1,5
У=У= 8, если X
2) 1 вариант (нечетный Комп.) 2 вариант (четный Комп.) Вывод X Ввод а,b A>b X:=b ٠ b X:=a٠a да нет Вывод а Ввод а A0 X:=-а X:=a да нет 3) у х 1 1 У= у х 1 1 У= -Х-1, если Х2 X+1,если Х1
начало Ввод A,B,C A>B A>C B>C Вывод A,B,C конец T:=A A:=B B:=T T:=A A:=C C:=T T:=B B:=C C:=T да нет Тест: A:=2, B:=1 T:=A A:=B B:=T A=1, B=2 Program upr; Var A,B,C,T:Integer; Begin WriteLN(BBEDI A,B,C); ReadLN(A,B,C); If A>B Then begin T:=A; A:=B; B:=T End; If A>C Then begin T:=A; A:=C; C:=T End; If B>C Then begin T:=B; B:=C; C:=T End; WriteLN(A,B,C); ReadLN End.
D
Program treugolnik; var A,B,C:integer; p,S:real; Begin writeln(vvedi A,B,C); readln(A,B,C); If (A+B
Алгоритмическая структура « цикл » - это структура где команда или серия команд выполняются многократно. Цикл со счетчиком, в котором тело цикла выполняется определенное число раз команда или серия команд - тело цикла
iB i:=A Серия команд ДА НЕТ i:=i+1 i – переменная цикла А – начальное значение переменной В - конечное значение переменной FOR i:=A to B do BEGIN «Серия команд» END;
i100 i:=1 S:=0 Вывод S Начало Конец ДА НЕТ S:=S+i i:=i+1 Program Summa; Var S,i:integer; Begin S:=0; For i:=1 To 100 do begin S:=S+i end; WriteLN(S=, S:5); ReadLN End. Проект «Сумма»
i10 i:=1 P:=0 Вывод P Начало Конец ДА НЕТ P:=P*i i:=i+1 Program Proizvedenie; Var P,i:integer; Begin P:=1; For i:=1 To 10 do begin P:=P*i end; WriteLN(P=, P:5); ReadLN End. Проект «Произведение »
i10 i:=1 P:=0 Вывод P Начало Конец ДА НЕТ P:=P*i i:=i+1 Program Proizvedenie; Var P,i:integer; Begin P:=1; For i:=1 To 10 do begin P:=P*I; WriteLN(P=, P:5) end; ReadLN End. Проект «Произведение »
X10 X:=-10 Начало Конец ДА НЕТ У:=Х 2 Х:=Х+1 Проект « Таблица квадратов от -10 до 10» Вывод X У Вывод X, У Program Tabl; Var X,Y:integer; Begin WriteLN(X Y); For X:=-10 To 10 do begin Y:=X*X; WriteLN(X,,Y) end; ReadLN End.
НОД Алгоритм Евклида
Начало Конец ДА НЕТ N:=N-M M:=M-N Вывод M,N Вывод M M=N M>N ДА НЕТ НОК=А*В/НОД Program NOD; var M,N:integer; Begin WriteLN(BBEDI M,N); READLN(M,N); While MN do begin if M>N then M:=M-N else N:=N-M end; WriteLN(NOD=, M); ReadLN End.
Program NOD_NOK; var A,B,M,N:integer; K:real; Begin WriteLN(BBEDI M,N); READLN(M,N); A:=M; B:=N; While MN do begin if M>N then M:=M-N else N:=N-M end; WriteLN(NOD=, M); K:=A*B/M; WriteLN(NOK=, K:3:1); ReadLN End. Тест для проверки: 1214, 13 24, 14 32, 15 75,
Program bank; Var V,p,G:integer; S:real; Begin writeLN(VVEDI V,p); readLN(V,p); S:=0; For G:=2009 to 2019 do begin S:=S+V; S:=S+S/100*p; write (год-,G:4); writeLN( сумма-,S:6:3); end; readLN End. Тест для проверки: V= 5, 10, 15, 20. P= 4. V,p,G:Longint
Program bank; Var V,p,G:integer; S:real; Begin writeLN(VVEDI V,p); readLN(V,p); S:=0; For G:=2009 to 2019 do begin S:=S+V; S:=S+S/100*p; end; writeLN(год-,G:4); writeLN(сумма-,S:6:3); readLN End. Тест для проверки: V= 5, 10, 15, 20. P= 4. V,p,G:Longint
program tab_umnog; var a,c,i,k:integer; begin WriteLN( Введи число для проверки ); Write( таблицы умножения ); readLN(a); k:=0; for i:=1 to 10 do begin write(,a, *,i, = ); readLN(c); if a * ic then k:=k+1; end; writeln( у Вас ошибок,k:3); readln; readLN end.
program mmk; var n,m,i:integer; x,y,s:real; begin writeln('BBEDI N'); readln(n); m:=0; randomize; for i:=1 to n do begin x:=random(100)/100; y:=random(100)/100; { writeln(x:1:2,' ',y:1:2);} if x*x+y*y
program mmk; var n,m,i:integer; x,y,s:real; Begin writeLN(vvedi n); readln(n); m:=0; randomize; for i:=1 to n do begin x:=random(200)/100-1; y:=random(200)/100-1; { writeln(x:1:2, ',y:1:2);} if x*x+y*y