Алгоритмы Алгоритмы Базовые структуры
Виды алгоритмов линейный Циклический Разветвляющийся
Линейные алгоритмы
СЛЕДОВАНИЕ ( ЛИНЕЙНЫЕ)
Какие операторы используются в Pascal для решения задач на алгоритмы следования? Read, readln Write, writeln := Математические выражения СЛЕДОВАНИЕ ( ЛИНЕЙНЫЕ)
Program SUMMA; Var X,Y,Z: integer; Begin Write(Введите два числа ); Readln(X,Y); Z:=X+Y; Write(Z); End. Команды следования на Паскале Program SUMMA;заголовок программы Var X,Y,Z: integer;описание переменных Beginначало программы Write(Введите два числа );вывод на экран Readln(X,Y);ввод значений X и Y Z:=X+Y;присваивание суммы Write(Z);вывод результата End.
Разветвляющиеся алгоритмы
ВЕТВЛЕНИЕ (РАЗВЕТВЛЯЮЩИЙ)
Ввод a x:= a+8x:= a-8 Вывод x начало конец a> 9 ВЕТВЛЕНИЕ да-нет
если - то если ословие то действия все не полный если – то - иначе ословие то действия 1 иначе действия 2 все полный Команды ветвление
УСЛОВИЯ В ВЕТВЛЕНИЯХ Знаки НазначениеЗнаки Назначение >Больше>=Больше или равно <Меньше<=Меньше или равно =равно<>Не равно В качестве ословий используются выражения содержащие знаки
Вопросы, которые надо задавать при определении связи в математической модели для ветвлений 1. Какое ословие надо проверить? 2. Какие действия надо выполнять если ословие выполняется? 3. Какие действия надо выполнять если ословие не выполняется? Математическая модель
ВЕТВЛЕНИЕ Дано: x Рез-тат: y Связь: 1)X<1 2)+, y:=4 3)-, y:=3
if ословие then действие; if ословие then действия else действия; Перед else ; ( точка с запятой ) не ставится Команды ословия на языке Паскаль
if then else if 1 then 2 else 3; Команды ословия на языке Паскаль 1. Какое ословие надо проверить? 2. Какие действия надо выполнять если ословие выполняется? 3. Какие действия надо выполнять если ословие не выполняется? ;
ВЕТВЛЕНИЕ Дано: x Рез-тат: y Связь: 1)X<1 2)+, y:=4 3)-, y:=3 var x,y:real; begin x:=-10; writeln(' Введите число'); readln(x); if x<1 then y:=4 else y:=3; write('y=',y:4:2); end.
Составные ословия на языке Паскаль if ословие then begin действие; … действие; end else begin действие; … действие; end; Перед else ; ( точка с запятой ) не ставится Команды ословия на языке Паскаль
Примеры команды если If x > 0 then y := sin(x); If a > b then begin a := 2*a; b := 1 end else b := 2*b; Команды ословия на языке Паскаль
Даны два числа. Меньшее из них замените полусуммой этих чисел, а большее – их произведением. var a,b,x,y:real; begin write(введите два числа); readln(a,b); x:=a*b; {запомним значение произведения} y:=(x+y)/2;{запомним значение полусуммы} if a>b then begin b:=y; a:=x end else begin a:=y; b:=x end; writeln ( a=,a:0:2, b=,b:0:2); end. ВЕТВЛЕНИЕ. Задача
Циклические алгоритмы
ЦИКЛИЧЕСКИЙ АЛГОРИТМ циклическим Алгоритм, предусматривающий многократное повторение одного и того же действия над новыми данными, называется циклическим проверка осло начале цикла Для цикла пока – проверка ословия происходит в начале цикла Тело цикла Тело цикла – это шаги алгоритма, которые повторяются несколько раз. Параметры цикла Параметры цикла – величина, от ко- торой зависит число повторений Цикл пока
1 1. Составить алгоритм вычисления суммы n первых натуральных чисел ЦИКЛЫ
2 2. Составить алгоритм нахождения n слагаемых вида X+i, где i:=1,2,3,…,40, a n – данное число ЦИКЛЫ
Вопросы, которые надо задавать при определении связи в математической модели для циклов 1. Какое ословие надо проверить? 2. Какая величина является параметром цикла? 3. Какие параметры надо установить в начале цикла (начальные значения переменных) 4. Какие действия повторяются ? ЦИКЛЫ P.S. В каком порядке отвечать не имеет значения. Важно в ословии найти ответы на все вопросы.
Вычислить значение функции у=2 sin x на интервале от а)-10 до 10 для целых чисел Циклы. Задачи Дано: x, вещ Рез-тат: у, вещ Связь: Цикл 1)x<10 2)x:=x+1 3)x:=-10 4)y:=2*sin(x) печать x, y x:=x+1 x:=-10 x<=10 x:=x+1 y:=2*sin(x) x,y
Формат команды: WHILE логическое выражение DO оператор; Команды цикла ПОКА на языке Паскаль 3 WHILE 1 DO begin 4 2 end;
Вычислить значение функции у=2 sin x на интервале от а)-10 до 10 для целых чисел Циклы. Задачи Дано: x, вещ Рез-тат: у, вещ Связь: Цикл 1)x<10 2)x:=x+1 3)x:=-10 4)y:=2*sin(x) печать x, y x:=x+1 x:=-10 x<=10 x:=x+1 y:=2*sin(x) x,y WHILE DO begin end; var x,y:real; begin x:=-10; writeln(' x ',' y'); while x<=10 do begin y:=2*sin(x); writeln(x:4:2,y:7:2); x:=x+1; end;
Формат команды: WHILE логическое выражение DO оператор; program summa; vars:real; n:integer; begin s:=0; n:=0; while n<1000 dobegin n:=n+1; s:=s+1/nend; writeln(s); readln end. ПРИМЕР: Программа подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+…1/N Команды цикла ПОКА на языке Паскаль
1. Вычислить значение функции у=2 sin 2 x на интервале от а)-13 до 13 для целых чисел б) на интервале -3 до 3 2. Ученик в первый день выучил 5 английский слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов выучит ученик в 10-ый день занятий? Циклы. Задачи
ЦИКЛЫ
program prim10; var n,x,max,i: integer; begin writeln(Введиде N, количество чисел); readln(n); i:=1; max:=-32000; while i<N do begin write(Введите число); readln(x); if x>max then max:=x; i:=i+1; end; writeln(максимальное число в последовательности, max ); end. Программа нахождения максимального числа среди чисел веденных с клавиатуры