- •1Основы алгоритмизации
- •1.1Этапы решения задач на эвм
- •1.2Алгоритм. Свойства алгоритмов
- •1.3 Алгоритмическая конструкция ветвления
- •1.4Алгоритмическая конструкция цикла
- •22. Программирование на Турбо Паскаль
- •2.1Основные конструкции языка Паскаль
- •2.1.1История создания языка.
- •2.1.2Программа на tp.
- •2.1.3 Простые типы данных.
- •2.1.4Константы, переменные и оператор присваивания.
- •2.1.5Операторы ввода/вывода.
- •2.2 Управляющие конструкции языка тп
- •2.2.1Безусловные конструкции.
- •2.2.2Условные конструкции.
- •2.2.3Циклические конструкции.
- •1. Цикл с предусловием.
- •Цикл с постусловием.
- •3. Цикл с параметром.
- •2.3Массивы
- •2.3.1Одномерные массивы
- •2.3.2Сортировка массивов.
- •2.3.3Двумерные массивы
- •2.4Процедуры и функции.
- •2.4.1Использование
- •2.4.2Формальные и фактические параметры
- •2.4.3Описание
- •2.4.4Вызов процедур и функций в основной программе
- •2.4.5Пример
- •2.5Использование библиотек стандартных процедур в программах. Модуль Crt. Текстовые режимы использования экрана.
Цикл с постусловием.
Для реализации цикла используется оператор repeat. В общем виде цикл записывается так:
repeat <оператор 1>;
<оператор 2> ;
………. until <условие>;
Читается так: "Выполнять оператор 1, оператор 2, … до выполнения условия".
Здесь не требуется использование операторных скобок begin и end. Обратите внимание также на то, что новая итерация (повторное выполнение тела цикла) происходит не тогда, когда условие справедливо, а как раз тогда, когда оно ложно. Поэтому цикл и получил свое название (выполнять тело цикла до выполнения соответствующего условия).
Интересно, что в случае, когда условие цикла изначально истинно, тело цикла все равно будет выполнено хотя бы один раз.
Пример.
Program Summa;
Var A : Integer;
S : Longint;
Begin
A:=1; S:=0;
Repeat
S:=S+A*A;
A:=A+1
Until A>100;
Writeln(S)
End.
3. Цикл с параметром.
Для его реализации в языке Pascal используется оператор for. Переменная параметр обязательно объявляется в декларационной части программы и должна быть целого типа.
В общем виде цикл записывается так:
for i:= k to n do begin <оператор 1>; <оператор 2>; ... <оператор n>; end;
Пример:
Program Ex3;
Var A : Integer;
S : Longint;
Begin
S:=0; For A:=1 To 100 Do S:=S+A*A;
Writeln(S)
End.
Пример. Разработать программу табулирования (вычисления таблицы значений) функции для произвольного диапазона изменения независимого параметра или аргумента. Выполнить расчет для заданных значений исходных данных.
Результаты расчетов вывести в табличной форме
|
|
|
|
|
|
Контрольный расчет.
program my_third_prog;
const l=-1.21;
var a,t,x,dx,xk,xn:real;
begin
writeln('xn, xk, dx');
readln(xn,xk,dx);
writeln('| a | x | t |');
writeln('-------------------------');
a:=sqr(arctan(l));
x:=xn;
while x<=xk do
begin
t:=(x+a)/(0.1*sqrt(sin(x)+5*sin(exp(0.6*ln(2*x)))));
writeln('|',a:7:3,'|',x:7:3,'|',t:7:3,'|');
writeln('-------------------------');
x:=x+dx;
end;
readln;
end.
program my_third_prog;
const l=-1.21;
var a,t,x,dx,xk,xn:real;
begin
writeln('xn, xk, dx');
readln(xn,xk,dx);
writeln('| a | x | t |');
writeln('-------------------------');
a:=sqr(arctan(l));
x:=xn;
repeat
t:=(x+a)/(0.1*sqrt(sin(x)+5*sin(exp(0.6*ln(2*x)))));
writeln('|',a:7:3,'|',x:7:3,'|',t:7:3,'|');
writeln('-------------------------');
x:=x+dx;
until x>xk;
readln;
end.
program my_third_prog;
const l=-1.21;
var a,t,x,dx,xk,xn:real;
i,n:integer;
begin
writeln('xn, xk, dx');
readln(xn,xk,dx);
writeln('| a | x | t |');
writeln('-------------------------');
a:=sqr(arctan(l));
x:=xn;
n:=round((xk-xn)/dx);
for i:=1 to n do
begin
t:=(x+a)/(0.1*sqrt(sin(x)+5*sin(exp(0.6*ln(2*x)))));
writeln('|',a:7:3,'|',x:7:3,'|',t:7:3,'|');
writeln('-------------------------');
x:=x+dx;
end;
readln;
end.