- •Курс лекций Язык программирования Turbo Pascal
- •Тема 1 «Языки программирования»
- •Тема 2 «Основные понятия языка»
- •2.1 Алфавит языка
- •2.2 Основные определения языка
- •2.3 Служебные слова
- •2.4 Стандартные имена
- •2.5 Идентификатор
- •2.5 Элементы данных
- •Тема 3 «Общая структура программы на языке Turbo Pascal»
- •3.1 Общая структура программы на Паскале.
- •3.2 Некоторые правила оформления программ
- •Тема 4 «Типы данных, выражения»
- •4.1. Типы данных
- •4.2 Целочисленные типы данных
- •4.3 Вещественные типы данных
- •4.4 Символьный тип данных
- •4.5 Булевский тип (Логический) данных
- •4.6 Перечисляемый тип.
- •4.7 Интервальный тип.
- •4.8 Выражения.
- •1. Умножение, деление;
- •3. Сложение, вычитание.
- •1) Арифметические операции;
- •2) Операции отношений;
- •3) Логические операции.
- •4.9 Объявление констант
- •4.10 Объявление переменных
- •Тема 5 «Операторы для записи линейных процессов»
- •5.1 Оператор присваивания
- •5.2 Оператор ввода числовых данных
- •5.3 Оператор вывода числовых данных
- •5.4 Вывод числовых данных с форматом и без формата
- •1. Вывод данных без формата.
- •2. Вывод данных с форматом.
- •Контрольные вопросы и задания
- •Тема 6 «Разветвляющиеся вычислительные процессы»
- •6.1 Типы разветвляющихся алгоритмов
- •6.2 Оператор выбора case
- •Тема 7 «Операторы цикла»
- •7.1. Типы циклических процессов
- •7.2 Цикл с известным числом повторений for
- •Оператор повтора for.
- •Домашнее задание:
- •7.3 Итерационные циклы
- •7.4 Оператор цикла с предварительным условием
- •7.5 Оператор цикла с последующим условием Repeat
- •Домашнее задание:
- •8.1 Модуль crt. (Процедуры и функции управления экраном)
- •8.2 Константы цветов.
- •Процедуры управления цветом.
- •Тема № 9: «Структурированные типы данных»
- •9.1. Массивы
- •9.2. Записи
- •9.2.1. Оператор присоединения
- •9.2.2. Записи с вариантами.
- •9.3. Множества
- •9.4. Строки
- •9.4.1. Основные операции
- •9.4.2. Доступ к элементам строковых данных
- •9.4.3. Пустой стринг
- •9.4.4. Функции преобразования
- •9.4.5. Стандартные процедуры и функции
- •Тема № 10: Работа с файлами
- •10.1. Доступ к файлам
- •10.1.1. Имена файлов
- •Инициация файла
- •10.2.Процедуры и функции для работы с файлами
- •10. 3. Текстовые файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Тема № 11: «Процедуры и функции»
- •11.1. Процедуры
- •11.2. Функции
- •Тема №12: Указатели и динамическая память.
- •12.1. Выделение и освобождение динамической памяти.
- •Тема № 13: Модули.
- •13.1.Компиляция модулей.
- •13.2. Стандартные модули.
- •13.2.1.Модуль crt.
- •13.2.2. Модуль Graph
- •13.2.3. Модуль Overlay
- •Задания для самостоятельной работы по теме «линейные алгоритмы»
- •Задания для самостоятельной работы по теме «разветвляющиеся алгоритмы»
- •Задания для самостоятельной работы по теме «циклические алгоритмы»
- •Задания для самостоятельной работы «векторы»
- •Задания для самостоятельной работы «строки»
- •Задания для самостоятельной работы «процедуры и функции»
- •Задания для самостоятельной работы «записи»
- •Задания для самостоятельной работы по теме «множества»
- •Задания для самостоятельной работы по теме «файлы»
- •Задания для самостоятельной работы по теме «модуль graph»
- •Задания для самостоятельной работы по теме «модули, определяемые пользователем»
Контрольные вопросы и задания
1. Что такое величина?
2. Какие величины называют аргументами? результатами? промежуточными величинами? Приведите примеры.
3. Каковы атрибуты величины?
4. Какие величины называют постоянными? переменными? Приведите примеры.
5. Какие простые типы величин существуют в языке Pascal?
6. Что определяет тип величины?
7. Расскажите о простых типах данных и их атрибутах.
8. Как осуществляется ввод данных в языке Pascal? Приведите примеры.
9. Как осуществляется вывод данных в языке Pascal? Приведите примеры.
10. Какова общая структура программы в языке Pascal?
11. Расскажите об операторе присваивания и совместимости типов.
12. Что такое формат вывода?
13. Расскажите о правилах вычисления алгебраического выражения. Приведите примеры.
14. Расскажите о правилах вычисления логического выражения. Приведите примеры.
15. Расскажите о логических операциях. Приведите примеры.
16. Приведите примеры задач, имеющих линейный алгоритм решения.
17. Каково назначение следующей программы?
Program Example;
Var N : 100..999;
Begin
Write('Введите натуральное трёхзначное число: '); ReadLn(N);
WriteLn('Искомая величина: ', N Div 100 + N Div 10 Mod 10 + N Mod 10);
End.
18. Задайте на координатной плоскости некоторую область, которую можно описать математическими уравнениями и заштрихуйте её. Запишите логическое выражение, принимающее значение TRUE, если точка (x, y) лежит внутри заштрихованной области, иначе — FALSE.
19. Выпишите несколько алгебраических выражений и запишите их на языке Pascal.
20. Запишите алгебраические выражения, соответствующие следующим записям на языке Pascal:
а) (a + b) / c;
б) a + b / c;
в) a / b / c;
г) a / (b * c);
д) (a + b) / (d + c);
е) a + b / (d + c);
ё) a + b / d + c;
ж) (a + b) / d + c.
Тема 6 «Разветвляющиеся вычислительные процессы»
6.1 Типы разветвляющихся алгоритмов
На практике решение большинства задач не удается описать с помощью программ линейной структуры. При этом после проверки некоторого условия выполняется та или иная последовательность операторов, однако происходит нарушение естественного порядка выполнения операторов. Для этих целей используют управляющие операторы. Условный оператор используется для реализации разветвлений в программе, которые происходят при выполнении некоторого условия и имеет следующую структуру:
IF <логическое выражение> THEN серия1 ELSE серия2;
Если логическое выражение В, выступающее в качестве условия, принимает значение False, то выполняются операторы, расположенные после else (серия 1), если True, — операторы, следующие за then (серия 2).
При записи логического выражения следует избегать знака = (равно) для действительных переменных, так как они представляются неточно, а поэтому может не произойти совпадений значений выражений, стоящих слева и справа от знака равно. Для устранения указанного недостатка следует требовать выполнения условия с заданной точностью, т.е. вместо отношения X= Y рекомендуется, например, Abs(X - Y) < 1E-8.
П
оскольку
развилка может быть неполной, то возможна
и неполная форма записи условного
оператора:
IF <логическое выражение> THEN серия;
Выполнение условного оператора начинается с вычисления логического выражения В. Если оно истинно (да, True,1), то выполняется оператор S, стоящий после служебного слова THEN. Если условие ложно (нет, False, 0), то выполняется оператор, следующий за оператором условия.
Условный оператор реализует разветвление вычислительного процесса по двум направлениям, одно из которых осуществляется при выполнении условия, другое — в противном случае. Для реализации разветвлений более чем по двум направлениям необходимо использовать несколько условных операторов.
Один оператор If может входить в состав другого оператора If. В этом случае говорят о вложенности операторов.
Вариант1.
IF условие 1 Then
If условие2 Then оператор1
Else оператор2
Else оператор3;
Вариант2.
IF условие 1 Then оператор1
Else If условие2 Then оператор2
Else оператор3;
Вариант3.
IF условие 1 Then
If условие2 Then оператор1
Else оператор2;
Следует помнить, что при вложенности операторов каждое Else соответствует тому Then , которое непосредственно ему предшествует (обратите внимание на вариант3).
В условных операторах точка с запятой не ставится после Then и перед Else.
Рассмотрим примеры.
Задача 1. Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить модулем; если отрицательно только одно из них, то оба значения увеличить на 0,5; если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0,5; 2,0], то оба значения уменьшить в 10 раз; в остальных случаях x и y оставить без изменения.
Разработаем алгоритм решения задачи, после чего напишем программу.
Алгоритм запишем словесно:
1) ввести значения x, y;
2) если x<0 и y<0, найти их модули и перейти к п. 5, иначе перейти к следующему пункту;
3) если x<0 или y<0, увеличить каждую величину на 0,5 и перейти к п. 5,
иначе перейти к следующему пункту;
4) если ни x, ни y не принадлежат отрезку [0,5; 2,0], уменьшить их в 10 раз;
5) вывести значения x и y;
6) конец.
Program Usl;
Var X, Y : Real;
Begin
Write('Введите два действительных числа '); ReadLn(X, Y);
If (X < 0) AND (Y < 0) THEN
Begin
X = ABS(X);
Y = ABS(Y)
End
ELSE
IF (X < 0) OR (Y < 0) THEN
Begin
X = X + 0.5;
Y = Y + 0.5
End ELSE
IF NOT (((X >= 0.5) AND (X <= 2))
OR ((Y >= 0.5) AND (Y <= 2)))
THEN
Begin
X = X / 10;
Y = Y / 10
End;
WriteLn('Результат:'); WriteLn('X= ', X:10:6); WriteLn('Y= ', Y:10:6)
END.
Задача
2.Дано
действительное число a.
Вычислить f(a),
если
Program Usl1;
Var A, F : Real;
Begin
WriteLn('Введите действительное число: '); ReadLn(A);
IF A <= 0 THEN F = 0
ELSE
IF A <= 1 THEN F = Sqr(A) - A
ELSE F = Sqr(A) - SIN(Pi * Sqr(A));
WriteLn('Значение функции F(x) при x = ', A:10:6, ' равно ', F:10:6);
END.
