1 Программирование на языке Паскаль Тема 4. Циклы.

Презентация:



Advertisements
Похожие презентации
1 Программирование на языке Паскаль 1. Циклы с параметром.
Advertisements

1 Программирование на языке Паскаль Циклы. 2 Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов.
Цикл со счетчиком. Циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл с неизвестным числом.
Программирование на языке Паскаль. 3 Циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл.
Pascal Алгоритмы циклической структуры, программирование на языке Pascal Часть 2 8 «Б» и 10 «Б» классы.
1 Тема 4. Циклы на языке Паскаль.
1 Тема: Циклы с заранее неизвестным числом повторений.
1 Программирование на языке Паскаль Циклы с условием.
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
1 Программирование на языке Паскаль Тема: Циклы по счётчику. © К.Ю. Поляков,
1 Программирование на языке Паскаль Тема 4. Циклы.
Цикл с условием while do begin {тело цикла} end; while do begin {тело цикла} end; Особенности: можно использовать сложные условия: если в теле цикла только.
1 Программирование на языке Паскаль Тема 2. Ветвления.
ЦИКЛЫ С УСЛОВИЕМ 1 Программирование на языке Паскаль.
Практическое занятие 5 Циклы с условием. 2 Цикл с неизвестным числом шагов Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?
1 Программирование на языке Паскаль Оператор выбора.
1 Программирование на языке Паскаль Ветвления. 2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
1 Программирование на языке Паскаль Тема 5. Циклы с условием © К.Ю. Поляков,
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
Основы программирования. 2 Циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл с неизвестным.
Транксрипт:

1 Программирование на языке Паскаль Тема 4. Циклы

2 Циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием)

3 Алгоритм начало конец нет да

4 Алгоритм (с блоком «цикл») начало конец блок «цикл» тело цикла

5 Цикл с переменной for := to do begin {тело цикла} end; for := to do begin {тело цикла} end; Увеличение переменной на 1: for := downto do begin {тело цикла} end; for := downto do begin {тело цикла} end; Уменьшение переменной на 1:

6 Цикл с переменной Особенности: переменная цикла может быть только целой ( integer ) шаг изменения переменной цикла всегда равен 1 ( to ) или -1 ( downto ) если в теле цикла только один оператор, слова begin и end можно не писать: если конечное значение меньше начального, цикл ( to ) не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием) for i:=1 to 8 do writeln('Привет'); for i:=1 to 8 do writeln('Привет');

7 Сколько раз выполняется цикл? 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

8 for i:=1 to 9 do begin if ??? then begin i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); end; for i:=1 to 9 do begin if ??? then begin i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); end; Как изменить шаг? Задача. Вывести на экран квадраты и кубы нечётных целых чисел от 1 до 9. Особенность: переменная цикла должна увеличиваться на 2. Проблема: в Паскале шаг может быть 1 или -1. Решение: i mod 2 = 1 i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); выполняется только для нечетных i

9 Как изменить шаг? – II Идея: Надо вывести всего 5 чисел, переменная k изменяется от 1 до 5. Начальное значение i равно 1, с каждым шагом цикла i увеличивается на 2. Решение: ??? for k:=1 to 5 do begin i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); ??? end; ??? for k:=1 to 5 do begin i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); ??? end; i := i + 2; i := 1;

10 Программирование на языке Паскаль Тема 5. Циклы с условием

