Практическое занятие 5 Циклы с условием. 2 Цикл с неизвестным числом шагов Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?

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



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

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

Практическое занятие 5 Циклы с условием

2 Цикл с неизвестным числом шагов Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой? Задача 1: Ввести целое число (

3 Алгоритм начало count конец нет да n 0? count := 0 ; count := count + 1; n := n div 10; обнулить счетчик цифр ввод n выполнять «пока n 0»

4 Программа program qq; var n, count: integer; begin writeln('Введите целое число'); read(n); count := 0; while n 0 do begin count := count + 1; n := n div 10; end; writeln('В числе ', n, ' нашли ', count, ' цифр'); end. program qq; var n, count: integer; begin writeln('Введите целое число'); read(n); count := 0; while n 0 do begin count := count + 1; n := n div 10; end; writeln('В числе ', n, ' нашли ', count, ' цифр'); end. while n 0 do begin count := count + 1; n := n div 10; end; while n 0 do begin count := count + 1; n := n div 10; end;, n1: integer; n1 := n; n1, выполнять «пока n 0» Что будет выведено на экране в результате? ?

5 Цикл с условием while do begin {тело цикла} end; while do begin {тело цикла} end; Особенности: можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать: while (a < b) and (b < c) do begin {тело цикла} end; while (a < b) and (b < c) do begin {тело цикла} end; while a < b do a := a + 1; while a < b do a := a + 1;

6 Цикл с условием Особенности: условие пересчитывается каждый раз при входе в цикл если условие на входе в цикл ложно, цикл не выполняется ни разу если условие никогда не станет ложным, программа зацикливается 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;

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

8 Последовательности Задача 2: найти сумму всех элементов последовательности, которые по модулю больше 0,001: Элемент последовательности (начиная с 2): n b12345 c z b := b+1; c := 2*c; z := -z;

9 Алгоритм начало S конец нет да |a| > 0.001? S := S + a; S := 0 ; b := 1; c := 2 ; z := -1; a := 1; начальные значения a := z*b/c; b := b + 1; c := 2*c; z := -z; первый элемент a := 1; S := 0 ; новый элемент изменение Перестановка? ?

10 Программа program qq; var b, c, z: integer; S, a: real; begin S := 0; z := -1; b := 1; c := 2; a := 1; while abs(a) > do begin S := S + a; a := z * b / c; z := - z; b := b + 1; c := c * 2; end; writeln('S =', S:10:3); end. program qq; var b, c, z: integer; S, a: real; begin S := 0; z := -1; b := 1; c := 2; a := 1; while abs(a) > do begin S := S + a; a := z * b / c; z := - z; b := b + 1; c := c * 2; end; writeln('S =', S:10:3); end. z := - z; b := b + 1; c := c * 2; переход к следующему слагаемому S := 0; z := -1; b := 1; c := 2; a := 1; начальные значения увеличение суммы расчет элемента последовательности

11 Задание 3 Найти сумму элементов последовательности с точностью 0,001: Ответ: S = 1.157

Решение задания 3 program qq; var b, c, z, d: integer; S, a: real; begin S := 0; z := 1; b := 2; c := 3; d:= 3; a := 1; while abs(a) > do begin S := S + a; a := z * b / (c*d); z := - z; b := b + 2; c := c + 2; d:=d*3; end; writeln('S =', S:10:3); end.

13 Цикл с постусловием Задача 4: Ввести целое положительное число ( проверку условия цикла надо делать в конце цикла (цикл с постусловием). Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла.

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

15 Программа program qq; var n: integer; begin repeat writeln('Введите положительное число'); read(n); until n > 0;... { основной алгоритм } end. program qq; var n: integer; begin repeat writeln('Введите положительное число'); read(n); until n > 0;... { основной алгоритм } end. repeat writeln('Введите положительное число'); read(n); until n > 0; условие ВЫХОДА Особенности: тело цикла всегда выполняется хотя бы один раз после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла

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

17 Задание 5 (с защитой от неверного ввода) Ввести натуральное число и определить, верно ли, что сумма его цифр равна 10. Пример: Введите число >= 0: Введите число >= 0: Нужно положительное число. Нет Введите число >= 0: 1234 Да

Решение задания 5 program qq; var n,k: integer; S:real; begin repeat writeln('Введите положительное число'); read(n); until n > 0; S := 0; while n 0 do begin k:=n mod 10; n := n div 10; S := S + k; end; If s=10 then Writeln('Да') else Writeln('Нет') end.

Домашнее задание 1. Найти сумму элементов последовательности с точностью 0,001: 2. Ввести натуральное число и определить, какие цифры встречаются несколько раз. Пример: Введите число >= 0: Повторяются: 2, 3 Нет повторов.