Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2361

.pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
1.46 Mб
Скачать

выражении они могут отсутствовать. Пусть требуется выражение:

y

a

b

 

 

c

d

 

представить с помощью математического оператора присваивания. Такой оператор обязательно должен выглядеть:

у:=(a+b)/(c+d).

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

y:=a+b/(c+d)

Данный оператор не соответствует исходному выражению, а соответствует совсем другому выражению:

y a

b

 

a(c

d )

b

 

 

 

 

 

c d

 

c

d

 

 

 

 

Если совсем опустить круглые скобки: y:=a+b/c+d,

то данный оператор также не будет соответствовать исходному выражению:

y a

b

d

 

c

 

и т.д.

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

Рассмотрим более сложный пример:

 

 

 

a

b

 

 

 

 

1

1

 

 

y

 

 

c1

d1

 

 

 

a2

b2

 

 

 

 

 

 

 

 

c2

d 2

 

 

Соответствующий математический оператор может выглядеть в следующей форме:

y : ((a1 b1) /(c1 d1)) /((a2 b2) /(c2

;

1

2

3

4

 

5

 

6

7

ВВОД И ВЫВОД ДАННЫХ

Ввод данных осуществляется с помощью операторов read и readln, а вывод осуществляется с помощью операторов write и writeln, приставка ln появилась от служебного слова line (ввод в линию или вывод в линию).

ОПЕРАТОРЫ ВВОДА ДАННЫХ

Для ввода исходных данных справа от соответствующих служебных слов (read, readln) в обязательных круглых скобках, через запятую

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

READ (А, В, С);

Выполняя данный оператор ЭВМ делает остановку и «ждет»- введенных данных с клавиатуры.

При этом такой ввод для данного оператора ввод можно осуществить по нескольким вариантам:

1.2_3_5.9Е-2<Enter> - это ввод в строчку.

аможно вводить в столбик:

1.2<Enter>

3 <Enter>

5.9E-2 <Enter>

либо,

1.2_3 <Enter>

5.9E-2 <Enter>

В любом из этих случаев в памяти компьютера будут находиться такие значения:

a=1,2 ; b=3;

c=5,9 10 2 ;

В выше приведенном примере ввод a,b и c можно осуществить по другому варианту:

Read (a);

Read (b);

Read (с);

Рассмотрим другой пример. Пусть в программе имеется:

Read (a, b, c); Read (x, y, z); Read (m);

А исходные данные с клавиатуры вводятся следующим образом:

3_7 <Enter>

2_5_9 <Enter>

1_8

<Enter>

В результате переменные примут следующие

значения:

 

a=3,

b=7, c=2, m=8, x=5, y=9, z=1.

Таким образом, все переменные можно включить в один оператор READ, либо в несколько, а исходные данные с клавиатуры можно вводить в одну или несколько строк. Считывание будет осуществленная оператором READ, последовательно слева на право, сверху вниз.

Рассмотрим процедуру ввода данных с помощью оператора READLN. Процедура ввода для него отличается от процедуры READ тем, что оператор READLN после считывания данных из соответствующей строки переходит к считыванию данных с новой строки с помощью нижеследующего оператора ввода. Даже, если в первой строке остались не считанные данные.

Например если в программе:

Readln (a, b); Readln (c, d, e);

Аввод осуществляется по следующей процедуре:

1_2_3 <Enter> 4_5_6_7_8 <Enter>

В результате будет присвоено: a=1; b=2; c=4; d=5; e=6

Другой пример. Пусть в программе:

Read (a, b); Readln (c, d); Read (m, n);

Аввод осуществляется следующим образом:

1_2_3_4_5_6 <Enter> 7_8 <Enter>

В результате будет присвоено: a=1; b=2; c=3; d=4; m=7; n=8

Оператор READLN без списка переменных (пустой оператор) осуществляет переход к началу новой строки данных, т.е. он игнорирует все оставшиеся данные в текущей строке (в том числе и <Enter>) и осуществляет переход к чтению данных из следующей строки. Например:

Readln (a, b); Readln; Readln (c, d);

А вывод осуществляется по следующей процедуре:

1_2_3 <Enter>

4_5 <Enter>

6_7_8 <Enter>

тогда будет присвоено: a=1; b=2; c=6; d=7

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

ОПЕРАТОРЫ ВЫВОДА ДАННЫХ

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

При этом оператор WRITE отличается от WRITELN тем, что после реализации печати всех данных из оператора WRITELN осуществляется печать с новой строки. Реализация печати из оператора WRITE

всегда осуществляется на той же строке до тех пор, пока на ней есть место.

Другими словами, после выполнения оператора WRITE курсор остается в конце строки, а после реализации оператора WRITELN курсор переходит в начало строки.

Рассмотрим конкретные примеры:

Пример 1.

Для а=1; b=2; с=3, которые находятся в памяти ЭВМ, вывод на экран дисплея можно осуществить следующим образом:

Write (а, b, с);

1 2 3

То же самое (в виде строки) будет напечатано, если вывод осуществляется с помощью следующей процедуры:

Write (а);

Write (b);

Write (с);

Либо:

Write (а);

Write (b);

Writeln (с);

В то же время, если вывод осуществляется по следующей процедуре с ln:

Writeln (а);

Writeln (b);

Writeln (с);

То будет напечатано:

1

2

3

Пример 2.

Для i=1; j=2; k=3; l=4; m=7; n=8 и вывод осуществить по следующей процедуре:

Write (i, j); Writeln (k); Write (l, m, n);

То будет напечатано:

1 2 3

4 7 8

В данных примерах «по умолчанию» компьютером отводится определенное количество позиций на экране дисплея для печати соответствующего числа. На PASCAL есть возможность управлять данным процессом. В этом случае необходимо после написания переменной, текста, либо выражения после обязательного двоеточия указать число позиций, отводимых под каждый из этих данных. Пример 3.

Если а=1; b=2; с=3 и вывод осуществляется с помощью следующего оператора:

Writeln (а:2, b:3, с:4); (указываются позиции),

то будет напечатано :

 

_ 1 _ _

2 _ _

3 _

 

 

а

b

c

 

В тоже время можно управлять и вещественными

константами (дробные числа).

 

 

Пусть для а=3,2; b=0,072; с=75,25 и вывод

 

осуществить с помощью следующего оператора:

 

Writeln (а:6:2, b:7:3, c:8:3);

 

 

 

то будет напечатано:

 

_

3 . 20 _ _ 0 . 072 _ _

75 . 250

_

а→6

b→7

 

с→8

 

Таким образом, первая цифра после первого двоеточия – это общее количество позиций, а вторая – после второго двоеточия – это количество позиций, отводимых для дробного числа.

Следует отметить, что пустой оператор WRITELN (без списка и скобок) используется для перехода к новой строке, если находится между операторами WRITE, другими словами для печати другой строки (пропуск строки). Так осуществляется регулирование интервала между строк при печати.

С другой стороны без такого пустого оператора невозможно обойтись при печати результатов в виде матрицы (он вставляется между внешним и внутренним циклом).

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

Рассмотрим процесс так называемого табулирования функции. Результат удобнее всего вывести на экран дисплея (для удобства чтения), когда переменную со знаком равенства необходимо заключить в апостроф.

Writeln (´x=´, x, ´y=´, y);

Тогда результат будет напечатан в следующем виде (при табулировании в цикле):

x=1 y=… x=2 y=…

.

.

.

x=20 y=…

В результате будет два столбца.

Расстояние между двумя столбцами можно отрегулировать с помощью следующей процедуры:

Writeln (´x=´, x:10, ´y=´, y);

Можно отрегулировать количество позиций и для вещественного значения y:

Writeln (´x=´, x:10, ´y=´, y:10:5)

Следует отметить что, на клавиатуре символ апострофа находится на клавише с символом «Э»(кириллица).

На клавиатуре символ апострофа находится на клавише символа «Э».

Пример 4.

Рассмотрим пример, связанный с какими-либо вычислениями с помощью данного оператора; например, если:

Writeln ((a+b)/c+sin (a));

То компьютер вычисляет выражение:

a b

sin

 

c

 

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

На основе вышеизложенного материала можно теперь составлять простейшие программы. Рассмотрим некоторые из них. В первую очередь приведѐм несложный текст программы на использование данных runastring:

PROGRAM igra; Var

Name:string; Begin

Write(‗Введите имя и Enter‘);

Readln(Name);

Write(‗Здравствуй,‘,Name);

End.

В результате на экран дисплея выйдет, например: Здравствуй, Masa.

Это, при условии, если в момент останова с клавиатуры ввести «Masa» и нажать клавишу Enter.

Рассмотрим другой пример.

Пусть требуется вычислить следующее значение функции:

y ax2

 

 

 

 

 

ax

b , при х=7,8;

 

3 dx2

b

c cx

где a=1,2; b=7,8; c=0,2*10; d=17 · 10-4.

Вариант программы будет выглядеть следующим образом.

PROGRAM func; VAR

A,B,C,D,X,Y:REAL; BEGIN

A:=1.2;

B:=7.8; C:=0.2E-2; D:=17E-2; X:=7.8;

Y:=(Y*SQR(X)+SQRT(A*X+B))/ (EXP((1/3)*LN(D*SQR(X)+B))+EXP(-C*X)); WRITE (Y);

END.

Здесь вместо оператора Х:=7.8; (программный ввод аргумента) можно использовать оператор READ(X); (ручной- с клавиатуры ввод аргумента).

ОПЕРАТОР УСЛОВНОГО ПЕРЕХОДА IF

Иногда его называют логическим оператором условного перехода. На языке PASCAL имеются две формы данного оператора:

1.Неполная (сокращенная).

2.Полная.

В общем виде неполную форму можно представить:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]