Программирование на языке Паскаль Операторы повторений
Виды повторений: Цикл с параметром; Цикл с предусловием; Цикл с постусловием.
Оператор цикла с параметром Оператор цикла с параметром используют, когда известно число повторений одного и того же действия
Структура цикла с параметром for := to do ; for, to, do – зарезервированные слова (для, до, выполнить) - переменная порядкового типа; - начальное значение параметра – выражение того же типа); - конечное значение параметра – выражение того же типа); - произвольный оператор Турбо Паскаля.
Последовательность выполнения оператора For При выполнении оператора For вначале вычисляется выражение и осуществляется присваивание :=. После этого циклически выполняется: Проверка условия ; если условие не выполнено, оператор for завершает свою работу; (если условие не выполняется в самом начале работы оператора for, исполняемый оператор не будет выполнен ни разу) Выполнение оператора ; наращивание переменной на единицу.
Пример: составить программу, подсчитывающую сумму всех натуральных чисел от 1 до N
program sum1; uses crt; var I,n,s:integer; begin clrscr; write(Введите число n'); read(n); S:=0; for I:=1 to n do S:=S+I; writeln('S=',s); readkey; end.
Оператор downto for := downto ; Выполняется аналогичным образом, но шаг наращивания параметра цикла равен (-1), поэтому, чтобы цикл выполнился хотя бы один раз, начальное значение параметра цикла должно быть не меньше конечного значения параметра. ………………………… for I:=1 downto 1 do S:=S+I; …………………
Оператор While (с предусловием) While do While do – зарезервированные слова (пока[выполняется условие],делать); - выражение логического типа; - произвольный оператор Турбо Паскаля. Если выражение имеет значение true (истина), то выполняется, после чего вычисление значения выражения и его проверка повторяются. Если выражение имеет значение false (ложь), оператор While прекращает свою работу
program sum2; uses crt; var I,n,s:integer; begin clrscr; write(Введите натуральное число n'); read(n); S:=0; I:=1; While I<=n do begin S:=S+I; I:=I+1; End; writeln('S=',s); readkey; end.
Оператор Repeat…Until (с постусловием) Repeat until ; Repeat…Until – зарезервированные слова (повторять до тех пор, пока не будет выполнено условие); - произвольная последовательность операторов Турбо Паскаля; - выражение логического типа; Операторы выполняются хотя бы один раз, после чего вычисляется выражение : если его значение ЛОЖЬ, операторы повторяются, в противном случае Repeat…Until завершает свою работу.
program sum3; uses crt; var I,n,s:integer; begin clrscr; write(Введите натуральное число n'); read(n); S:=0; I:=1; Repeat S:=S+I; I:=I+1; Until I<n; writeln('S=',s); readkey; end.
Вопросы для самоконтроля 1. Каково назначение операторов цикла? 2. Как записывается и как выполняется оператор цикла пока? 3. Как записывается и как выполняется оператор цикла до? 4. Как записывается и как выполняется оператор цикла с параметром? 5. Каковы основные ситуации при выполнении оператора цикла пока? 6. Какова разница между условиями в циклах While и Repeat? 7. Можно ли изменять программным путем значение параметра цикла в циклической части оператора For? 8. Чему равен шаг изменения параметра цикла в операторе For? 9. Будут ли выполняться операторы тела цикла в операторе Repeat, если логическое выражение истинно с самого начала? 10. Как записать операторы цикла с помощью условного оператора и оператора перехода?
Упражнения 1. Что будет результатом выполнения следующих фрагментов программ: а) s:=0; x:=10; Repeat writeln(x:4, s:4); x:=x+1; s:=s+x div 2; Until x>15; б) s:=0; x:=10; While (x<15) do x:=x+1; s:=s+x div 2; writeln(x:4, s:4); в) s:=0; x:=10; For i:=1 to 5 do begin writeln(x:4, s:4); x:=x+1; s:=s+x div 2; end;
2. Вычислить а) б) (1+2)*(1+2+3)*( ) *...( ) в) 1 + 1/2 + 1/3 + 1/ /n (n - целое число) г) 1 - 1/2! + 1/3! - 1/4! (-1)n/n! (n - целое число) а) б) (1+2)*(1+2+3)*( ) *...( ) в) 1 + 1/2 + 1/3 + 1/ /n (n - целое число) г) 1 - 1/2! + 1/3! - 1/4! (-1)n/n! (n - целое число)
1. Составьте программу печати таблицы перевода расстояний из дюймов в сантиметры (1 дюйм = 2,54 см) для значений длин от 1 до 20 дюймов. 2. В компьютер последовательно вводятся данные о росте N учащихся класса. Определить средний рост учащихся класса. 3. Составьте программу печати таблицы Пифагора.
Литература: 1. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. Издание 7-ое, переработанное. – М.: «Нолидж», – 576 с., ил. 2. Немнюгин С.А. Turbo Pascal. Практикум. Учебное пособие. 2-е изд./. – СПБ.: Питер, – 268 с.: ил. 3. Я иду на урок информатики: Задачи по программированию классы: Книга для учителя. – М.: «Первое сентября», с.: ил.