Лабораторная работа циклы с условием. Реализация алгоритмов c циклами в Паскале
Скачать 15.31 Kb.
|
Лабораторная работа Язык программирования Паскаль Тема: Реализация алгоритмов c циклами в Паскале. Порядок выполнения работы 1. Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ”. 2. Получить индивидуальное задание у преподавателя и разработать программу в соответствии с поставленной задачей. 3. Показать работающую программу преподавателю. 4. Ответить на контрольные вопросы. 5. Подготовить письменный отчет. Форма представления отчета: 1. Тема работы. 2. Условия задания. 3. Текст программы и исходные данные при вводе. 4. Результаты выполнения программы. Краткие теоретические сведения. Цикл В данном уроке рассмотрим второй тип цикла — цикл с предусловием (цикл WHILE). Если цикл со счетчиком мы используем в случаях, когда необходимо организовать цикл с известным числом повторений, то цикл с предусловием используется, когда число повторений неизвестно. WHILE условие DO действие; // тело цикла Тело цикла выполняется пока условие ИСТИННО. Если в теле цикла действий несколько — используются операторные скобки begin … end; WHILE условие do begin действие_1; действие_2; действие_3; ... end; Рассмотрим пример, аналогичный рассмотренному в теме «Цикл со счетчиком», но реализуем его с помощью цикла WHILE. Требуется на экране вывести: Привет Привет Привет Привет Для реализации данного примера с помощью цикла с предусловием нам потребуется переменная n: WHILE n<4 do writeln('Привет'); Данный цикл будет выполнять команду writeln(‘Привет’) бесконечное число раз. Почему? Потому что переменная n не изменяется и всегда будет меньше 4. Поэтому необходимо в цикле добавить код, изменяющий переменную n. Например: n:=n+1. WHILE n<4 do begin writeln('Привет'); n:=n+1; end; Теперь переменная n будет изменяться с каждым выполнением команд тела цикла Нужно запомнить: чтобы не произошло зацикливание в цикле WHILE — необходимо проследить за тем, чтобы переменная из условия изменялась в теле цикла. В цикле со счетчиком такого не случится (зацикливание), т.к. мы указываем точное число итераций. Задача: вычислить сумму ряда 1+1.5+2+2.5+3+3.5+ .. + 30 program example-while; var sum:real; n:real; BEGIN sum:=0; n:=1; while n <= 30 do begin sum:=sum+n; n:=n+0.5; end; writeln('Сумма равна: ',sum); END. 2. Считать сумму введенных с клавиатуры чисел до тех пор, пока не будет введен ноль. Решение. Решение данной задачи основывается на использовании цикла WHILE, т.к. мы не знаем, когда будет введен ноль и мы перестанем вводить числа. var a,s:integer; begin s:=0; writeln('Введите число'); readln(a); while(a<>0) do begin s:=s+a; //подсчет суммы S writeln('Введите число'); readln(a); end; writeln(s); end. Зачем два раза используем ввод числа а (readln(a);)? Первый раз вводим число а для того, чтобы войти в цикл с некоторым значением переменной a, которое будет использоваться в условии цикла WHILE. Второй раз команда readln(a) используется внутри цикла — вводим числа до тех пор, пока не введем ноль.4>4> |