
- •Основы программирования на языке паскаль
- •1. Простейшие программы Структура Паскаль-программы
- •Данные и тип данных
- •Стандартные функции
- •Выражения
- •Организация простейших программ
- •Модуль crt
- •Задания для самостоятельной работы
- •2. Ветвления
- •Задания для самостоятельной работы
- •3. Циклы
- •Оператор цикла с постусловием используется, когда известно условие, при котором цикл будет прекращать свою. Формат оператора:
- •Задания для самостоятельной работы
- •4. Массивы
- •Сортировка
- •Задания для самостоятельной работы
- •5. Строки
- •Задания для самостоятельной работы
- •6. Процедуры и функции
- •Параметры
- •Локальные и глобальные переменные
- •Функции
- •Задания для самостоятельной работы
- •7. Записи
- •Задания для самостоятельной работы
- •8. Множества
- •Операции над множествами
- •Задания для самостоятельной работы
- •9. Файлы
- •Стандартные процедуры и функции для работы с файлами всех типов
- •Стандартные процедуры и функции для работы с типизированными файлами
- •Задания для самостоятельной работы
- •10. Модуль graph
- •Процедуры и функции модуля graph
- •Задания для самостоятельной работы
- •11. Модули, определяемые пользователем
- •Задания для самостоятельной работы
- •12. Линейные однонаправленные списки Указатели
- •Линейные однонаправленные списки
- •Задания для самостоятельной работы
- •13. Двунаправленные списки.
- •Задания для самостоятельной работы
- •14. Кольцевые списки
- •Задания для самостоятельной работы
- •15. Стеки и очереди
- •Задания для самостоятельной работы
- •16. Деревья
- •Задания для самостоятельной работы
- •Простейшие программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- •Бадмаева Энгельсина Сергеевна, Тонхоноева Антонида Антоновна
- •670000, Г. Улан-Удэ, ул. Смолина, 24-а.
Задания для самостоятельной работы
Составить программы, используя для оформления модуль CRT. На экране отобразить два окна: в одном произвести ввод исходных данных, в другом – вывести результаты. Ввод и вывод снабдить пояснениями.
Варианты заданий :
Прямоугольный треугольник задан гипотенузой и одним из катетов. Найти второй катет и площадь треугольника.
Треугольник задан величинами своих углов (в градусах) и радиусом описанной окружности. Найти длины сторон треугольника.
Прямоугольный треугольник задан двумя катетами. Вычислить радиусы вписанной и описанной окружности.
Вычислить длину окружности, площадь круга и объем шара одного и того же заданного радиуса.
Вычислить периметр и площадь прямоугольного треугольника по заданным катетам треугольника.
Вычислить периметр и площадь треугольника по заданным координатам трех его вершин.
Треугольник задан длинами своих сторон. Найти длины его высот.
Треугольник задан длинами своих сторон. Найти длины его медиан.
Треугольник задан длинами своих сторон. Найти длины его биссектрис.
Треугольник задан длинами своих сторон. Найти радиусы описанной и вписанной окружностей треугольника.
По длинам двух сторон треугольника и углу (в градусах) между ними найти длину третьей стороны и площадь этого треугольника.
Найти сумму цифр заданного трехзначного числа.
Определить число, получаемое выписыванием в обратном порядке цифр трехзначного числа.
Идет К-ая секунда суток. Определить, сколько полных часов и полных минут прошло к этому моменту. Например, если К=13231, то прошло 3 часа и 40 минут.
Определить угол в градусах между положением часовой стрелки в начале суток и ее положением в h часов, m минут и s секунд (0 h 11; 0 m, s 59).
2. Ветвления
В разветвляющихся программах последовательность выполнения операторов зависит от некоторого условия или условий. Для организации таких программ используют условный оператор и оператор выбора. Кроме них, возможно использование составного оператора, оператора перехода и пустого оператора. Рассмотрим структуру и назначение условного оператора, оператора перехода и составного оператора.
Составной оператор представляет собой последовательность операторов, заключенную в операторные скобки Begin и End. Его назначение состоит в получении из нескольких операторов одного оператора. Это бывает необходимо для соблюдения синтаксических правил языка.
Условный оператор позволяет выбрать для исполнения один из двух операторов в зависимости от выполнения условия. Он имеет две формы:
If <логическое выражение> Then <оператор> Else <оператор>;
If <логическое выражение> Then <оператор>;
Первая форма называется полной, вторая – неполной. Выполнение: если логическое выражение истинно (имеет значение True), то выполняется оператор, находящийся после Then, иначе (когда выражение ложно, т.е. имеет значение False) – оператор, стоящий после Else (для полной формы), или вообще не выполняется никакого действия (для неполной формы).
Обратите внимание, что в условном операторе в зависимости от условия возможно выполнение только одного оператора! Если необходимо выполнить более одного оператора, то применяют составной оператор.
Логические выражения бывают простыми и сложными. Простое логическое выражение представляет собой либо условие, содержащее два операнда и одну операцию отношения, либо логическую переменную. Сложное выражение состоит из простых выражений и логических операций Not, And, Or. В этом случае значение логического выражения определяется согласно следующим таблицам истинности (L, L1, L2 – некоторые логические выражения):
L |
Not L |
True |
False |
False |
True |
L1 |
L2 |
L1 And L2 |
L1 Or L2 |
True |
True |
True |
True |
True |
False |
False |
True |
False |
True |
False |
True |
False |
False |
False |
False |
Оператор перехода позволяет нарушить естественный порядок выполнения операторов программы и передает управление оператору, помеченному меткой. Не следует увлекаться применением этого оператора, так как это приводит к нарушению понимания логики работы программы. Формат оператора: Goto <метка>; . В качестве метки можно использовать неотрицательное целое число, имеющее не более четырех знаков, или идентификатор. Метки предварительно описываются в разделе объявления меток программы (LABEL).
Пример 2. Даны целые числа. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а иначе – заменить числа нулями.
Program Example_2;
Var Num1, Num2: Integer;
Begin
Write(‘Введи два целых числа:’);
Readln(Num1, Num2); {ввод двух целых чисел}
If Num1<>Num2 Then {если числа не равны}
If Num1>Num2 Then {если первое число больше второго}
Num2:=Num1 {то второму числу даем значение первого}
Else {иначе – первому числу даем значение второго}
Num1:=Num2
Else {если числа равны, то заменяем из нулями}
Begin {применяем составной оператор, так как надо выполнить 2 оператора}
Num1:=0; Num2:=0
End;
Writeln(‘Первое число=’,Num1,’ Второе число=’,Num2) {вывод результатов}
End.
Пример 3. Вычислить кратчайшее расстояние от заданной точки с координатами (X,Y) до границы фигуры (см. рисунок), если:
точка находится вне фигуры (Для точки, находящейся внутри фигуры, выдать соответствующее сообщение.);
точка находится внутри фигуры (Для точки, находящейся вне фигуры, выдать соответствующее сообщение.).
Program Example_3a;
Var X, Y, R, S: Real; {X, Y – координаты точки, R - кратч. расстояние}
Begin
Write(‘Введи координаты точки’);
Readln(X,Y);
S:=X*X+Y*Y; {S – вспомогательная переменная}
If (S>100) And Not ((X>0) And (Y>0)) Then
R:=Sqrt(S)-10 {2, 3, 4 четверти и вне круга с радиусом 10 }
Else
If S<25 Then
R:=5-Sqrt(S) {Внутри окружности с радиусом 5}
Else
If (X>10) Or (Y>10) Then {за пределами квадрата со стороной 10}
If (Y<10) Then
R:=X-10
Else
If X>10 Then
R:=Sqrt(Sqr(X-10)+Sqr(Y-10))
Else
R:=Y-10
Else
R:=0; {для точки внутри фигуры}
If R>0 Then
Writeln(‘Кратчайшее расстояние до фигуры равно ’, R:6:2)
Else
Writeln(‘Точка находится внутри фигуры’)
End.
Program Example_3b;
Label Metka;
Var X, Y, R, S: Real;
Begin
Write(‘Введи координаты точки’);
Readln(X,Y);
S:=X*X+Y*Y;
If (S>=25) And (S<=100) And ((X<0) Or (Y<0)) Then
{В кольце, находящемся. в 2, 3 и 4 четвертях}
If (10-Sqrt(S)) < (Sqrt(S)-5) Then
R:=10-Sqrt(S)
Else
R:= Sqrt(S)-5
Else
If (X>=0) And (Y>=0) And (X<=10) And (Y<=10) And (S>=25) Then
{Остальная часть фигуры}
Begin
If (10-X) < (10-Y) Then
R:=10-X
Else
R:=10-Y;
If (Sqrt (S) - 5) < R Then
R:=Sqrt (S) - 5
End
Else
Begin
Writeln(‘Точка находится вне фигуры’);
Goto Metka
End;
If R=0 Then
Writeln(‘Точка находится на границе фигуры’)
Else
Writeln(‘Кратчайшее расстояние до границы фигуры=’,R:6:2);
Metka: End.