- •Паскаль для школьника
- •Часть II
- •I. Введение
- •2. Алфавит языка
- •3. Типы данных (простые)
- •3.1. Целые типы
- •3.2. Действительный (вещественный) тип Real
- •3.3. Символьный тип Char
- •3.4. Логический тип Boolean
- •3.5.Строковый тип String
- •4.Выражения
- •4.1. Константы
- •4.2. Переменные
- •4.3. Стандартные функции
- •4.4. Знаки операций
- •4.5. Круглые скобки
- •5.Структура программы
- •5.1.Раздел описания меток
- •5.2.Раздел определения констант
- •5.3.Раздел описания типов
- •5.4,Раздел описания переменных
- •5.5.Раздел описания процедур и функций (Рассмотрим ниже)
- •5.6. Раздел операторов
- •6. Программирование линейных алгоритмов
- •6.1. Оператор присваивания
- •6.2.Операторы ввода-вывода
- •6.3. Оператор вывода
- •6.4. Оператор ввода
- •7. Программирование разветвляющихся алгоритмов
- •7.1.Условный оператор
- •7.2.Использование составного оператора
- •7.3.Использование составных логических условий (связки "и"; "или").
- •Оператор варианта
- •7.5. Опера тор перехода
- •8.Программирование циклических алгоритмов
- •8.1.Цикл с постусловием («До»)
- •8.2. Оператор цикла с предусловием «Пока»
- •8.3. Цикл с параметром
- •9.Массивы (структурный тип).
- •9.1. Таблицы и табличные величины
- •9.2. Описание массива (в разделе Var)
- •9.1. Одномерные массивы
- •9.4. Нахождение максимального элемента массива
- •9.5.Сортировка одномерного массива
- •9.6.Решение задач, используя одномерные массивы.
- •9.7. Двумерные массивы
- •10. Подпрограммы.
- •10.1. Описание процедур
- •10.2.Формальные параметры - переменные
- •10.3. Формальные параметры -значения
- •10.4.Описание функций
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)?
Какие числа будут выведены в результате выполнения последовательности операторов:
Read(X); X:=X Mod 2; X:=Sqr(X+l); Write(X,X*2); если в качестве исходного данного использовалось число: а) 2; б)12; в)6; г)5?
Вычислить расстояние между двумя точками с данными координатами X1,Y1 и X2,Y2.
На предприятии 2-м рабочим выделена премия (N руб.). Разделить эту премию между рабочими в зависимости от стажа их работы на предприятии (прямо пропорциональная зависимость). Стаж вводится с клавиатуры.
Найти площадь треугольника по 3-м сторонам (по формуле Герона).
Дано целое число А. Не используя никаких функций и никаких операций кроме умножения получить:
а) А8 за три операции; б) А10 за четыре операции; в) А7 за четыре операции;
Дано число 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 - любые операторы, в единственном числе;
Выполняется:
Вычисляется выражение Q, которое имеет логическое значение.
Если это значение 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.
Задачи:
Даны 2 числа. Вывести первое число, если оно больше второго и оба числа, если это не так.
Даны 2 различных числа. Найти C=Max/Min.
Составить программу вычисления значения Y по введенному значению X.
4. Даны числа А, В, X. Составить программу вычисления значения Y.
5. Даны 3 различных числа. Найти максимальное из этих чисел.
Даны 3 числа. Определить сколько среди них нулей.
Даны 3 числа. Определить сколько среди них отрицательных и сколько положительных чисел
