- •Оглавление
- •§1. Первое знакомство с системой программирования Турбо Паскаль
- •§2. Основные элементы языка
- •§3. Команды редактора Команды управления движением курсора
- •§4. Первая программа
- •Пояснения к программе
- •Запуск программы
- •Сохранение программы
- •§5. Управление позициями и цветом вывода
- •§6. Арифметический квадрат.Абсолютная величина
- •§7. Типы данных
- •§8. Целый тип данных
- •Пример 6
- •Пример 7
- •Пример 8
- •§9. Вещественный тип данных
- •Пример 7
- •Пример 8
- •§10. Логический тип данных
- •§11. Условный оператор
- •Пример 1
- •Пример 2
- •Решение
- •§12. Оператор безусловного перехода. Раздел описания меток
- •§13. Вложенные условные операторы
- •Решение
- •Задание
- •Решение задач Задача 1
- •Задача 8
- •Задача 9
- •Задача 10
- •§14. Цикл с параметром
- •Пример 1
- •Пример 2
- •Пример 3
- •§15. Работа с окнами. Метод пошагового выполнения программ
- •§16. Решение задач с использованием цикла с параметром Задача 1
- •Решение
- •Задача 2.
- •§17. Цикл с предусловием
- •Оператор цикла с предусловием
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •§18. Цикл с постусловием
- •Пример 1
- •Решение
- •Пример 2
- •§19. Алгоритм Евклида
- •§20. Вложенные циклы Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Пример 4
- •Решение
- •Пример 5
- •§21. Решение задач с использованием циклов с условием Задача 1
- •Решение
- •Задача 2
- •§22. Символьный тип данных
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •§23. Ограниченный тип данных
- •Var b:3..8; а не просто Vаг b:Integer;
- •Решение
- •§24. Оператор варианта (выбора)
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Пример 4
- •§25. Перечисляемый тип данных
- •§26. Описание переменных, констант и типов. Раздел описания констант
- •Раздел описания типов
- •§27. Преобразование типов. Совместимость типов
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение.
- •§28. Процедуры
- •Описание процедуры
- •Решение
- •Begin {основная программа}
- •Пример 2
- •Решение
- •Пример 3
- •§29. Функции
- •Пример 1
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •§30. Примеры рекурсивного программирования
- •Задачи с рекурсивной формулировкой
- •Пример 3
- •Задачи, которые можно решить как частный случай обобщенной
- •Задание
- •Задачи, в которых можно использовать характеристику или свойство функции Пример
- •Решение
- •§31. Файловый тип данных Операции для работы с файлами последовательного доступа
- •§32. Обработка файлов Связь переменной файлового типа с файлом на диске
- •Чтение из файла
- •Закрытие файла
- •Признак конца файла
- •Запись в файл
- •§33. Прямой доступ к элементам файла
- •Удаление файлов. Процедура
- •Переименование файлов. Процедура
- •Пример 2
- •§34. Текстовые файлы
- •Обработка текстовых файлов
- •Пример 1
- •Решение
- •Пример 2
- •Нетипизированные файлы
- •§35. Одномерные массивы. Работа с элементами(разбор на примерах) Пример 1
- •Решение
- •Пример 2
- •Решение
- •Пример 3
- •Решение
- •Begin {Считываем очередную строку}
- •§36. Работа с элементами массива (разбор на примерах)
- •Пример 2
- •§37. Методы работы с элементами одномерного массива
- •Создание массива
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •Работа с несколькими массивами Пример
- •Решение
- •§38. Удаление элементов из одномерного массива Пример 1
- •Решение
- •Begin {Сдвиг элементов на один влево}
- •Пример 2
- •Решение
- •§39. Вставка элементов в одномерный массив
- •Вставка нескольких элементов
- •Решение
- •§40. Перестановки элементов массива
- •§41. Двухмерные массивы Описание. Работа с элементами
- •§42. Найти сумму элементов
- •Решение
- •§43.Нахождение количества элементов с данным свойством
- •Пример 1
- •Решение
- •Пример 2
- •Решение
- •§44. Работа с несколькими массивами Пример
- •Решение
- •§45. Определить, отвечает ли заданный массив некоторым требованиям Пример 1
- •Решение
- •Пример 2
- •Решение
- •§46. Изменение значений некоторых элементов, обладающих заданным
- •§47. Заполнение двухмерного массива по правилу
- •Пример 2
- •Решение
- •§48. Вставка и удаление элементов Вставка строки
- •Решение
- •Примечания
- •Удаление строки Пример
- •Решение
- •Примечания
- •§49. Перестановка элементов массива Перестановка двух элементов Пример 1
- •Решение
- •Пример 2
- •§50. Строковый тип данных
- •Операции со строками
- •Склеивание
- •Сравнение
- •Примеры
- •Пример 8
- •Пример 9
- •Пример 10
- •§51. Множественный тип данных
- •Операции над множествами
- •Примеры
- •Сравнение множеств
- •Пример 1
- •Пример 2
- •Вопросы для обсуждения
- •Пример 3
- •Вопросы для обсуждения
- •Пример 4
- •Решение
- •Пример 5
- •Решение
- •§52. Комбинированный тип данных (записи)
- •Пример 1
- •Пример 2
- •Пример 3
- •Решение
§13. Вложенные условные операторы
При решении задач часто приходится рассматривать не два, а большее количество вариантов. Это можно реализовать, используя несколько условных операторов. В этом случае после служебных слов Then и Else записывается новый условный оператор.
Пример
Даны целые числа а, b, с. Если а<b<с, то все числа заменить их квадратами, если а>b>с, то каждое число заменить наименьшим из них, в противном случае сменить знак каждого числа.
Решение
Условие задачи перепишем следующим образом:
а:=а2, b:=b2, c:=c2, если а≤b≤с
а:=с, b:=с, если а>b>с
а:=-а, b:=-b, с:=-с − в остальных случаях.
Program Example_20;
Var a,b,c: Integer;
Begin
Writeln('Введите числа а, b, с');
Readln(a,b,с);
If (a<=b) and (b<=c)
Then Begin
a:=sqr(a); b:=sqr(b); c:=sqr(c)
End
Else If (a>b) and (b>c)
Then Begin a:=c; b:=c End
Else Begin a:=-a; b:=-b; c:=-c End;
Writeln(a:3,b:3,c:3);
Readln
End.
Примечание. Если вложенными условными операторами являются неполные условные операторы (как, например, в задаче, рассмотренной выше), то могут возникать неясности, связанные с установлением границ условных операторов. В таких случаях служебное слово Else относится к ближайшему if.
Задание
В приведенной выше программе изменим условный оператор следующим образом:
If (a<=b) and (b<=c) Then
Begin
a:=sqr(a); b:=sqr(b); c:==sqr(c)
If (a>b) and (b>c) Then
Begin c:=a; b:=a End
Else Begin a:=-a; b:=-b; c:=-c End;
End;
Как изменится выполнение данной программы? Сформулируйте условие задачи, которую теперь решает данная программа.
Решение задач Задача 1
Написать программу, которая определяет, принадлежит ли точка х отрезку [a,b].
Program Example_21;
{определение принадлежности точки заданному
отрезку}
var a,b,x: real;
begin
writeln('Введите значение переменной х');
readln(x);
writeln('Введите значения границ отрезка');
readln(a,b);
if (x<a) or (x>b) then
writeln ('точка не принадлежит отрезку)
else writeln ('точка принадлежит отрезку');
end.
Задача 2
Точка плоскости задана своими координатами (x,y). Написать программу, определяющую, принадлежит ли она окружности радиуса 4 с центром в точке (2,2).
Program Example_22;
Var x, y: real;
begin
writeln('Введите координаты точки');
readln(x,y);
if (x-2)*(x-2)+(y-2)*(y-2)<=16
then writeln('точка принадлежит окружности')
else writeln('точка не принадлежит окружности’)
end.
Задача 3
Написать программу, вычисляющую значение функции y(x) для заданного х.
210, при х≤10,
y(x)= x3 , при x>10.
Program Example_23;
{вычисление значения функции y(x)}
var x,y: real;
begin
writeln('Введите значение x');
readln(x);
if x<=10 then y:=210 else y:=x*x*x;
writeln('y(', x,')=',y);
end.
Задача 4
Написать программу вычисления значения функции y(x) для заданного x.
x2 , при x>5,
y(x)= 17x-1, при –7≤x≤5,
25, при x≤-7
Program Example_24;
{вычислить значение функции};
var x,y: real;
begin
writeln('Введите значение x');
readln(x);
if x>5 then y:=x*x
else if x>-7 then y:=25
else y:=17*x-1;
writeln('y(',x,')=',y);
end.
Задача 5
Написать программу определения наименьшего из трех чисел.
Program Example_25;
{определение наименьшего из трех чисел}
var a,b,c, min: real;
begin
writeln('Введите три числа');
readln(a,b,c);
min:=a;
if b<min then min:=b;
if c<min then min:=c;
writeln('Наименьшее число= ',min);
end.
Задача 6
Даны два числа. Написать программу, которая меньшее из них возводит в квадрат, а большее оставляет без изменения. Если числа равны, то они не должны быть изменены.
Program Example_26;
var a,b,x,y: real;
begin
writeln('Введите два числа');
readln(a,b);
if a=b then begin x:=a; y:=b end;
if a>b then begin x:=b*b; y:=a end
else begin x:=a*a; y:=b end;
writeln(x,' ', y);
end.
Задача 7
Даны три числа x, y, z. Написать программу, в результате выполнения которой числа удвоятся, если x≤y≤z, и будут заменены на их абсолютные величины в противном случае.
Program Example_27;
var x,y,z: real;
begin
writeln('Введите три числа');
readln(x,y,z);
if (x<=y) and (y<=z) then
begin
x:=2*x;
y:=2*y;
z:=2*z
end
else
begin
x:=abs(x);
y:=abs(y);
z:=abs(z);
end;
writeln (x, ' ', y, ' ', z);
end.