Имя типа (переменная или значение)

Пример

var

Ch:char;

By:byte;

Ch:=’1’;

By:=byte(ch); { by=49}

Операторы

Ввод данных

Операторы считывания обеспечивают ввод чисел, строк и символов:

Read (<список ввода>);

Readln (<список ввода>); –перевод на другую строку

список ввода - это последовательность из одной или более переменных типа char, string а также любого целого или вещественного числа.

При вводе с клавиатуры 2 числа считаются разделенными, если между ними есть хотя бы один пробел. После ввода данных следует нажать клавишу ENTER.

-----------------------------

Read(a,b); 123 1.23!

Или 123! 1.23! {a=123, b=1.23 }

При вводе символов нет разделителей!

Read(ch1,ch2); AB! {ch1=’A’, ch2=’B’}

A B { ch1=’A’, ch2=#13}

От смешанных списков вводе с клавиатуры лучше отказаться!

Вывод данных

Операторы для вывода и печати результатов

Write (<Список Вывода [:n[:m]];

Writeln(<Список Вывода [:n[:m]];

список вывода - это последовательность из одной или более переменных типа char, string, Boolean а также любого целого или вещественного числа. Можно выводить текстовые данные в апострофах.

N- кол-ва позиций при выводе на печать текста или целого числа.

У вещественных чисел можно задавать общее число выводимых знаков(включая знак, точку, букву Е) а число цифр, стоящих после запятой, цифройM.

При необходимости вывода вещественных чисел в ЕХР формате надо задавать только одно значения N, а если n меньше чем длина параметра то nигнорируется!

Для вывода на принтер должно быть доступно устройство LST. Для этого надо подключить модуль PRINTER с помощью зарезервированного слова uses.

Пример

Uses Printer;

Var

------

BEGIN

Write(234); { выводится значение 234}

Write(A+B-2); { выводится результат выражения }

Write(Lst,’Результат вычислений’, Result); {результат выводится на принтер}

I:=123, rr=:123.456; B:=true;

Writeln(i:8); { 123} { выравнивается по правому краю}

Writeln(r:8:2); { 123.46}

Общая ширина поля дробная часть

Writeln(i,I,i); {123123123} { выравнивается по правому краю}

Writeln(r); {в поле шириной 17 символов выводится десятичное представление r в формате с плавающей точкой #.##########E*## +1.2345600000E+02}

Writeln(B:6,not B:7); { True False}

Найдите ошибки в программе:

CONST

A,B: integer;

Result: byte;

BEGIN

Write (‘Введите 2 числа:’ );

Readln(A,B);

Result:= A DIV B;

Writeln (‘Отношение равно:’ Result);

END.

Составной оператор

Это последовательность операторов программы заключенная в операторные скобки BEGIN … END. Это дает возможность писать программу по современным технологиям без операторов go, to. Турбо паскаль не накладывает никаких ограничений на характер операторов, входящих в составной оператор. Среди них может быть и составной оператор. Глубина вложенности произвольна.

Begin

--------------------------

Begin

--------------------------

Begin

- --------------------------

End;

---------------------------

End;

-----------------------------

End;

Условный оператор

Позволяет проверить то или иное условие и в зависимости от результата проверки выполнить то или иное действие.

IF <условие> THEN <оператор 1>ELSE <оператор 2>

Условие это произвольное выражения логического типа.

Оператор 1 и Оператор 2 - любой оператор Турбо Паскаль.

Работает по принципу сначала вычисляем условие если результат True то выполняем оператор 1 а оператор 2 пропускаем если оператор False то оператор 2 выполняется а оператор 1 пропускается!

Пример 1:

-----------------------------

If X<2 then write(‘ X<2 ’)

ELSE

write(‘ X>=2 ’);

INC(X);

-------------------------------------------------------

Пример 2:

If X>5 then write(X);

DEC(X);

--------------------------------------------------------

Оператор 1 и оператор 2 могут быть любого типа, в том числе и условными. Но не каждый из условных операторов может иметь часть ELSE. Эта неоднозначность решается так: любая встретившаяся часть ELSE соответствует ближайшей к ней “сверху” части THENусловного оператора.

Пример 3:

VAR

A,b,c,d:integer;

---------------------------------

{a:=1; b:=2; c:3; d:=4;}

1) If a>b then

If c<d then

If c<0 then c:=0

ELSE

A:=b; {a=1}

2) If a>b then

If c<d then

If c<0 then c:=0

ELSE

ELSE

ELSE

A:=b; {a=2}

Лучше составной оператор ставить между Begin и End.

IF key=’Y’ THEN

begin

{выполняются операторы, если ответом был Y}

End

ELSE

begin

{эти операторы выполняются независимо от ответа}

End;

Пример 4:

Вычислить функцию:

Имя типа (переменная или значение) - student2.ru X2+1, если X<0

Y= X-2,1, если Х>P/2

SIN X, если 0<=X<=P/2

Для произвольного Х.

Program TS;

Var

X,Y: real;

BEGIN

Write(‘ Введите X ‘); Readln(X);

If X<0 then Y:=sqr(X)+1

ELSE

If X>PI/2 then Y:=X-2.1

ELSE

Y:=Sin(X);

Writeln(‘При х=’, X:5:2,’ Y=’,Y:8:2);

END.

Пример 5:

Составить программу определения произведения двух наименьших целых чисел A,B,C.

(A=B=C)

Program MINMUL;

Var

A,B,C: integer;

Mul:real;

BEGIN

Write(‘ Введите A,B,C ‘); Readln(a,b,c);

Max:=a;

If B>MAX then MAX:=B;

If C>MAX then MAX:=C;

MUL:=A*B*C/MAX;

Writeln(‘Произведение двух наименьших’, MUL:8:2)

END.

Операторы циклов

В Т-П имеются три оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты.

Оператор FOR

Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru Используется, если можно указать в заголовке число повторений

FOR <ПЦ> : = <НЗ> TO <КЗ> DO <оператор>

DOWNTO

FOR, TO, DOWNTO, DO – зарезервированные слова

<ПЦ> – параметр цикла, переменная любого порядкового типа

<НЗ>– начальное выражение того же типа

<КЗ> – конечное выражение того же типа

(оператор) – произвольный оператор Т-П

Работа цикла представлена блок-схемой

       
    Имя типа (переменная или значение) - student2.ru
  Имя типа (переменная или значение) - student2.ru
 

Имя типа (переменная или значение) - student2.ru

           
  Имя типа (переменная или значение) - student2.ru
    Имя типа (переменная или значение) - student2.ru
    Имя типа (переменная или значение) - student2.ru
 
 

Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru нет

       
    Имя типа (переменная или значение) - student2.ru
  Имя типа (переменная или значение) - student2.ru

да

       
  Имя типа (переменная или значение) - student2.ru   Имя типа (переменная или значение) - student2.ru
 

Пример 1

Program Privet;

var

Hum : byte;

Begin

For hum :=1 to 3 do

Writeln ('Мы желаем Вам веселого Рождества');

Writeln ('и счастливого Нового года!');

End.

Выполняется при hum := 1,2,3 первая запись и один раз вторая запись (после завершения цикла)

Пример 2

На экран выводиться таблица перевода из градусов по шкале Цельсия (С) в градусы по Фаренгейту (F) для значений от 150 до 300 с шагом 10. Перевод осуществляется по формуле F:= С* 1,8+ 32

Program Demofor;

Var

i: integer;

f: real;

Begin

Write (‘ Температура ‘);

For i:=15 to 30 do

Begin

F:=i*1.8=32;

Write (‘по Цельсию = ‘, i, ‘ по Фаренгейту = ‘, f:5:2)

End

End.

Описан параметр цикла I (тип Integer) и var – типа real. В начале выполнения программы выводится надпись «Температура», а затем таблица соотношения температуры (с) и (F)

Цикл:

1. Проверяется условие I<=30;

2. Если да – то рассчитывается выражение i*1.8=32 и присваивается var f и на экран выводится сообщение;

3. Если условие I<=30 не соблюдается, то оператор цикла не выполняется и управление передается за пределы цикла. Программа завершает работу.

4. Значение i=i+1 передается в заголовок цикла (for) для проверки условия.

Пример 3 c dowto

For i:=14 dowto10 do

Write (i:3)

На экране 14 13 12 11 10

Пример 4

Если выражение отвечает невозможной последовательности, то цикл вообще не выполняется

For i:= 2 to 1 do write(‘Робкий‘)

Начальное и конечное значение вычисляется перед выполнением оператора цикла и в дальнейшем не перевычисляется. Невозможно перескочить через «финишную черту», установленную в самом начале.

Пример 5

Fin := 3; (цикл работает равно три раза)

For i:=1 to fin do 4

Begin 5

Inс (fin) 6

End;

Всякое изменение параметра цикла является ошибкой.

for i:=1 to 3 do

begin

i:=i-1; {ошибка}

read (i); {ошибка}

for i:=5 to 10 do {ошибка}

end;

Оператор WHILE

While <условие> do <оператор>

While, do –зарезервированные слова

<условие> – выражение логического типа

<оператор> – произвольный оператор

Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru Если (условие) имеет

значение Имя типа (переменная или значение) - student2.ru true, то выпол-

False true няется оператор, после

Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru чего повторяется проверка

условия.

Если (условие) имеет

значение false, то оператор

Выполняется оператор
While прекращает свою

работу.

 
  Имя типа (переменная или значение) - student2.ru

Пример 1

n:=3;

while n>0 do

begin 2

n:=pred(n); 1

write (n) 0

end;

Следует знать:

1. В условии выражение должно быть определено до первого выполнения оператора цикла.(n:=3);

2. Число повторений оператора цикла while определяется в ходе выполнения программы и как правило заранее неизвестно;

3. В теле цикла обязательно должно быть инструкции, влияющие на условие выполнения цикла (n:= pred (n).

Пример 2

Суммировать десять произвольно введенных целых чисел.

var

count, item, sum : integer;

begin

sum:= 0;

count:=0;

while count<10 do

begin

inc (count);

write (‘Введите‘, count, ‘- е целое число: ‘);

Readln (item);

Sum:= sum+ item

end;

write (‘сумма введенных чисел = ‘,sum)

end.

Следует знать

1. Цикл white – цикл с предусловием, т.е. тело цикла вообще может быть не выполнено, если условие ложно с самого начала.

2. Цикл white считается самым универсальным видом цикла (см. следующее утверждение).

3. Удобнее всего использовать в случаях, когда возможна ситуация невыполнения цикла.

Оператор REPEAT

Repeat <тело цикла> Until <условие>

повторяет до тех пор пока

Repeat, Until – зарезервированные слова ( повторяет до тех пор пока не будет выполнено условие)

<тело цикла> – произвольная последовательность операторов Т-П

<условие> – выражение логического типа

Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru false

       
 
Выполнить операторы
    Имя типа (переменная или значение) - student2.ru
 

Имя типа (переменная или значение) - student2.ru Имя типа (переменная или значение) - student2.ru true

Операторы (тело цикла) выполняются хотя бы один раз, после чего проверяется условие. Если значение false (ложь), то операторы цикла повторяются. В противном случае (true) оператор repeat завершает свою работу.

Пример 1 Игра «Угадай число»

var

comp: integer; {число, задуманное компьютером}

igrok : integer; {вариант игрока}

begin

randomize; {инициализация датчика случайных чисел}

comp:= random (1000); {случайное число}

repeat

write (‘Введите число - ‘); Readln (igrok);

if igrok> comp then writeln (‘Слишком много‘)

else

if igrok< comp then writeln (‘Слишком мало‘)

else

writeln (‘Вы угадали‘);

until igrok= comp;

end.

Оператор repeat можно использовать для проверки правильности ввода исходных данных.

Пример 2

Исходное данное должно быть двузначным числом. Программа может повторять запрос, пока не получит требуемое.

var х : integer;

repeat

write (‘Введите двузначное число - ‘); Readln (х);

Until (x<9) and (x>100);

Следует знать:

1. Число повторений оператора цикла заранее неизвестна и определяется в ходе выполнения программы.

2. В теле цикла должны быть инструкции, влияющие на условие завершение цикла (var, участвующие в условии должны изменяться в теле цикла).

3. Цикл repeat – цикл с постусловием и поэтому теле цикла будет выполнено хотя бы раз.

Repeat until false {конструкция вечного цикла}.

Наши рекомендации