- •Курс лекций Язык программирования 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»
- •Задания для самостоятельной работы по теме «модули, определяемые пользователем»
5.3 Оператор вывода числовых данных
Вывод числовых данных выполняется операторами WRITE и WRITELN.
Общий вид операторов следующий:
WRITE(b1, b2,..., bn);
WRITELN (b1, b2,..., bn);
WRITELN;
Оператор Write выполняет вывод значений b1, b2,..., bn в одной строке. Оператор WriteLn с параметрами после вывода последнего значения осуществляет переход на новую строку. Оператор WriteLn без параметров осуществляет переход к новой строке.
Примеры:
1) Write(a, b); Write(c); - вывод а, b, с в одну строку;
2) Writeln(a, b); Write(c); - вывод а и b на одной строке, с - на следующей строке.
5.4 Вывод числовых данных с форматом и без формата
1. Вывод данных без формата.
В случае бесформатного вывода значения целого типа выводятся в виде последовательности цифр и знака; значение действительного числа выводится в форме с плавающей точкой (или экспоненциальной форме) с указанием мантиссы и порядка.
Пример:
A:= 27.3; write(‘A=’,a); на экран будет выведено: A= 2.7300000000Е-01
2. Вывод данных с форматом.
Формат вывода указывается после переменной через двоеточие - :L:D. Для целых чисел формат состоит из одной величины L, равной количеству цифр в числе и символа под знак. Для вещественных чисел формат состоит из двух величин, указывающих соответственно общее поле выводимого значения L и количество цифр в дробной части D. L включает позиции под знак, целую часть, десятичную точку и дробную часть числа.
Общий вид оператора следующий:
Write (v:L) - для целых переменных;
Write (v:L:D) - для вещественных переменных.
Здесь v - переменная, значение которой выводится на экран;
L - общая длина поля числа;
D - количество символов в дробной части числа.
Пример:
Var
a,b : Integer;
c : Real;
Begin
A:=25; B:=7; C:=2.09;
Writeln(A:5, B:3);
Writeln;
Write(C:7:2);
End.
После запуска программы на экране появится следующее
- - -25- -7
- - - 2.09
где ‘-‘ это пробел.
Рассмотрим примеры задач, где алгоритм решения является линейным.
Задача 1. Скорость первого автомобиля v1 км/ч, второго — v2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны?
Согласно условию задачи искомое расстояние s1=s+(v1+v2)t (если автомобили изначально двигались в противоположные стороны) или s2=|(v1+v2)t-s| (если автомобили первоначально двигались навстречу друг другу).
Чтобы получить это решение, необходимо ввести исходные данные, присвоить переменным искомое значение и вывести его на печать.
Program Car;
Var V1, V2, T, S, S1, S2 : Real;
Begin
Write('Введите скорости автомобилей, расстояние между ними и время движения:');
ReadLn(V1, V2, S, T);
S1 := S + (V1 + V2) * T;
S2 := Abs((V1 + V2) * T - S);
WriteLn('Расстояние будет равно ', S1:7:4, ' км или ', S2:7:4, ' км')
End.
Заметим, что идентификатор должен начинаться с латинской буквы, кроме латинских букв может содержать цифры, знак подчеркивания (_).Разумно, чтобы программа вела диалог с пользователем, т.е. необходимо предусмотреть в ней вывод некоторых пояснительных сообщений. В противном случае даже сам программист может через некоторое время забыть, что необходимо вводить и что является результатом.
Для всех величин в программе объявлен тип Real, что связано со стремлением сделать программу более универсальной и работающей с как можно большими наборами данных.
З
адача
2. Записать
логическое выражение, принимающее
значение TRUE, если точка лежит внутри
заштрихованной области, иначе — FALSE.
Прежде всего обратим внимание на то, что эту сложную фигуру целесообразно разбить на несколько более простых: треугольник, лежащий в I и IV координатных четвертях и треугольник, лежащий во II и III четвертях. Таким образом, точка может попасть внутрь одной из этих фигур, либо на линию, их ограничивающую. Количество отношений, описывающих какую-либо область, обычно совпадает с количеством линий, эту область ограничивающих. Чтобы точка попала внутрь области, необходима истинность каждого из отношений, поэтому над ними выполняется операция AND. Так вся область была разбита на несколько, то между отношениями, описывающими каждую из них, используется операция OR.
Учитывая приведенные здесь соображения и записав уравнения всех ограничивающих фигуру линий, получаем искомое логическое выражение:
(X >= 0) And (Y >= 1.5 * X – 1) And (Y <= X) OR (X <= 0) And (Y >= –1.5 * X – 1) And (Y <= –X)
Задача 3. Вычислить значение выражения:
Для решения задачи достаточно ввести все данные, безошибочно записать выражение и вывести результат. Примечание. При решении этой задачи не учитывается область определения выражения, считается, что вводятся только допустимые данные.
Program Expression;
Var X, Z : Real;
Begin
Write('Введите значения переменной X: '); ReadLn(X);
Z := 6 * ln(sqrt(exp(x+1)+2*exp(x)*cos(x))) /
ln(x - exp(x+3) * sin(x)) + abs(cos(x) / exp(sin(x)));
WriteLn('Значение выражения: ', Z : 12 : 6)
End.
