- •Программирование в системе Pascal abc
- •Введение
- •1. Система программирования pascal abc
- •1.1. Структура меню среды
- •1.2. Команды редактора Pascal abc
- •Команды удаления и вставки
- •1.3. Правила оформления программ
- •1.4. Компиляция и исправление синтаксических ошибок
- •1.5. Этапы подготовки и решения задач на компьютере
- •1.6. Словарь основных терминов
- •2. Начальные сведения о языке pascal abc
- •2.1. Алфавит языка
- •2.2. Константы
- •2.3. Идентификаторы и типы данных
- •2.4. Переменные и именованные константы
- •2.5. Структура простой программы и комментарий
- •3. Оператор присваивания и числовые данные
- •3.1. Арифметические выражения
- •Приоритеты операций в выражении
- •3.2. Оператор присваивания
- •3.3. Процедуры ввода-вывода
- •3.4. Стандартные функции Pascal abc
- •3.5. Целые типы в Pascal abc
- •3.6. Вещественные типы
- •Переменные комплексного типа
- •3.7. Примеры и задания к самостоятельному выполнению
- •4. Программирование разветвленных алгоритмов
- •4.1. Логические выражения
- •4.2. Условный оператор if
- •4.3. Составной и пустой операторы
- •4.4. Оператор безусловного перехода
- •4.5. Пример и задания с оператором if
- •4.6. Оператор выбора варианта case
- •4.7. Примеры и задания с оператором case
- •5. Программирование алгоритмов циклической структуры
- •5.1. Оператор счётного цикла
- •5.2. Примеры и задания для оператора цикла со счётчиком
- •Задания к самостоятельному выполнению
- •5.3. Оператор цикла с предусловием
- •5.4. Пример и задания для оператора цикла с предусловием
- •5.5. Оператор цикла с постусловием
- •5.6. Процедуры прерываний циклов
- •5.7. Примеры и задания для циклов с постусловием
- •Задания для самостоятельного выполнения
- •6. Структурированные типы данных
- •6.1. Массивы данных
- •Типизированные константы-массивы
- •6.2. Пример и задания для одномерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •6.3. Ограниченный тип (диапазон)
- •6.4. Пример и задания для двумерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •Задание 3
- •7. Структурное программирование
- •7.1. Структура сложной программы
- •7.2. Подпрограммы. Процедуры и функции
- •7.3. Структура подпрограммы-функции
- •7.4. Примеры и задания с подпрограммой-функцией
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •7.5. Структура подпрограммы-процедуры
- •7.6. Передача в подпрограмму массивов и строк
- •7.7. Рекурсия в программе
- •7.8. Вложенные подпрограммы
- •7.9. Процедуры exit и halt
- •7.10. Пример и задания с подпрограммой-процедурой
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •8. Обработка символьных данных
- •8.1. Символьный тип
- •8.2. Задания для символьных данных
- •9. Обработка строк текста
- •9.1. Строковый тип
- •9.2. Встроенные функции и процедуры для обработки строк
- •9.3. Пример и задания для обработки строк
- •Задания для самостоятельного выполнения
- •10. Файлы
- •10.1. Процедура связывания файлов
- •10.2. Процедуры и функции для работы с файлами
- •10.3. Типизированные файлы
- •10.4. Текстовые файлы
- •10.5. Процедуры ввода
- •10.6. Процедуры вывода
- •10.7. Примеры и задания для работы с файлами
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •11. Комбинированный тип – записи
- •11.1. Структура данных типа записи
- •11.2. Обработка полей записей
- •11.3. Задания с обработкой записей Задание 1
- •Задание 2
- •12. Процедурные типы
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Содержание
4.3. Составной и пустой операторы
Составной оператор используется в том случае, когда по правилам синтаксиса сложного оператора должен стоять только один оператор, а в алгоритме необходимо выполнить некоторую последовательность действий. Составной оператор объединяет эту последовательность в единый по синтаксису оператор путем заключения в операторные скобки begin и end. Например:
ВEGIN
<оператор1>;
<оператор2>;
. . . ;
<операторN>
END;
Для составного оператора допускается любая глубина вложенности:
BEGIN
BEGIN
. . .
BEGIN
. . .
END;
. . .
END;
END ;
Пустой оператор не выполняет никаких действий и может быть использован для передачи управления в конец составного оператора. Пустой оператор записывается в виде точки с запятой.
Например, пустыми операторами будут следующие записи:
1) ; ; 2) <метка>: ;
4.4. Оператор безусловного перехода
Оператор безусловного перехода позволяет изменить обычный последовательный порядок выполнения операторов и непосредственно перейти к нужному оператору, предварительно помеченному меткой.
Структура такого оператора:
GOTO <метка>;
где GOTO ключевое слово, обозначающее перейти к <метке>,
<метка> является произвольным идентификатором, который позволяет пометить любой оператор в программе и потом ссылаться на него. Оператор от метки отделяется двоеточием. В языке Pascal ABC допускается использовать в качестве метки также целое число без знака.
Пример:
LABEL m1, loop;
VAR a, b, c, d: word;
BEGIN
m1: a := b+c*d;
. . .
goto m1;
loop: END.
Все использованные в программе метки должны быть описаны в разделе описаний программы с указанием ключевого слова “LABEL”. Описанные в этом операторе метки обязательно должны быть использованы в программе.
Метки, описанные в функции или процедуре, локализуются только в ней, передача управления извне процедуры на метку внутри ее невозможна. С помощью оператора GOTO не рекомендуется осуществлять переход во внутреннюю часть сложного оператора (цикла, составного оператора). Запрещается переход с одной альтернативной части (ветви) сложного оператора на другую.
Современная технология структурного программирования основана на принципе программирования без GOTO. Считается, что злоупотребление этими операторами затрудняет чтение программы, усложняет ее отладку.
Тем не менее, в некоторых случаях использование оператора перехода может упростить программу. Обычно GOTO используется для досрочного выхода из любого сложного оператора или вложенных операторов цикла.
4.5. Пример и задания с оператором if
Пример. Вычислить значения функции y(x) в зависимости от интервала, в который попадает аргумент x.
Для x [-10,5]
где а = 1.5, b = 0.5 ;
Напишем программу, соответствующую схеме алгоритма (рис. 5):
Program Lr2;
Label m1, 10;
Const A = 1.5; B = 0.5;
var x, y: real; // переменные вещественного типа
Begin
m1: read(x); // вводим значение переменной x
IF (x < -10) or (x>5) then goto m1;
IF x<0 then begin y:= a*x+b ; goto 10 end ;
if (x >= 0) and (x<=2) then y :=A*SQR(x)*LN(x+1) ;
if x>2 then y := EXP(A*x+1)*COS(B*x);
10: writeln( ' x= ', x :8:1 , ' y= ' , y :8:2); //вывод значений x и y
End.
К
Да
Да
Нет
Нет
Да y=Ax+b
y
=
ax2
Ln(x+1)
Нет
Рис. 5
Задания к самостоятельному выполнению (программа_2_1)
Вычислить значение функции в зависимости от интервала, в который попадает вводимый с клавиатуры аргумент:
1.Для t[0,3], at2lnt при 1 t 2,
где a = -0.5,b = 2 z = 1 при t < 1,
eatcosbt при t > 2,
2. Для x [0,4], при x 2,
где а = 2.3 f = х при 0.3 < x 2,
cos(x-a) при x 0.3,
3. Для x[0,7], (a+b)/(ex+cosx) при 0 x 2.3,
где a = -2.7,b = -0.27 z = (a+b)/(x+1) при 2.3 x 5,
ex+sinx при 7 х 5,
4.Для i[7,12], ai4+bi при I < 10,
где a = 2.2,b = 0.3. y = tg(i+0.5) при I = 10,
e2i+ при I > 10,
5. Дляx[0.9,5], x2-7/x2 при x < 1.3,
где a = 1.5 y = ax3+7 при 1.3 x 3,
lg(x+7) при x 3,
6. Дляt[-1.4], при t < 0.1,
где a = 2.1,b = 0.37. z = at+b при 0.1 t 2,
при t 2,
7. Дляx [0,6], a esinx+2.5 при x < 0.3,
где a = 1.5. y = ecosx+a при 0.3 x < 4,
(sin x)/(a+ex) при x 4,
8
y =
где a = 1.8,b = -0.5, c = 3.5 (a+bx)/при x > 1.2,
9. Дляt[1,5], t при t > a,
где a = 2.5 z = t sin at при t = a,
e-at cos at при t < a,
10. Дляx[0,4], e-bx sin bx при x < 2.3,
где a = 1,b = 3 y = сos bx при 2.3 x 3,
e-ax cos bx при x 3,
11.Для t[0.5,3], at2-bпри t < a,
где a = 1.3, b = 6.5 z = a-b при a t b,
a t2/3-при t > b,
12. Для x[0,2], |e-2x sin bx| при x >1,
где b = -2.9 y = cos bx при x = 1,
e-x cos bx при x < 1,
13.Для x[0.5,2] sin (cos ax)при x >1,
где a = -0.8 z = tg ax при x = 1,
a2 x при x < 1,
14. Дляx [1,2], ln bx - 1/(bx+1) при x < 1.3,
где b = 1.3 y = bx + 1 при 1.3 x 1.7,
ln bx +1/(bx+1) при x > 1.7,
15. Для x[-1,1], ax2+bx2/3 при x < 0.1,
где a = 2.5,b = -0.9 z = a x2 при x = 0.1,
b x2/3 при x > 0.1.
16. Ввести координаты точки (x, y). Напечатать, в каком квадранте или на какой оси координат находится эта точка.
17. Ввести радиусы R1, R2 и высоту. Вычислить объем усеченного конуса: , гдеS – площадь оснований. Если R1 = R2 – объем и площадь цилиндра, если R1 = 0 или R2 = 0 – объем (hπr2) и площадь πr() поверхности конуса.
18. Ввести с клавиатуры цифру. Определить, какой системе счисления она может принадлежать.
19. Ввести число. Определить, делится ли оно нацело на два, три или на пять.
20. Ввести a, b, h. Если h = 0, вычислить площадь прямоугольника; при a = b, найти площадь квадрата; в противном случае подсчитать площадь трапеции.