11 Цикл с условием while do begin {тело цикла} end; while do begin {тело цикла} end; Особенности: можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать: while (a

12 Цикл с условием Особенности: условие пересчитывается каждый раз при входе в цикл если условие на входе в цикл ложно, цикл не выполняется ни разу если условие никогда не станет ложным, программа зацикливается a := 4; b := 6; while a > b do a := a – b; a := 4; b := 6; while a > b do a := a – b; a := 4; b := 6; while a < b do d := a + b; a := 4; b := 6; while a < b do d := a + b;

13 Сколько раз выполняется цикл? a := 4; b := 6; while a < b do a := a + 1; a := 4; b := 6; while a < b do a := a + 1; 2 раза a = 6 2 раза a = 6 a := 4; b := 6; while a < b do a := a + b; a := 4; b := 6; while a < b do a := a + b; 1 раз a = 10 1 раз a = 10 a := 4; b := 6; while a > b do a := a + 1; a := 4; b := 6; while a > b do a := a + 1; 0 раз a = 4 0 раз a = 4 a := 4; b := 6; while a < b do b := a - b; a := 4; b := 6; while a < b do b := a - b; 1 раз b = -2 1 раз b = -2 a := 4; b := 6; while a < b do a := a - 1; a := 4; b := 6; while a < b do a := a - 1; зацикливание

14 Замена for на while и наоборот for i:=1 to 10 do begin {тело цикла} end; for i:=1 to 10 do begin {тело цикла} end; i := 1; while i = b do begin {тело цикла} i := i - 1; end; Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла. Замена цикла for на while возможна всегда.

15 Цикл с постусловием Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла. Особенности: тело цикла всегда выполняется хотя бы один раз после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла repeat {тело цикла} until repeat {тело цикла} until

16 Цикл с постусловием: алгоритм начало конец да нет n > 0? тело цикла условие ВЫХОДА блок «типовой процесс» ввод n основной алгоритм

17 Сколько раз выполняется цикл? a := 4; b := 6; repeat a := a + 1; until a > b; a := 4; b := 6; repeat a := a + 1; until a > b; 3 раза a = 7 3 раза a = 7 a := 4; b := 6; repeat a := a + b; until a > b; a := 4; b := 6; repeat a := a + b; until a > b; 1 раз a = 10 1 раз a = 10 a := 4; b := 6; repeat a := a + b; until a < b; a := 4; b := 6; repeat a := a + b; until a < b; зацикливание a := 4; b := 6; repeat b := a - b; until a < b; a := 4; b := 6; repeat b := a - b; until a < b; 2 раза b = 6 2 раза b = 6 a := 4; b := 6; repeat a := a + 2; until a < b; a := 4; b := 6; repeat a := a + 2; until a < b; зацикливание

18 Программирование на языке Паскаль Тема 6. Оператор выбора

19 Оператор выбора Особенности: после case может быть имя переменной или арифметическое выражение целого типа ( integer ) или символьного типа ( char ) case i+3 of 1: begin a := b; end; 2: begin a := c; end; end; case i+3 of 1: begin a := b; end; 2: begin a := c; end; end; var c: char;... case c of 'а': writeln('Антилопа'); 'б': writeln('Барсук'); else writeln('Не знаю'); end; var c: char;... case c of 'а': writeln('Антилопа'); 'б': writeln('Барсук'); else writeln('Не знаю'); end;

20 Оператор выбора Особенности: если нужно выполнить только один оператор, слова begin и end можно не писать нельзя ставить два одинаковых значения case i+3 of 1: a := b; 1: a := c; end; case i+3 of 1: a := b; 1: a := c; end; case i+3 of 1: a := b; 2: a := c; end; case i+3 of 1: a := b; 2: a := c; end;

21 Оператор выбора Особенности: значения, при которых выполняются одинаковые действия, можно группировать case i of 1: a := b; 2,4,6: a := c; : a := d; 20,21,25..30: a := e; else writeln('Ошибка'); end; case i of 1: a := b; 2,4,6: a := c; : a := d; 20,21,25..30: a := e; else writeln('Ошибка'); end; перечисление диапазон смесь

22 Что неправильно? case a of 2: begin a := b; 4: a := c; end; case a of 2: begin a := b; 4: a := c; end; case a of 2: a := b 4: a := c end; case a of 2: a := b 4: a := c end; ; case a of 2..5: a := b; 4: a := c; end; case a of 2..5: a := b; 4: a := c; end; case a of 0..2: a := b; 6..3: a := c; end; case a of 0..2: a := b; 6..3: a := c; end; 3..6: case a+c/2 of 2: a := b; 4: a := c; end; case a+c/2 of 2: a := b; 4: a := c; end; case a of 2: a := b; d := 0; 4: a := c; end; case a of 2: a := b; d := 0; 4: a := c; end; begin end;

23 Задания Составить программу, которая по первой букве названия инструмента (резец, фреза, хон, шлифовальный круг, напильник) выдавала бы наименование рабочей специальности (токарь, фрезеровщик, хонинговщик, шлифовщик, слесарь).