3. Алгоритмизация
3.1 Разработка схемы алгоритма основной программы
Схема алгоритма основной программы, составленная с учетом требований, изложенных в 2, изображена на рисунке. В схему включены процессы ввода исходных данных, контроля правильности введенного значения N и укрупненные блоки, реализующие процессы поиска прямых, параллельных оси X, и вычисления расстояний между ними ( подпрограмма POISK), выбора наибольшего расстояния (подпрограмма Nmax) и вывод результатов.
3.2 Детализация схемы алгоритма
Детализации требуют пятый и седьмой блоки схемы. Они реализуются с помощью подпрограмм, ввиду относительной простоты которых описание процесса разработки приведено в сокращенном виде.
Блок 5 (подпрограмма POISK).
Подпрограмма POISK предназначена для отыскания в множестве прямых, параллельных оси X, и вычисления расстояний между ними.
Исходные данные:
· Количество заданных прямых N;
· Массив коэффициентов заданных прямых ABC;
Результаты:
· Количество прямых K, параллельных оси X;
· Массив, содержащий номера прямых NomPr, параллельных оси X;
· Массив расстояний R между прямой и осью X.
Тип подпрограммы – подпрограмма-процедура.
Блок 7 (подпрограмма Nmax).
Подпрограмма Nmax предназначена для поиска наибольшего элемента в п одномерном массиве.
Исходные данные:
Результаты:
Тип подпрограммы – подпрограмма-функция целого типа.
4. Программирование и отладка
4.1 Тексты программы и подпрограмм
(* Курсовая работа по Информатике *)
(* Выполнил: студент гр. 6122 Тищенко Е.Г. *)
Program Main_Kursrab;
(* Программа поиска прямых, параллельных оси X, *)
(* и наибольшего расстояния между прямой и осью *)
Uses Crt;
Const
KolPrMax=10; (* Максимальное количество прямых *)
Type
Ind=1..KolPrMax;
FileName=String[10]; (* Тип для имён файлов *)
ArrCoef=Array[Ind, 1..3] of real; (* Тип для массива коэффициентов *)
ArrNom=Array[Ind, 1..5] of integer; (* Тип для массива номеров прямых, параллельных оси X *)
Vector=Array[Ind] of real; (* Тип для массива расстояний *)
Var
(* Входные данные *)
N:integer; (* Количество исходных прямых *)
ABC:ArrCoef; (*Множество троек коэффициентов A, B, C; каждая тройка занимает одну строку *)
E:real;
(* Выходные данные *)
K:integer; (* Счётчик прямых, параллельных оси X *)
NomPr:ArrNom; (* Порядковые (в массиве ABC) прямые, параллельные оси X *)
R:Vector; (* Вектор расстояний между прямой и осью X *)
NomMax:integer; (* Порядковый номер в массиве R модуля наибольшего расстояния между прямой и осью X *)
RMax:real; (* Модуль наибольшего расстояния между прямой и осью *)
imax1,imax2:integer; (* Номера прямых, параллельных оси X, расстояние от которых наибольшее *)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.