- •Автономная некоммерческая организация высшего профессионального образования «Брянский институт управления и бизнеса»
- •Методические пособие по изучению алгометрического языка pascal
- •Оглавление
- •Введение
- •Глава 1 основные понятия .
- •Алфавит языка.
- •Основные определения языка.
- •Составные части программы.
- •Вопросы для самоконтроля
- •Глава 2 стандартные типы данных
- •Данные целого типа.
- •Вычисление об"ема шара
- •Данные действительного типа.
- •Данные логического типа.
- •Данные символьного типа.
- •`Теплоход``маяк``` или `д``артаньян`
- •Описание констант и переменных.
- •Var_имя переменной: тип;
- •Вопросы для самоконтроля
- •Глава 3 выражения.
- •3.1. Стандартные функции.
- •3.2. Арифметические выражения.
- •3.3. Логические выражения.
- •Вопросы для camokohtpoля
- •Глава 4 основы программирования простых задач.
- •4.1. Оператор присваивания.
- •4.2. Понятие о составном и пустом операторах. Назначение символа точки с запятой.
- •Простейший ввод данных.
- •5 Позиций
- •8 Позиций
- •Примеры программирования простых задач.
- •Вопросы для самоконтроля
- •5.1. Условный оператор.
- •Оператор выбора.
- •Оператор перехода.
- •Go to метка
- •Lавеl метка;
- •Label метка 1, метка 2,…, метка n;
- •5.4.Примеры программирования вычислительных процессов с разветвлениями.
- •Глава 6 организация циклических прцессов.
- •Оператор цикла с предварительным условием.
- •Оператор цикла с последующим условием.
- •Операторы циклической части программы
- •Оператор цикла с параметром.
- •Вложенные циклы.
- •Глава 7 основы ввода и вывода.
- •7.1. Оператор ввода.
- •7.2. Оператор вывода
- •Программирование циклических вычислительных процессов.
- •Вопросы для самоконтроля
- •Глава 8 Переменные типы.
- •Перечислимый тип данных.
- •Var а: (зима, весна, лето, осень);
- •Ограниченный тип данных.
- •Вопросы для самоконтроля
- •Глава 9 Сложный тип данных – массивы.
- •Понятие массива.
- •Var_имя массива: array [t1] of_t2;
- •Тип массива.
- •Упакованные массивы.
- •Понятие многомерных массивов.
- •Глава 10 Сложный тип данных – множества.
- •10.1. Множества в языке Паскаль.
- •Var _имя множества: set_of_ базовый тип;
- •Примеры программирования задач с использованием множества
- •Вопросы для самоконтроля
- •Глава 11 Сложный тип данных – записи.
- •Понятие записи.
- •Оператор присоединения.
- •Вопросы для самоконтроля
- •Глава 12 Подпрограммы.
- •Общие сведения.
- •Процедуры и функции.
- •Вопросы для самоконтроля
- •Глава 13 Файлы
- •13.1. Понятие файла.
- •13.2. Чтение файла.
- •13.3. Запись файла.
- •13.4 Чтение и запись файла
- •Вопросы для самоконтроля
5 Позиций
Если формат отведен больше, чем количество позиций, занимаемых числом, то перед целой частью будет отведено соответствующее количество пробелов, а после дробной части — соответствующее количество нулей.
Пусть оператор вывода для значения Y=1.76 имеет вид
WRITE (' Y = ' , Y : 8 : 3)
тогда информация на экране дисплея будет представлена следующим образом:
Y
=
_ _ _ 1.760
8 Позиций
Для вывода целых чисел формат дробной части не указывается. Пусть необходимо вывести значение целого числа N= 179. Оператор вывода можно представить в виде
WRITE (' N = ', N : 3)
Здесь на изображение числа отведено 3 позиции. Если формат указать больше чем 3, например
WRITE ('N=', N: 5) то перед числом будут отведены два пробела:
N = _ _179
а для отрицательного числа — один пробел:
N = _- 179
В языке ПАСКАЛЬ допускается использование и других операторов вывода. Оператор вывода без параметров
WRITELN
осуществляет переход на новую строку экрана дисплея. Последующий оператор вывода с параметрами будет выводить данные на новую строку; экрана. Оператор вывода без параметров часто используется для пропуска пустых строк. Оператор вывода
WRITELN (а1, а2,... аn)
осуществляет сначала вывод на экран дисплея значений а1, a2,..., аn, а затем — переход на новую строку. Таким образом, данный оператор эквивалентен двум операторам
WRITELN (а1, а2, ... аn); WRITELN
Операторы ввода и вывода используются практически во всех программах, Более подробно они изложены в гл. 7.
Примечание. Перед вводом данных рекомендуется давать поясняющий текст с помощью оператора WRITE. Этим самым устанавливается диалог пользователя и машины. Например, для ввода значений А, В, С лучше указать
WRITE ('ВВЕДИТЕ ЗНАЧЕНИЯ А, В, С'); READ (A, В, С)
Таким образом, перед вводом численных значений A , В, С на экране появится сообщение
ВВЕДИТЕ ЗНАЧЕНИЯ А, B,
после чего можно вводить значения, например:
5_17_6.2 BK
Если поясняющий текст не давать, то пользователь зачастую забывает, значения каких переменных нужно вводить. Особенно это сказывается при выполнении больших программ с большим количеством операторов ввода.
Примеры программирования простых задач.
Пример 4.1. Вычислить объем шара V с радиусом R по формуле
V = ( 4 / 3 ) π R3.
Программа этой задачи была приведена в параграфе 1.3 при заданном конкретном значении радиуса R=0,2. Составим программу так, чтобы можно было вычислять объем шара при любом другом значении радиуса. Для этого воспользуемся не оператором присваивания R:= 0,2, а оператором ввода READ(R), который позволяет вводить любые значения R во время выполнения программы. Вспомним при этом, что значения R и V не должны выходить за предел 10+38.
Программа 4.1 вычисления объема шара вместе с информацией на экране дисплея во время ее выполнения имеет вид:
(*ВЫЧИСЛЕНИЕ ОБ’’ЕМА ШАРА*)
PROGRAM E10;
CONST PI=3.14;
VAR
R: REAL; (*радиус шара*)
V: REAL; (*объем шара*)
BEGIN
WRITELN(’ВВЕДИТЕ ЗНАЧЕНИЕ РАДИУСА R: ’);
READ(R);
V:=4/3*PI*R*R*R;
WRITELN;
WRITELN('РЕЗУЛЬТАТ: ' ) ;
WRITELNC ('ОБ"ЕМ ШАРА= ' , V:8:3);
END.
ВВЕДИТЕ ЗНАЧЕНИЕ РАДИУСА R:
0.2
РЕЗУЛЬТАТ:
ОБ’’М ШАРА = 0.033
ВВЕДИТЕ ЗНАЧЕНИЕ РАДИУСА R:
3.5
РЕЗУЛЬТАТ:
ОБ’’ЕМ ШАРА = 179.503
Здесь результаты представлены для двух значений R: 0,2 и 3,5.
Для этой задачи, а также и для всех последующих задач после программы на языке ПАСКАЛЬ будет представлена информация на экране дисплея во время выполнения программы, а именно: ввод данных и вывод результатов с поясняющим текстом. Для наглядности эта информация заключена в рамку. Естественно, что при вводе данных задаются конкретные значения, при которых полученные результаты выводятся на экран дисплея. Необходимые пояснения даны в виде комментариев.
Пример 4.2. Вычислить площадь трапеции, представленной на рис. 4.1.
Обозначим площадь трапеции через S. По определению, S= EF*H, где EF — средняя линия, равная полусумме оснований трапеции; Н — высота.
EF = (BC+AD) / 2.
Составим программу 4.2, объединив обе формулы в одну:
S = (BC + AD) H / 2.
Программа 4.2
(*ВЫЧИСЛЕНИЕ ПЛОЩАДИ ТРАПЕЦИИ*)
РRОGRАМ Е12;
VAR
ВС: REAL; (* ДЛИНА ВЕРХНЕГО ОСНОВАНИЯ *)
AD: REAL; (* ДЛИНА НИЖНЕГО ОСНОВАНИЯ *)
Н : REAL; (* ВЫСОТА ТРАПЕЦИИ *)
S : REAL; (* ПЛОШАДЬ ТРАПЕЦИИ *) BEGIN
WRITELN ('ВВЕДИТЕ ЗНАЧЕНИЯ BC, AD, H:');
READ(BC,AD,H);
S:=(BC+AD)*H/2;
WRITELN;
WRITE('ПЛОЩАДЬ ТРАПЕЦИИ=',S:7:2)
END.
Рис.
4.1.
Пример 4.3. Вычислить сопротивление цепи, состоящей из резисторов, соединенных:
последовательно R посл = R1 + R2
параллельно R парал = R1 R2 / R1+ R2
Обозначим R1 через R1; R2 через R2, R посл через PROS; Rпарал, через RPAR. Составим программу 4.3 вычисления сопротивления цепи.
Программа 4.3.
(*ВЫЧИСЛЕНИЕ СОПРАВТИВЛЕНИЯ ЦЕПИ*);
PROGRAM ER;
VAR
R1,R2:REAL; (* СОПРОТИВЛЕНИЯ РЕЗИСТОРОВ *)
RPOS:REAL; (* СОПР-Е ПОСЛЕД.РЕЗИСТ-ОВ *)
RPAR:REAL; (* С/ОПР-Е ПАРАЛ Л. РЕ ЗИСТОРОВ *)
BEGIN
WRITEL (‘ВВЕДИТЕ ЗНАЧЕНИЯ R1 И R2 :');
READ(R1, R2);
RPOS:= R1 + R2;
RPAR:= R1*R2 /( R1+ R2 );
WRITELN;
WRITELN('ПОСЛЕДОВАТЕЛЬНАЯ ЦЕПЬ, R=', RPOS:8:2 );
WRITELN('ПАРАЛЛЕЛЬНАЯ ЦЕПЬ, R=', RPAR:8:2 )
END.
Пример 4.4. Вычислить арифметические выражения Y = √A; R=sin (X+π/4) и остаток от деления целого К на целое N.
Даны значения действительного типа A, X.
Обозначим π через PI, остаток от деления К на N — через ОСТАТОК. Составим программу 4.4 вычисления арифметических выражений.
Программа 4.4.
(*АРИФМЕТИЧЕСКИЕ ВЫРАЖЕНИЯ*)
PROGRAM EX;
CONST PI = 3.14;
VAR Y,R,X : REAL;
K, N : INTEGER;
OCTATOK : INTEGER;
ВЕGIN
WRITELN(‘ ДОБРЫЙ ДЕНЬ ! ');
WRITELN)'ВВЕД'ИТЕ ЗНАЧЕНИЯ X,K,N :');
READ( X,K,N );
Y:=SQRT( X );
R: = SIN( X + PI/4 );
OCTATOK:= К MOD N ;
WRITELN;
WRITELN ('РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЙ :');
WRITELN ('Y=', Y:6:2 ) ;
WRITELN ('R=', R:6:2 );
WRITELN ('ОСТАТОК =' , ОСТАТОК :3 )
END.
