Repeat <операторы> until <условие>;
Схема выполнения операторов имеет вид:
|
Цикл Repeat повторяется, если условие ложно (False), и заканчивается, если условие верно (True), т. е. цикл Repeat повторяется до выполнения условия. Цикл Repeat заканчивается проверкой условия, поэтому <операторы> выполняются не менее одного раза. В теле цикла может записываться более одного оператора.
Предыдущая задача с использованием цикла с постусловием решается так:
S:=0;
I: =1;
Repeat
S:=S+1/I;
I:=I+1
Until (1/K<Eps) Or (I>=MaxInt);
Задания к лабораторной работе
Задание 1.
1. Запустите загрузочный файл ТР.
2. Ознакомьтесь с видом основного экрана ТР.
4. Наберите текст программы, указав в треугольных скобках собственную группу.
program lab1;
begin
writeln('<>');
end.
5. Добавьте строку с оператором writeln('< >'). В треугольных скобках укажите собственную фамилию, имя, отчество.
6. Отправьте файл на выполнение F10, Run, Run. Просмотрите результаты работы программы Alt-F5.
7. Сохраните файл под именем task _1.pas, F10, Save as.
8. Выйдите из среды TP, убедитесь в наличии файлов на диске.
Задание 2.
1. Загрузите оболочку ТР.
2.Создайте новое окно, используя команды File, New.
3. Наберите текст программы:
Program kwur; (*Имя программы*)
Uses crt; {Использование библиотечного модуля CRT}
Var a,b,c,d,w,z,xl,x2:Real; {Объявление переменных}
otvet:Char;
Begin {Начало основного блока программы}
Clrscr; {Очистка экрана}
WriteLn ('Программа вычисления корней');
WriteLn ('квадратного уравнения общего вида');
Repeat {Начало цикла с постусловием}
Write('Введите значение a');
ReadLn (а); {Ввод коэффициента а}
If a=0 Then Writeln ('Уравнение не квадратное')
Else Begin
Write ('Введите значение b='); ReadLn (b);
Write ('Введите значение с ='); ReadLn (с);
D: = b*b - 4*a*c; {Вычисление дискриминанта}
Z:=-b/(2*a);
W:=sqrt(abs(d))/(2*a);
WriteLn ('При a=',a:5:2,' b=',b:5:2, ' c=',c:5:2);
If D<0 then
Begin
WriteLn ('Xl= ', Z:6:3,' + i*',w:5:3);
WriteLn ('X2= ', Z:6:3,' - i*',w:5:3);
End
Else
Begin
xl: = z + w;
x2: = z-w;
WriteLn ('xl=',xl:5:2,' x2=',x2:5:2);
End
End;
WriteLn ('Желаете продолжить работу? (y/n)');
Readln (otvet);
Until otvet<>'y'; {Повторять, пока переменная otvet примет значение отличное от у}
WriteLn ('Спасибо! До свидания!');
End.
4. Откройте окно, в котором вы сможете отследить значения переменной i, используя команды F10, Debug, Add Watch.
20. Расположите окна черепицей.
21. Выполните программу пошагово, используя клавишу F8. Отследите изменения значений переменной d.
Задание 3. Составить программу нахождения значения числового выражения с указанной точностью при заданных значениях переменных.
Пример выполнения задания
Найти числовое значение выражения с точностью до 0,001 при a=5,48 и b=1,27:
Текст программы:
Результат вычислений: 0,022.
Задание: Самостоятельно составьте программу в Turbo Pascal для нахождения числового значения выражения с точностью до 0,01 при a=3,81 и b=7,16:
Результат вычислений: -0,04.
Задание 4. Составить блок-схему и вычислить значение функции y = y(x).
Пример выполнения задания
|
Program part_1;
Uses crt;
Var x,y: real;
Begin
Clrscr; {очистка экрана}
Writeln(‘Введите аргумент функции x ’);
Readln(x); {Задаем с клавиатуры значение x}
If x<0 then writeln(‘Решения нет’) {аргумент не входит в ОДЗ}
else begin y:=sqrt(x)/(x+2); {вычисляем значение функции}
writeln(y:5:2) {выводим значение функции на экран}
end;
readkey; {ожидание до нажатия любой клавиши}
end.
Задание: Составить блок-схему и программу вычисления значения функции
Задание 5. Дано целое число в диапазоне 0 – 9. Вывести строку – название соответствующей цифры на русском языке (0 – «ноль», 1 – «один», 2 – «два»,...).
Задание 6. Не набирая команд программы, скажите, какой будет результат на экране мониторапри N=3.
Задание 7. Составить на Паскале программу, реализующую следующий алгоритм решения задачи:
Контрольные вопросы
1. Какова общая структура программы на языке Паскале?
2. Для представления какой информации в языке Паскаль используется тип real? В чем отличие двух типов числовых данных real и integer?
3. Что такое «выражение», «операция», «операнд»? Приведите примеры.
4. Какой формат имеет оператор присваивания?
5. Каково назначение операторов read и readln? В чем их отличия?
6. Каково назначение операторов write и writeln? В чем их отличия?
7. Какой условный оператор используется в Паскале?
8. Для чего служит оператор выбора?
9. Какие операторы используются для организации циклов?