Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемwikkai.narod2.ru
1 Программирование на Pascal
2 Темы Повторение. Составные логические условия Повторение. Составные логические условия Повторение. Составные логические условия Повторение. Составные логические условия Циклы. Введение Цикл со счетчиком
3 Повторение. Составные логические условия Написать программу, в которой нужно проверить, лежит ли число x на числовой оси между числами a и b (случай x=a или x=b недопустим). Числа x, a, b являются натуральными, и известно, что a отлично от b (но неизвестно: a>b или b>a). Входная информация вводится с клавиатуры, а на выходе должно быть сообщение вида "x между a и b" (если это действительно так), в противном случае никакой выходной информации не выдается. 3
4 Повторение. Составные логические условия Программист торопился и написал программу некорректно. VAR a,b,x: integer; p: integer; BEGIN readln(a,b,x); if (a>x) AND (x>b) then writeln('x между a,b'); END. 4
5 Последовательно выполните три задания: 1).Приведите пример таких чисел a, x, b при которых программа работает неправильно. a=2, b=6, x=5 Повторение. Составные логические условия 5
6 2).Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами). Дописать условие: (a>x) AND (x>b) or (b>x) AND (x>a) Повторение. Составные логические условия 6
7 ОТВЕТ 2) Возможные доработки: a) if ax) and (x>b) then writeln(' x между a,b'); b) if (a>x) and (x>b) оr (a
8 3).Укажите, как можно доработать программу, соблюдая дополнительное условие: доработанная программа не должна использовать логических операций AND или OR. Повторение. Составные логические условия 8 if a>x then if x>b then writeln('x между a,b'); if b>x then if x>a then writeln('x между a,b');
9 ОТВЕТ 9 3) Возможные доработки: a) if a>x then if x>b then writeln('x между a,b'); if b>x then if x>a then writeln('x между a,b'); b) p:=(x-a)*(x-b); if p
10 10
11 Программирование на Pascal Циклы. Введение 11
12 12 Циклы. Введение Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием) В Паскале реализованы три оператора цикла. Формально эти операторы называют «цикл с параметром» (For), «цикл с предусловием» » (While), «цикл с постусловием» » (Repeat).
13 Операторы цикла Если вычислительный процесс содержит многократные вычисления по одним и тем же математическим зависимостям, то его называют циклическим процессом. Многократно повторяемые участки вычислений называют циклами, а переменные, изменяющиеся в цикле – переменной цикла (параметром). 13
14 Операторы цикла «цикл с параметром» For «цикл с предусловием» While «цикл с постусловием» Repeat For i:=1 to 10 do WriteLn(i); While not KeyPressed do ReadKey; Repeat Ch := ReadKey; Until Ch=Y; Используется, если число повторений заранее известно! Используется, если число повторений оператора заранее неизвестно, а задано лишь условие его повторения (или окончания). выполнить увеличивая для пока повторить до 14
15 15
16 Цикл со счетчиком 16
17 17 Цикл с переменной for := to do begin {тело цикла} end; for := to do begin {тело цикла} end; Увеличение переменной на 1: for := downto do begin {тело цикла} end; for := downto do begin {тело цикла} end; Уменьшение переменной на 1:
18 Надо знать: 1.Тип переменной: В качестве параметра цикла может быть переменная целого (Integer, Word, LongInt и т.д.) или литерного типа. Не допускается переменная вещественного типа. Начальное и конечное значение – выражение того же типа, что и параметр цикла. 18
19 Надо знать: 2. Шаг изменения переменной цикла всегда равен 1 ( to ) или -1 ( downto ) 3. Составной оператор: если в теле цикла только один оператор, слова begin и end можно не писать: for i:=1 to 8 do writeln('Привет'); for i:=1 to 8 do writeln('Привет'); 19
20 Надо знать: 4. Количество итераций: если конечное значение меньше начального, цикл (to) не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием); если начальное значение совпадает с конечным значением, то цикл выполняется один раз; цикл For выполняется столько раз, сколько различных значений есть между и включительно. Например, при записи вида: For I:=0 to 10 do Write(I, ); На экране будет напечатано 11 чисел от 0 до 10:
21 Надо знать: 5. Значение параметра цикла в теле цикла, т.е. внутри оператора, стоящего после DO, не должно изменяться. 6. Не забывайте, что счетчику присваивается начальное значение, т.е. K := начальное значение 21
22 Надо знать: 7. При изменении начального и конечного значения внутри цикла количество шагов не изменится: n := 8; for i:=1 to n do begin writeln('Привет'); n := n + 1; end; n := 8; for i:=1 to n do begin writeln('Привет'); n := n + 1; end; нет зацикливания 22
23 Синтаксис оператора: Порядок выполнения цикла с параметром оператора For -to For I:= := to do Здесь: - переменная-параметр цикла. Она описывается в разделе переменных, обязательно должна быть целого типа (Integer, Word, LongInt и т.д.). Эта переменная при выполнении тела цикла при каждом выполнении последовательно принимает значения от до., – начальное и конечное значение счетчика. – последовательность операторов, которая выполняется в цикле. Тело цикла может содержать один оператор или несколько. В случае нескольких операторов их заключают в операторные скобки begin – end. Таким образом, можно сделать следующий вывод: цикл For выполняется столько раз, сколько различных значений есть между и включительно. Например, при записи вида: For I:=0 to 10 do Write(I, ); На экране будет напечатано 11 чисел от 0 до 10:
24 For i:= N1 to N2 do тело цикла; i – параметр цикла, счетчик N1 – начальное значение N2 – конечное значение Если в теле цикла – не один оператор, то Begin …End; For i:= N1 to N2 do Begin тело цикла; несколько команд; End; 24
25 Порядок выполнения цикла с параметром оператора For -downto For I: = := downto do Синтаксис оператора: Данная форма цикла используется, если требуется менять значения счетчика в сторону уменьшения – от большего к меньшему. Таким образом, можно сделать следующий вывод: цикл For выполняется столько раз, сколько различных значений есть между и включительно. Например, при записи вида: For I:=10 downto 1 do Write(I, ); На экране будет напечатано 11 чисел от 10 до 0:
26 Сколько раз повторится цикл? FOR I:=1 to 5 Do… FOR I:=10 to 15 Do… FOR I:=1 to 3 Do… FOR I:=10 downto 5 Do… ? раз ? раза ? раз 26
27 27 Пример Вывести на экран 5 раз слово «Привет». program qq; begin writeln('Привет'); end. program qq; begin writeln('Привет'); end.
28 28 Алгоритм начало Привет! конец да нет i = 5?i = 5? i := 0 ; i := i + 1; еще не сделали ни одного раза проверить, все ли сделали вывод на экран считаем очередной шаг
29 for i:=1 to 5 do begin write('Привет'); writeln(', Вася!'); end; for i:=1 to 5 do begin write('Привет'); writeln(', Вася!'); end; 29 Циклы program qq; var i: integer; begin for i:=1 to 5 do writeln('Привет'); end. program qq; var i: integer; begin for i:=1 to 5 do writeln('Привет'); end. «Для всех i от 1 до 5 делай …» «Для всех i от 1 до 5 делай …» for i:=1 to 5 do Если в цикле более одного оператора: begin end;
30 Program MULTI_1; Var A, Y : real; I, N : integer; Begin Write (Введите число А -); Readln (A); Write (Введите степень числа А -); Readln(N); Y:=1; Write (Результат -, Y); end. Program MULTI_1; Var A, Y : real; I, N : integer; Begin Write (Введите число А -); Readln (A); Write (Введите степень числа А -); Readln(N); Y:=1; Write (Результат -, Y); end. Пример Вычислить значение функции y=a n, где а- действительное число с натуральным показателем. For I:=1 to N do Y:=Y *A; 30
31 Пример. Способ 2 Program MULTI_2; Var A, Y : real; I, N : integer; Begin Write (Введите число А -); Readln (A); Write (Введите степень числа А -); Readln (N); Y:=1; For I:= N downto 1 do Y:=Y *A; Write (Результат -, Y); end. Вычислить значение функции y=a n, где а- действительное число с натуральным показателем. 31
32 Решение задач Подсчитать сумму 10 чисел, введенных с клавиатуры. Блок-схема Решение 32
33 БЛОК - СХЕМА Ввести А S нач кон S:=S+А S:=0 I:=1 to10 К условию 33
34 РЕШЕНИЕ Program my; Var I,S,A: integer; Begin S:=0; FOR I:=1 TO 10 DO Begin WRITELN ( Введите число); READLN (A); S:=S+A; End; WRITELN (S); End. К условию 34
35 Задача Подсчитать произведение 10 чисел введенных с клавиатуры. Блок-схема Решение 35
36 БЛОК - СХЕМА Ввести А S нач кон S:=S*А S:=0 I:=1 to10 К условию 36
37 РЕШЕНИЕ Program my; Var I,S,A: integer; Begin S:=1; FOR I:=1 TO 10 DO Begin WRITELN ( Введите число); READLN (A); S:=S*A; End; WRITELN (S); End. К условию 37
38 Задача Подсчитать сумму положительных чисел среди 10 чисел введенных с клавиатуры. Блок-схема Решение 38
39 БЛОК - СХЕМА нач кон S:=S+A S :=0 A>0 Ввести А да нет S I:=1 to10 К условию 39
40 РЕШЕНИЕ Program my; Var I,S,A: integer; Begin S:=0; FOR I:=1 TO 10 DO Begin WRITELN ( Введите число); READLN (A); IF A>0 THEN S:=S+A; End; WRITELN (S); End. К условию 40
41 Задача Подсчитать количество положительных чисел среди 10 чисел введенных с клавиатуры. Блок-схема Решение 41
42 БЛОК - СХЕМА нач кон k:=k+1 k:=0 A>0 Ввести А да нет k I:=1 to10 К условию 42
43 РЕШЕНИЕ Program my; Var I,K,A: integer; Begin K:=0; FOR I:=1 TO 10 DO Begin WRITELN ( Введите число); READLN (A); IF A>0 THEN K:=K+1; End; WRITELN (K); End. К условию 43
44 Задача Подсчитать сумму 20 слагаемых 1+2+3…+20 Блок-схема Решение 44
45 БЛОК - СХЕМА нач кон S:=S+I S:=0 S да нет I:=1 to 20 К условию 45
46 РЕШЕНИЕ Program my; Var I,S: integer; Begin S:=0; FOR I:=1 to 20 DO Begin S:=S+I; End; WRITELN (S); End. К условию 46
47 Задача Подсчитать сумму 20 слагаемых 1-1/2+1/3…-1/20 Блок-схема Решение 47
48 БЛОК - СХЕМА нач кон P:=-P S:=0 S P:=1 S:=S+P/I I:=1 to 20 К условию 48
49 РЕШЕНИЕ Program my; Var I,Р: integer; S: real; Begin S:=0; P:=1; FOR I:=1 TO 20 DO Begin S:=S+P/I; P:=-P; End; WRITELN (S); End. К условию 49
50 Домашнее задание: 1.Составьте программу вычисления квадратов чисел от 1 до
51 2.Напечатать все двухзначные числа, сумма которых равна
52 52
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.