- •Программирование на языке Pascal
- •Модуль 1. Введение в язык Pascal
- •Что такое программирование?
- •Листинг 1
- •Листинг 2
- •Среда программирования Turbo Pascal 7
- •Переменные и типы данных
- •Что такое переменная?
- •Типы данных
- •Структура программы на Pascal
- •Листинг 3
- •Раздел деклараций
- •Листинг 4
- •Листинг 5
- •Требования к именам идентификаторов
- •Основная часть программы
- •Математические операции
- •Ввод и вывод значений переменных на экран
- •Ввод значений
- •Вывод значений
- •Практикум: Разработка программы «Конвертер единиц измерения»
- •Практикум: Разработка программы, вычисляющей корни квадратного уравнения
- •Модуль 2. Обработка информации и управление ходом выполнения программы
- •Условный оператор
- •Логические выражения
- •Логический тип данных
- •Вложенный условный оператор
- •Оператор множественного выбора (case)
- •Практикум: Разработка программы, проверяющей возможность существования треугольника с заданными сторонами
- •Практикум: Вывод названия года в старояпонском календаре по номеру года
- •Дополнительный материал к модулю 1 и к модулю 2
- •Подключение дополнительных модулей
- •Пример 1. Модуль CRT - очистка содержимого экрана
- •Пример 2. Модуль CRT – Работа с текстом
- •Позиционирование курсора
- •Изменение цвета текста
- •Пример 3. Модуль DOS - Получение текущей даты и времени
- •Форматированный вывод
- •Целые числа
- •Вещественные числа
- •Генерация псевдослучайных значений
- •Модуль 3. Операторы повторения (циклы)
- •Цикл с параметром
- •Практикум: Вычисление факториала числа
- •Контроль арифметического переполнения
- •Цикл с предусловием
- •Практикум: Программа-screensaver
- •Цикл с постусловием
- •Оператор досрочного прерывания цикла (break)
- •Практикум: управление символом на экране при помощи клавиш управления положения курсором
- •Оператор безусловного перехода к следующей итерации (continue)
- •Модуль 4. Одномерные массивы
- •О выходе значения индекса за допустимый диапазон
- •Типовые задачи, связанные с массивами
- •Ввод и вывод элементов массива
- •Подсчет суммы всех элементов массива
- •Нахождение минимального и максимального элемента в массиве
- •Сортировка элементов массива
- •Об особенностях объявления массивов
- •Пользовательские типы данных
- •Константы
- •Рекомендуемый способ объявления массивов
- •Практикум: Разработка приложения «Змейка»
- •Представление строк в Pascal
- •Операции над строками
- •Практикум: Проверка корректности ввода чисел. Преобразование строки в число
- •Практикум: Подсчет слов в предложении
- •Функции для работы со строками
- •Copy
- •Insert
- •Delete
- •Многомерные массивы
- •Ввод и вывод значений многомерного массива
- •Изменение порядка строк в таблице
- •Модуль 6. Записи и множества
- •Модуль 7. Функции и процедуры
- •Объявление подпрограмм
- •Объявление функций
- •Объявление процедур
- •Вызов подпрограмм
- •Формальные и фактические параметры
- •Локальные и глобальные переменные. Область видимости переменных
- •Рекурсия
- •Передача параметров по значению и по ссылке
- •Передача параметров по значению
- •Передача параметров по ссылке
- •Передача массивов в подпрограммы, открытые массивы
- •Модуль 8. Работа с файлами
- •Связывание файловой переменной с файлом
- •Чтение из файла
- •Проверка существования файла
- •Чтение всего содержимого файла, функция EOF
- •Запись в файл
- •Закрытие файла
- •Текстовые файлы
- •Дозапись в текстовый файл
|
|
|
18 |
Программирование на языке Pascal |
|||
|
ReadLn(cmValue); |
|
|
|
|
||
|
WriteLn(cmValue, ' см–это ',cmValue*0.3937007, |
|
|
|
' дюймов '); |
|
|
|
WriteLn(cmValue, ' см–это ', cmValue*0.0046869, |
|
|
|
' саженей'); |
|
|
|
End. |
|
|
Рисунок 9 |
|
Практикум: Разработка программы, вычисляющей корни квадратного уравнения
Поставим перед собой задачу написать программу, вычисляющей корни квадратного уравнения8. При этом коэффициенты уравнения пользователь должен вводить с клавиатуры после запуска программы.
Напомним, что квадратным уравнением называется уравнения вида:
a x2 b x c 0 , |
(1) |
где a 0,b,c - коэффициенты квадратного уравнения.
Решением этого уравнения являются все такие числа x , при подстановке которых в выражение (1) получается верное равенство.
Из школьного курса известно, что корни квадратного уравнения (а их два) вычисляются по формулам:
|
b |
D |
(2) |
x |
, |
||
1 |
2 a |
|
|
|
|
(3) |
|
|
b |
D |
|
x2 |
, |
2 a
где D называется дискриминантом и вычисляется по формуле:
D b2 4 a c .
Начнем разработку программы с анализа количества необходимых переменных и их типов данных.
8 Читатель, еще не знакомый с квадратными уравнениями, может пропустить этот раздел, либо прочитать и ознакомиться с квадратными уравнениями самостоятельно.
18
|
19 |
Программирование на языке Pascal |
Во-первых, нам потребуются переменные, хранящие значения коэффициентов квадратного уравнения. В общем случае, эти коэффициенты не обязательно будут целыми числами, поэтому вполне логично объявить эти переменные вещественными. Во-вторых, нам необходимо будет хранить где-то вычисленные корни, следовательно, нам придется объявить еще две переменные, также вещественного типа данных.
В-третьих, мы видим, что в формулах (2) и (3) два раза используется значение квадратного коря из дискриминанта. Наверное, нет смысла его дважды вычислять, поэтому его значение мы вычислим один раз и сохраним в своей, также вещественной, переменной. Для вычисления квадратного корня воспользуемся стандартной функцией Pascal: Sqrt.
Подведем итог: всего нам потребуется объявить 6 вещественных переменных. Теперь, написание требуемой программы не составит особого труда.
Листинг 6 |
|
|
|
var |
: Real; |
|
||
|
a, b, c |
|
|
D |
: Real; |
|
x1, x2 |
: Real; |
|
Begin |
|
|
WriteLn('Введите коэффициенты квадратного уравнения: '); |
|
|
ReadLn(a, b, c); |
|
|
D:= Sqrt(b*b-4*a*c); |
|
|
x1:= (-b+D)/(2*a); |
|
|
x2:= (-b-D)/(2*a); |
|
|
WriteLn('Первый корень уравнения=', x1); |
|
|
WriteLn('Второй корень уравнения=', x2); |
|
|
End. |
|
Рисунок 10 |
|
Эта программа будет «вылетать» в случае, если мы введем коэффициенты уравнения, для которого дискриминант будет отрицательным (извлекать квадратный корень из отрицательных чисел мы пока не умеем). Проверять такого рода условия мы научимся в следующей главе при помощи условного оператора.
19