Составление программы для поиска прямых, параллельных оси X, и вычисления наибольшего расстояния между прямой и осью, страница 3

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 предназначена для поиска наибольшего элемента в                       п    одномерном массиве.

             Исходные данные:

  • Одномерный вещественный массив Vec;
  • Количество элементов в исходном массиве Kol.

 


 

 


            Результаты:

  • Номер в массиве Vec наибольшего элемента 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, расстояние от которых наибольшее *)