
- •Автономная некоммерческая организация высшего профессионального образования «Брянский институт управления и бизнеса»
- •Методические пособие по изучению алгометрического языка 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 Чтение и запись файла
- •Вопросы для самоконтроля
Вопросы для самоконтроля
Для чего предназначен оператор присваивания?
Чему равно значение Y после выполнения следующих операторов присваивания:
Y:= 1;
А: = 5-Y;
Y:=Y+2*A;
3. Перечислите константы в операторах присваивания А:= 3; В15:= 7; Y2:=2*A- 4*B1;
4. Перечислите переменные в операторе присваивания SUMMA: = SQR(X) + 3#A
Для чего предназначен оператор ввода?
Может ли быть константа параметром оператора ввода?
Для чего предназначен оператор вывода?
Каков смысл следующих предложений языка ПАСКАЛЬ:
(* ВЫВОД РЕЗУЛЬТАТОВ*)
WRITE ('ВЫВОД РЕЗУЛЬТАТОВ')
9. Что понимается под составным оператором?
ГЛАВ 5 УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ.
5.1. Условный оператор.
Условный оператор используется в тех случаях, когда вычисления могут пойти по различным путям, в зависимости от выполнения или невыполнения определенных условий.
Пример 5.1. Вычислить арифметическое выражение у = x=1, если x<0, либо у=2х, если х≥0.
Здесь сначала проверяется условие: будет ли аргумент x положительным или отрицательным. В зависимости от этого условия вычисляется только одно значение: либо y=x+1, либо у=2х.
В языке ПАСКАЛЬ для таких вычислений предусмотрен условный оператор, который имеет две формы - полную и краткую.
Полная форма условного оператора имеет вид
IF_ <логическое выражение>_THEN_оператор 1
ELSE_оператор_2/
Здесь IF (если), THEN (тогда), ELSE (иначе) - служебные слова, оператор 1, оператор 2 - простые или составные операторы.
Если логическое выражение истинно, тогда выполняется оператор 1, иначе (если логическое выражение ложно) выполняется оператор 2. В качестве операторов 1 и 2 могут быть также условные операторы. Условный оператор относится к сложным, так как в его состав входят другие операторы.
Для рассмотренного примера 5.1 условный оператор имеет вид:
IF X<0 THEN Y: = X+1 ELSE Y: =2*x
Здесь значение X должно быть определено до выполнения оператора IF.
Условие, управляющее разветвлением вычислений, не обязательно должно иметь форму операции отношения. Оно может принимать вид любого логического выражения, в частности логической переменной.
Если в нашем примере описать B как логическую переменную и определить ее значение отдельно:
В: = Х<0
то условный оператор примет вид
IF В THEN Y: =X+1 ELSE Y:=2*x;
Пример 5.2. Вычислить A =N + 40, если значение N больше 15, но меньше 25. При всех других значениях N вычислить B = М+1. Условный оператор имеет вид
IF(N>15)AND(N<25)THEN A:=N+40 ELSE B:=M+1;
Обратите внимание на логическое выражение: когда выполняются одновременно оба условия N>15 и N<25, только тогда вычисляется значение A =N + 40. Значение переменных N и М должно быть определено до выполнения оператора.
Правила написания программы позволяют записывать ее в свободной форме. Однако для удобства восприятия программы, особенно большой и сильно разветвленной, рекомендуется слово ELSE писать под тем словом IF, к которому оно относится, например:
IF A=B THEN
IF С<D THEN X:=1
ELSE X:=2
ELSE X:=3;
Этот пример соответствует следующей алгебраической схеме:
1, если A=B и C<D
X = 2, если A=B и C≥D
3, если A≠B
Иногда используют другую запись условного оператора:
IF логическое выражение
THEN оператор 1
ELSE оператор 2
На первый взгляд она более целесообразна, но, как показал опыт, предыдущая форма записи более наглядна в сложной логической структуре, а вторая — в простой.
Действие условного оператора можно расширить путем использования составного оператора. В этом случае после слов THEN и ELSE могут быть составные операторы:
IF <логическое выражение > THEN
BEGIN
оператор 1;
оператор 2;
… … …
оператор n-1;
оператор n
END
ELSE
BEGIN
оператор 1;
оператор 2;
… … …
оператор n-1;
оператор n
END;
Обратите внимание на то, что перед служебным словом ELSE не ставится знак точки с запятой.
Внутри составных операторов могут быть также условные операторы, содержащие простые или составные операторы. Глубина вложенности может быть ограничена в различных версиях языка.
Например, если A > B, то нужно вычислить три оператора:
Y1 = 7, Y2 = A; Y3 = A + B.
Если A≤B, то нужно вычислить Т1 = 2А и Т2=A - В. Условный оператор имеет вид
IF A>В THEN
BEGIN
Y1:=7;
Y2:=A;
Y3:=A+B
END
ELSE
BEGIN
T1:=2*А;
T2:=A-B;
END;
Здесь используются два составных оператора. Возможны случаи, когда используются один составной оператор, а другой простой. Начинающие программисты часто допускают такую ошибку: после служебных слов THEN или ELSE имеют в виду составной оператор, а операторные скобки BEGIN - END ставить забывают. В этом случае выдается сообщение о неправильной конструкции условного оператора.
В языке ПАСКАЛЬ допускается и краткая форма условного оператора:
IF_ <логическое выражение > THEN _ оператор 1;
Если логическое выражение истинно, то выполняется оператор 1; иначе (если логическое выражение ложно) выполняется оператор, расположенный в программе после условного оператора IF. Например:
IF A>15 THEN Y:=X–7;
Z:=SUM+1;
В этом фрагменте представлено два независимых оператора. Один из них условный, другой — оператор присваивания.
Если условие A>15 истинно, то вычисляется значение Y и происходит передача управления на вычисление значения Z.
Если условие A>15 ложно, т. е. А≤15, то сразу выполняется оператор присваивания Z: = SUM+1.
Краткой формой условного оператора нужно пользоваться осторожно, так как может нарушиться вся структура при вложенных условных операторах. Вместо краткой формы рекомендуется использовать всегда полную форму, но после слова ELSE ничего не ставить (говорят, указывается пустой оператор). Так, для рассмотренного примера лучше составить следующую конструкцию:
IF A>15 THEN Y:=X–7;
ELSE;
Z:=SUM+1
Допускается использование пустого оператора и после слова THEN. Этот -же пример можно записать и так:
IF A <=15 THEN
ELSE Y:=X–7;
Z:=SUM+1;
Здесь в логическом выражении знак операции отношения «>» сменился на противоположный «≤». В соответствии с этим поменялись местами операторы, расположенные после слов THEN и ELSE (пустой оператор и оператор Y: = X - 7).
Пример 5.3. Определить, попадает ли точка a с координатами ха и уа внутрь круга с радиусом R. Центр круга совпадает с началом координат (рис. 5.1).
Рис. 5.1. Окружность с центром в начале координат.
Очевидно, что точка а находится внутри круга, если ее расстояние от начала координат
будет меньше радиуса круга R, т. е. если:
<R или >R2
Тогда программа 5.3 решения этой задачи может быть такой:
Программа 5.3
PROGRAM КРУГ;
VAR
XA, YA, R,L:REAL ;
BEGIN
WRITE ( 'ВВЕДИТЕ ЗНАЧЕНИЯ XA,YA,R ');
READ(XA,YA,R);
L:=SQR(XA)+SQR(YA) ;
IF L<SQR(R)
THEN WRITELN (‘ТОЧКА НАХОДИТСЯ ВНУТРИ КРУГА’)
ELSE WRITELN (‘ТОЧКА НАХОДИТСЯ ВНЕ КРУГА ');
END.
Здесь условный оператор сравнивает расстояние L точки A от начала координат с радиусом круга R. Если оно меньше радиуса R, то выполняется группа THEN, т. е. печатается сообщение ТОЧКА НАХОДИТСЯ ВНУТРИ КРУГА. В противном случае выполняется группа ELSE, и на печать выводится сообщение ТОЧКА НАХОДИТСЯ ВНЕ КРУГА.