- •Оглавление
- •§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
- •Решение
Пример 6
Если четырехзначное число, введенное с клавиатуры, является симметричным (например, 1331, 0550), то вывести 1, в противном случае – любое другое число.
Примечание: в переменных a, b, c, d находятся цифры введенного числа, начиная со старшей (разряд тысяч).
Program Example_6;
Var m,a,b,c,d,a1,b1,c1,v,n:integer;
begin
writeln('Введите четырехзначное число:');
readln (m);
a:= m div 1000; {первая цифра}
b:=m mod 1000 div 100;
c:=m mod 100 div 10;
d:=m mod 10; {последняя цифра}
n:=1000*d+100*c+10*b+a;
{переставляем цифры в обратном порядке}
v:=m-n+1;
writeln('Ответ:',v);
readln;
end.
Пример 7
Ввести с клавиатуры 4 целых числа m, n, k, p>0. Если остаток от деления m на n равен k или p, то вывести 1, в противном случае – любое другое число.
Program Example_7;
Var m, n, k, p, a, b, c: integer;
begin
write('Введите 4 целых числа:');
readln(m, n, k, p);
a:=1 div (1+abs(n));
b:=m mod (n+a);
{исключаем деление на ноль}
c:=(b-p)*(b-k)+a+1;
writeln('Ответ:',c);
readln;
end.
Пример 8
Часовая стрелка образует угол α с лучом, проходящим через центр и через точку, соответствующую 12 часам на циферблате, 0≤α<3600. Ввести с клавиатуры значение α и определить значения угла для минутной стрелки, а также количество часов и полных минут.
Примечание: решение задачи основано на использовании следующих фактов: на 3600/12=300 поворачивается часовая стрелка, передвигаясь между двумя соседними цифрами. За это время минутная стрелка проходит целый круг, т.е. 60 минут. Таким образом, пока часовая стрелка поворачивается на 10, минутная проходит 2 минутных деления. Одно же минутное деление соответствует 3600/60=60.
Program Example_8;
Var ha, h, ma, m: integer;
begin
write('Введите угол:');
readln(ha);
h:=(ha div 30);
m:=(ha mod 30)*2;
ma:=m*6;
writeln('количество часов= ',h);
writeln('количество минут= ',m);
writeln('угол минутной стрелки= ',ma);
readln;
end.
Примечание. Переменной целого типа присваивать значение, получаемое в результате выполнения обычной операции деления "/", нельзя, так как при делении одного целого числа на другое целое число результат не всегда является целым числом.
§9. Вещественный тип данных
В Паскале имеется несколько типов вещественных данных.
Вещественные типы |
|||
Тип |
Диапазон возможных значений |
Точность |
Формат |
Real |
2.9E-39..1.7E38 |
11-12з. |
6 байт |
Single |
1.5E-45..3.4E38 |
7-8з. |
4 байта |
Double |
5.0E-324..1.7E308 |
15-16з. |
8 байт |
Extended |
3.4E-4932..1.1E4932 |
19-20з. |
10байт |
Comp |
-9.2E18..9.2E18 |
19-20з. |
8 байт |
Константа действительного типа может быть представлена в двух видах: числом с фиксированной и плавающей точкой.
Число с фиксированной точкой изображается десятичным числом с дробной частью (дробная часть может быть нулевой). Дробная часть отделяется от целой с помощью точки, например: 127.3, 25.0, -16.003, 200.59, 0.54.
Число с плавающей точкой имеет вид mЕр, где m − мантисса, а р − порядок числа. В качестве m могут быть целые числа и действительные числа с фиксированной точкой, в качестве р − только целые числа. Как мантисса, так и порядок могут содержать знаки "+" и "−".
В языке Паскаль имеется много стандартных функций для работы с вещественными числами. Перечислим наиболее часто используемые:
Abs(x) абсолютное значение х
Sqr(х) квадрат х
Sqrt(x) квадратный корень из х
Sin(х) синус х
Cos(х) косинус х
Arctan(х) арктангенс х
Ехр(х) еx
Ln(х) натуральный логарифм х
Trunc(х) целая часть х
Round(х) ближайшее к х целое число
Примечание. В тригонометрических функциях синус и косинус аргумент задается только в радианах.
Выводить данные вещественного типа можно по формату и без него. Если при выводе данных вещественного типа не указан формат, то число выводится с плавающей точкой − мантисса и порядок. На число отводится 17 позиций, при этом в целой части мантиссы присутствует только одна значащая цифра. Изменить стандартную форму вывода можно, используя формат Write(x: m: n), где х − выводимое данное вещественного типа; m − общее количество позиций для вывода числа (включая знак числа, целую часть, точку и дробную часть); n − количество позиций для вывода дробной части. В качестве типа могут быть целые константы, переменные, выражения. Так, использование формата Write(r: 8: 4) для вывода значения r, равного -35,245367, приводит к выводу значения -35.2454.
Пример 1
Даны первый член, разность и число членов арифметической прогрессии. Написать программу вычисления суммы ее членов.
Program Example_9;
Var a1, d, n: integer;
s: real;
Begin
writeln('Введите первый член, разность и
число членов арифм. прогрессии');
readln(a1, d, n);
s:=(2*a1+d*(n-1))*n/2;
writeln('Сумма членов арифметической
прогрессии=', s);
end.
Пример 2
Написать программу вычисления площади треугольника по трем сторонам, пользуясь формулой Герона.
Program Example_10;
Var a, b, c, p, s: real;
begin
Writeln('Введите длины сторон
треугольника');
readln(a, b, c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('Площадь треугольника=',s);
end.
Пример 3
Написать программу нахождения среднего арифметического и среднего геометрического двух чисел.
Program Example_11;
Var a, b, sa, sq: real;
begin
Writeln('Введите два числа');
readln(a,b);
sa:=(a+b)/2;
sq:=sqrt(a*b);
writeln('среднее арифметич.=',sa,'среднее геометрическое=', sq);
end.
Пример 4
Написать программу нахождения площади и гипотенузы прямоугольного треугольника по двум катетам.
Program Example_12;
Var a, b, s, g: real;
begin
Writeln('Введите длины двух катетов');
readln(a,b);
s:=a*b/2;
g:= sqrt(a*a+b*b);
Writeln('площадь=', s,' гипотенуза= ',g);
end.
Пример 5
Написать программу вычисления длин медиан треугольника, заданного длинами сторон.
Program Example_13;
Var a, b, c, m1, m2, m3: real;
begin
Writeln('Введите длины сторон
треугольника');
readln(a, b, c);
m1:=aqrt(2*a*a+2*b*b-c*c)/2;
m2:=sqrt(2*a*a+2*c*c-b*b)/2;
m3:=sqrt(2*b*b+2*c*c-a*a)/2;
Writeln('медианы равны ', m1,
' ', m2,' ', m3);
end.
Пример 6
Смешали V1 литров воды, имеющей температуру Т1 градусов по Цельсию, с V2 литрами воды, имеющей температуру Т2 градусов по Цельсию. Написать программу вычисления температуры и объема полученной смеси.
Program Example_14;
Var v1, t1, v2, t2, v, t: real;
begin
Writeln('Введите значения v1,t1,v2,t2');
readln(v1, t1, v2, t2);
v:=v1+v2;
t:=(v1*t1+v2*t2)/(v1+v2);
Writeln('Объем смеси = ', v,'Температура смеси= ', t);
end.