Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль учебник.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
174.35 Кб
Скачать

6.4. Оператор ввода

Оператор ввода значений с клавиатуры имеет вид:

ReadLn(Al,A2,...,An); - где

AI, А2,...,Аn - имена переменных.

Следует иметь в виду, что вводимые значения не могут быть логическими.

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

- при вводе значений символьных переменных каждый очередной введенный символ становится значением очередной переменной;

- числовые значения должны разделяться пробелами или нажатием клавиши ввода;

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

Readln;

Ждет нажатия клавиши ввода.

Пример 1

Составить программу - «Диалог с компьютером»

Решение:

Program Lin1;

Var A: String;

Begin

Writeln(‘Я компьютер, а как зовут тебя?');

Readln(A);

Writeln(‘Очень приятно, ‘,А);

End.

Пример 2

Даны числа А,В,С Переприсвоить их значения следующим образом: А→В→С

Исходные данные:

А=10,В=15,С=20

Результат:

А=20, В=10, С=15

Решение:

Program Lin2;

Var A,B,C,D: Integer;

Begin

Writeln ('Введите значения переменных А, В, С);

Read (A,B,C);

D:=C;

С:=В;

В:=А;

A:=D;

Writeln (‘A=’,A,’B=’,B,’C=’C);

End.

Задачи:

1. Какие из следующих последовательностей символов являются операторами ввода:

a) Write(X,Y); б) Readin(X+Y,Y); в)Read(X,Y); г)Read('Xx',Xx,'Yy',Yy)?

  1. Какие числа будут выведены в результате выполнения последовательности операторов:

Read(X); X:=X Mod 2; X:=Sqr(X+l); Write(X,X*2); если в качестве исходного данного использовалось число: а) 2; б)12; в)6; г)5?

  1. Вычислить расстояние между двумя точками с данными координатами X1,Y1 и X2,Y2.

  2. На предприятии 2-м рабочим выделена премия (N руб.). Разделить эту премию между рабочими в зависимости от стажа их работы на предприятии (прямо пропорциональная зависимость). Стаж вводится с клавиатуры.

  3. Найти площадь треугольника по 3-м сторонам (по формуле Герона).

  4. Дано целое число А. Не используя никаких функций и никаких операций кроме умножения получить:

а) А8 за три операции; б) А10 за четыре операции; в) А7 за четыре операции;

  1. Дано число X. Вычислить выражение 2х4-3х3+4х2-5х+6. Позаботиться об экономии операций.

8. Даны числа A,B,C,D. Переприсвоить их значения следующим образом: A←B←C←D

9. Продолжить программу - «Диалог с компьютером».

7. Программирование разветвляющихся алгоритмов

Для организации разветвления в программе, в Паскале используются следующие операторы:

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

2. Оператор варианта

3. Оператор перехода

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

Условный оператор имеет вид:

If Q Then B1 [Else B2];

Блок-схема:

Q - выражение, принимающее логическое значение;

ВI, В2 - любые операторы, в единственном числе;

Выполняется:

  1. Вычисляется выражение Q, которое имеет логическое значение.

  2. Если это значение True, то выполняется оператор В1. Если же Q имеет значение False, то в случае полной формы условного оператора выполняется оператор В1, а в случае неполной формы управление передается следующему оператору программы.

Так, как операторы В1 и В2 могут быть любыми, а значит и условными, то возникает конструкция двусмысленная:

If Q Then If Q1 Then B1 Else B2;

Для устранения двусмысленности введено правило, что часть Else относится к ближайшему слева свободному условию. И структура записи следующая:

If Q Then

If Q1 Then

B1

Else

B2;

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

If Q Then

Begin

If Q1 Then

B1

End

Else

B2;

Пример 1:

Даны 2 различных числа. Найти максимальное из этих чисел.

Исходные данные: А=10, С=15

Решение:

Program Vet1;

Var A,С,Max; Integer;

Begin

Writeln (‘Введите 2 различных числа');

Readln(A,C);

If' A>C Then

Max:=A

Else Max:=C;

Write ('Максимальное число = ',Мах);

End.

Задачи:

  1. Даны 2 числа. Вывести первое число, если оно больше второго и оба числа, если это не так.

  2. Даны 2 различных числа. Найти C=Max/Min.

  3. Составить программу вычисления значения Y по введенному значению X.

4. Даны числа А, В, X. Составить программу вычисления значения Y.

5. Даны 3 различных числа. Найти максимальное из этих чисел.

  1. Даны 3 числа. Определить сколько среди них нулей.

  1. Даны 3 числа. Определить сколько среди них отрицательных и сколько положительных чисел