Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Турбо Паскаль.doc
Скачиваний:
17
Добавлен:
22.03.2016
Размер:
307.71 Кб
Скачать

Процедура ввода

Процедура ввода имеет один из видов:

    1. read(<список>);

где список – это перечень переменных, разделенных друг от друга запятой, в которые вводятся данные с клавиатуры. При этом формируется стандартный текстовый файл input, который мы видим на экране дисплея. При вводе данных с клавиатуры необходимо разделять их пробелом. После набора всех значений, соответствующих списку ввода, необходимо нажать клавишу Enter (количество введенных значений и их тип должны соответствовать количеству и типу переменных в списке ввода). После ввода всех значений текущий указатель остается на той же строке в текущем стандартном файле input.

    1. readln(<список>);

Оператор аналогичен первому оператору ввода, но после ввода всех значений текущий указатель в стандартном файле ввода переходит на начало следующей строки. При вводе данных в этом виде оператора после каждого значения необходимо нажимать клавишу Enter.

    1. readln;

Пустой оператор обозначает переход текущего указателя на начало следующей строки в стандартном файле ввода (необходимо нажать клавишу Enter).

Процедура вывода

Процедура вывода имеет один из видов:

    1. write(<список>);

где список – это перечень переменных или констант, разделенных друг от друга запятой, данные из которых выводятся на экран дисплея в одну строку. После вывода всей информации курсор остается в той же строке .

При этом формируется стандартный текстовый файл вывода output.

    1. writeln(<список>);

Оператор аналогичен первому оператору вывода, но после вывода всех значений текущий указатель в стандартном файле вывода устанавливается на начало следующей строки.

    1. writeln;

Переход на начало следующей строки.

    1. writeln(<элемент>:<ширина>,<элемент>:<ширина>,…);

где <элемент> - это то, что нужно вывести на экран: <ширина> - количество символов, выделенных для вывода элемента.

Для того, чтобы значения, выводимые на экран, отделялись друг от друга пробелами, используют запись оператора вывода, содержащую ширину поля. Например, пусть имеются значения переменных

A:=4; D:=-14: h:=’abcdef, которые необходимо вывести на экран Рассмотрим несколько вариантов вывода:

А). writeln(A,D,h);

Б). writeln(A,’ ‘,D,h:4);

В). writeln(A,D:4,h:8);

После выполнения операторов получим:

4-14abcdef {A}

4 -14abcgef {Б}

4 -14 abcdef {В}

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

Если ширина поля меньше, чем количество выводимых символов, то паскаль увеличивает ширину до минимально – необходимого. При выводе вещественных чисел, они выводятся на экран в экспоненциальной форме. Например, a:=-138.76;

Writeln(a);

Результат:

-0.13876000000Е0003

    1. writeln(<элемент>:<ширина>:<количество>,<элемент>:<ширина>,<количество>…); - для вывода на экран вещественных чисел

где <элемент> - это то, что нужно вывести на экран:<ширина> - количество символов, выделенных для вывода элемента, >,<количество> - количество знаков после запятой в числе с фиксированной точкой.

Например, пусть необходимо вывести на печать следующие переменные: a:=12.5; b:=34; c:=-16.75.

Рассмотрим несколько вариантов вывода

a). Writeln(a,’ ‘,b,’ ‘,c);

b) Writeln(a:4:1,’ ‘,b:2,c:5:2);

c). Writeln(a:4:1,b:4,c:7:2);

Результат:

0.125000000000е0002 34 -0.16750000000e0002 {a}

0.125000000000е000234-0.16750000000e0002 {b}

12.5 34 -16.75 {c}

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

Оператор if

Оператор условного перехода if имеет вид

if <условие>

then <оператор 1>

else <оператор 2>;

где <условие> - это любое выражение логического типа, принимающее значение true или false.

Если условие справедливо, т.е. принимает значение true, то выполняется оператор 1, в противном случае – оператор 2.

Веточка else (иначе) является необязательной. При ее отсутствии в том случае, если условие ложно, управление передается следующему после if оператору.

Если в одной из ветвей оператора условного перехода нужно выполнить несколько операторов, то используется составной оператор, имеющий вид:

begin

<оператор 1>;

<оператор 2>;

…………….

<оператор N>

end;

Пример

Проверить, можно ли из отрезков с длинами х, у, z (х, у, z >0) построить треугольник.

program tree;

var

x, y, z: real;

r: boolean;

begin

writeln(‘ Ввести три отрезка х, у, z’);

readln(x, y, z);

writeln(‘x=’,x:4:1, ‘ y=’,y:4:1,’ z=’,z:4:1);

r:=(x+y>z) and (x+z>y) and (y+z>x);

if r

then

writeln(‘Треугольник можно построить’)

else

writeln(‘Треугольник нельзя построить’);

readln;

end.

В операторе условного перехода if после ключевых слов then или else может быть использован также оператор условного перехода. В этом случае говорят, оператор условного перехода имеет вложенную конструкцию: Такая конструкция может иметь вид:

1). If <условие 1>

then <оператор 1>

else

if <условие 2>

then <оператор 2>

else <оператор 3>;

Если <условие 1> - истинно, то выполняется <оператор 1>.

Если <условие 1> - ложно, то проверяется <условие 2>; если <условие 2> - истинно, то выполняется оператор 2>, в противном случае - <оператор 3>;

2). If <условие 1>

then

if <условие 2>

then <оператор 1>

else <оператор 2>

else <оператор 3>

Если <условие 1> справедливо, то проверяется <условие 2>. Если <условие 2>. – справедливо, то выполняется <оператор 1>, если <условие 2> - не справедливо, то выполняется <оператор 2>. Если <условие 1> 0 не справедливо, то выполняется <оператор 3>.

3). If <условие 1>

then

if <условие 2>

then <оператор 1>

else <оператор 2>;

В этом виде оператора для <условие 1> отсутствует веточка else.

Пример

Проверить, можно ли из отрезков x, y, z построить треугольник, если

x, y, z – положительны. .Если можно, то вычислить площадь этого треугольника по формуле

,

где

.

program trea1;

uses crt;

const

k:=0.5;

var

x, y, z, p, s: real;

r: Boolean;

begin

writeln(‘Введите три числа’);

readln(x, y, z);

clrscr;

writeln(‘x=’,x:5:1,’ y=’,y:5:1,’ z=’,z:5:1);

if (x>0) and (y>0) and (z>0)

then

if (x+y>z) and (x+z>y) and (y+z>x)

then

begin

writeln(‘Треугольник построить можно’);

p:=k*(x+y+z);

s:=sqrt(p*(p-x)*(p-y)*(p-z));

writeln(‘Площадь треугольника=’,s:6:1);

end {then}

else

writeln(‘Некорректные исходные данные’);

readln;

end.