Техническое задание на создание автоматизированных систем

Процесс подготовки и решения задач на ЭВМ состоит из нескольких этапов:

  • постановка задачи;
  • разработка математической модели;
  • разработка алгоритма;
  • написание программы;
  • тестирование и отладка.

Основу всей этой работы составляет построение эффективного алгоритма, главными свойствами которого являются детерминированность, массовость, результативность. При разработке программ применяют метод структурного программирования: разделение задачи на относительно независимые части и выполнение отладки этих частей. При этом достигается качество и быстрота разработки программ.

В рамках данной курсовой работы необходимо разработать программу, работающую в четырех режимах: простейшая обработка массива; операции над матрицами; транспонирование матриц; создание файла и сортировка файла данных.

Представленная программа реализована на языке программирования Borland Pascal версии 7.0.

Язык Borland Pascal 7.0 — это один из самых мощных языков для ЭВМ типа IBM PC/AT, работающий в среде операционной системы DOS, сочетающий в себе как мощность низкоуровневых языков программирования, так и структурированность с надежностью, присущих языкам высокого уровня.

Для реализации данного алгоритма был выбран язык программирования — TURBO PASCAL.

Файл с текстом программы (KURSPRO.PAS) имеет размер, равный 8,9Kb. Исполняемый файл (KURS.EXE) имеет размер 26,3Kb.

1.1 Назначение разработки

Тема курсовой работы – решение прикладных задач.

Цель курсовой работы – создать программу, работающую в четырех режимах:

  • простейшая обработка массива;
  • операции над матрицами;
  • транспонирование матриц;
  • обработка файлов данных.

Функциональное назначение программы определяется выбранным режимом.

В рамках курсовой работы необходимо решить следующие задачи:

1. Задать массив, состоящий из nнеотрицательных чисел. Найти в нем индекс элемента, для которого сумма элементов, стоящих до него, наименее отличается от суммы элементов, стоящих после него.

2. Просуммировать элементы матрицы, расположенные на линиях, параллельных главной диагонали.

3. Назовем допустимым преобразованием матрицы перестановку двух строк или двух столбцов. Дана действительная квадратная матрица порядка n. С помощью допустимых преобразований добиться того, чтобы один из элементов матрицы, обладающий наименьшим значением, располагался в левом нижнем углу матрицы.

14 стр., 6945 слов

Автоматизация работы с базами данных

... ЭВМ, метода программирования и от многого другого. Ведь и сами СУБД создаются средствами универсальных ЯП. Целью данной работы является разработка программы средствами Turbo Pascal для автоматизации процесса работы с небольшими ...

4. Вывести и сохранить в файле данные следующей структуры: ФИО водителя, номер и марка автомашины (5-7 марок), дата техосмотра. Организовать просмотр исходных данных и вывести список владельцев и автомашин определенной марки (по запросу), отсортированных по возрастанию номеров (метод пузырька), с указанием номера машины и даты техосмотра. Ввод и вывод данных организовать в виде таблиц. Отладку программы производить на примере файла, состоящего не менее чем из 15 записей.

1.2 Требование к программе

Разработанная программа обеспечит возможность получить адекватный результат при различных допустимых значениях входных данных.

Программный продукт должен быть разработан на языке высокого уровня программирования.

В качестве языка программирования выбран язык Паскаль. Данный язык ориентирован на структурное программирование, имеет различные средства контроля и достаточно прост в изучении. Язык отражает наиболее важные и фундаментальные концепции (идеи) алгоритмов в очевидной и легко воспринимаемой форме, что предоставляет средства, помогающие проектировать программу.

Конкретные реализации языка дают возможность использовать все аппаратные средства ПК. Паскаль позволяет чётко реализовать идеи структурного программирования и структурной организации данных; играет большую роль в развитии методов аналитического доказательства правильности программ, и позволяет реально перейти от методов отладки программ к системам автоматической проверки правильности программ.

Применение языка Паскаль значительно подняло «планку» надёжности разрабатываемых программ за счёт требования к описанию используемых в программе переменных, проверки согласованности программы при компиляции без её выполнения..

Для создания и использования программы необходимы следующие минимальные технические требования: Windows 98, процессор с частотой 1ГГц, видеокарта 32Мб, 256Мб ОЗУ, FDD, 50Мб свободного места на жестком диске, клавиатура, мышь, монитор с разрешением 800х600.

Входными данными для 1-ого режима будут являются размерность одномерного массива (n<=100)и сам одномерный массив.

Выходные данные будут представлены в виде целого числа, равному индексу элемента удовлетворяющего условие.

Входными данными для 2-ого режима будут являться размерность двумерного массива (n<=10) исам двумерный массив (размерности n×n).Выходные данные будут представлены в виде вещественного числа, равного сумме элементов, находящихся на линиях параллельной главной диагонали матрицы.

Входными данными для 3-его режима будут являться размерность двумерного массива (n<=10)и сам массив (размерности n×n).

Выходные данные будут представлены в виде двумерного массива, полученного с помощью допустимых преобразований, в котором минимальный элемент будет расположен в левом нижнем углу.

Входные данные для 4-его режима будут представлены в виде таблицы, содержащей сведения о водителях. Таблица состоит из таких полей как: «№», «ФИО», «Номер авто», «Марка», «Дата техосмотра». Выходные данные будут представлять список сведений о водителях, с указанием ФИО, номера авто, марки, даты техосмотра, отсортированный по возрастаниюпо полю «Марка» методом пузырька.

1.3 Стадии этапы разработки

Курсовая работа должна быть выполнена в несколько этапов в соответствии с графиком:

1 неделя — постановка задачи;

2 неделя — разработка технического задания;

12 стр., 5932 слов

Программы освоения Луны

... программы Apollo, LEAM (Lunar Ejecta and Meteorites, Лунные выбросы и метеориты). "Астронавты Apollo 17 установили оборудование LEAM на Луне ... лунную пыль в полезные материалы. Аналогичным образом ... недель ночи, начинается странная буря. В следующий раз, когда вы будете смотреть на Луну, ... изучение возможности добычи кислорода "на месте", решение ... фотоснимков. Это терабайты данных, которые отныне стали ...

3 неделя — составление эскизного проекта;

4 — 5 недели — техническое проектирование;

4 — алгоритмизация задачи;

5 — разработка структуры программы, входных и выходных данных;

6 — 13 недели — рабочее проектирование;

6 — 8 — программирование задачи;

9 — 12 — отладка программы;

13 — испытание программы;

14 неделя — разработка программной документации;

15 неделя — оформление пояснительной записки;

16 неделя — защита курсовой работы.

2.1 Функциональное назначение

Программа, разработанная в рамках курсовой работы, позволяет осуществлять простейшую обработку массивов, выполнять операции над матрицами, выполнять операцию транспонирования матриц, создать и обрабатывать файлы данных.

Эта программа предусматривает работу в четырех режимах.

В рамках 1 режима выводится индекс элемента,для которого сумма элементов, стоящих до него, наименее отличается от суммы элементов, стоящих после него.

В рамках 2 режима выводится сумма элементов, расположенных на линиях параллельных главной диагонали квадратичной матрицы.

В рамках 3 режима формируется матрица, полученная при помощи допустимых преобразований (перестановкой двух строк или двух столбцов), в которой минимальный элемент расположен в левом нижнем углу.

В рамках 4 режима можно записать данные в файл и на их основе получить список водителей, с ФИО, с номерами автомобилей и датой техосмотра, с заданным пользователем маркой автомобиля, который отсортирован по возрастанию по критерию «номер авто» методом пузырька.

Для программы существуют функциональные ограничения:

  • в 1-ом режиме размерность массива должна быть <=100;
  • во 2-ом режиме размерность массива должна быть <=10;
  • в 3-ем режиме размерность массива должна быть <=10;
  • в 4-ом режиме количество водителей должно быть <=17;

2.2 Описание логической структуры

Основная программа работает в трех режимах. Схема основной программы представлена на рисунке 1.

 описание логической структуры 1

Рисунок 1 – Схема основной программы

В 1 режиме выводится индекс элемента,для которого сумма элементов, стоящих до него, наименее отличается от суммы элементов, стоящих после него. Схема подпрограммы представлена на рисунке 2.

 описание логической структуры 2

Рисунок 2 – Схема подпрограммы (rezh1)

 описание логической структуры 3

Продолжение рисунка 2

Во 2 режиме выводится сумма элементов, расположенных на линиях параллельных главной диагонали квадратичной матрицы.

Схема подпрограммы представлена на рисунке 3.

 описание логической структуры 4

Рисунок 3 – Схема подпрограммы (rezh2)

 описание логической структуры 5

24 стр., 11836 слов

Программный комплекс моделирования релейно-контактных схем

... использовать различные стандарты элементов схемы. Полная поддержка SPICE-моделей позволяет применять проекты из других программ (DesignLab, OrCAD, ... устройств (например, фидеров контактной сети) цифровые защиты, но даже они интегрируются в релейные схемы для надежности, поэтому ... на постоянном токе определяется рабочая точка схемы в установившемся режиме работы. Результаты этого анализа не отражаются ...

Продолжение рисунка 3

В 3-ем режиме формируется матрица, полученная при помощи допустимых преобразований (перестановкой двух строк или двух столбцов), в которой минимальный элемент расположен в левом нижнем углу.

Схема подпрограммы представлена на рисунке 4.

 описание логической структуры 6

Рисунок 4 – Схема подпрограммы (rezh3)

 описание логической структуры 7

Продолжение рисунка 4(1)

 описание логической структуры 8

Продолжение рисунка 4(2)

В 4 режиме необходимо организовать ввод данных, записать их в файл, вывести данные в виде таблицы и обработать их,используя такие стандартные операции, как сортировка и выборка данных. В результате будет получен список, отсортированный по возрастанию по данному полю методом пузырька. Условие выборки задается пользователем. Схема подпрограммы представлена на рисунке 5.

 описание логической структуры 9

Рисунок 5 – Схема подпрограммы, осуществляющей обработку файлов данных (rejim4)

 описание логической структуры 10

Продолжение рисунка 5(1)

 описание логической структуры 11

Продолжение рисунка 5(2)

 описание логической структуры 12

Продолжение рисунка 5(3)

Текст основной программы приведен в приложении 1.

2.3 Входные и выходные данные

Определим для каждой из подпрограмм входные и выходные данные.

Входными данными для 1-ого режима являются размерность одномерного массива (n<=100)и сам одномерный массив.

Выходные данные будут представлены в виде целого числа, равному индексу элемента удовлетворяющего условие.

Входными данными для 2-ого режима являются размерность двумерного массива (n<=10) исам двумерный массив (размерности n×n).Выходные данные будут представлены в виде вещественного числа, равного сумме элементов, находящихся на линиях параллельной главной диагонали матрицы.

Входными данными для 3-его режима являются размерность двумерного массива (n<=10)и сам массив (размерности n×n).

Выходные данные будут представлены в виде двумерного массива, полученного с помощью допустимых преобразований, в котором минимальный элемент будет расположен в левом нижнем углу.

Входные данные для 4 – его режима представлены в виде таблицы, содержащей сведения о водителях. Таблица состоит из таких полей как: «№», «ФИО», «Номер авто», «Марка», «Дата техосмотра». Выходные данные будут представлять список сведений о водителях, с указанием ФИО, номера авто, марки, даты техосмотра, отсортированный по возрастаниюпо полю «Марка» методом пузырька.

14 стр., 6887 слов

Программы системы 1С: Предприятие. Администрирование в программах ...

... данные за прошлые отчетные периоды установка запрета на редактирование печатных форм документов "запирание" системы пользователем при временном прекращении работы. 1С: Зарплата и Кадры 7.7 (Компонента «Расчет») Программа "1С: ... бюджетных организаций. Дополнительные возможности системы Разнообразные возможности настройки конфигурации Работа с распределенными информационными базами Администрирование, ...

3.1 Назначение программы

Разработанная программа позволяет проводить различные операции над массивами и обрабатывать файлы данных.

Основная программа работает в 4-х режимах.

В рамках 2-ого режима выводится сумма элементов, расположенных на линиях параллельных главной диагонали квадратичной матрицы.

В рамках 3-его режима формируется матрица, полученная при помощи допустимых преобразований (перестановкой двух строк или двух столбцов), в которой минимальный элемент расположен в левом нижнем углу.

В рамках 4-ого режима можно записать данные в файл и на их основе получить список водителей, с ФИО, с номерами автомобилей и датой техосмотра, с заданным пользователем маркой автомобиля, который отсортирован по возрастанию по критерию «номер авто» методом пузырька.

3.2 Выполнение программы

Для запуска основной программы необходимо запустить файл KURSPRO.exe. После запуска программы появится окно, содержащее запрос на выбор одного из четырех режимов (рисунок 6).

 выполнение программы 1

Рисунок 6 –Пункты главного меню основной программы

Для простейшей обработки массива необходимо выбрать 1-ый режим (рисунок 7).

 выполнение программы 2

Рисунок 7. Выбор 1-го режима.

После выбора 1-го режима появится окно (рисунок 8), в котором необходимо ввести размерность одномерного массива.

 выполнение программы 3

Рисунок 8. Режим 1.

После ввода размерности необходимо ввести элементы массива (рисунок 9).

 выполнение программы 4

Рисунок 9. Ввод элементов массива.

После завершения ввода элементов массива программа выдает результат (Рисунок 10).

 выполнение программы 5

Рисунок 10. Вывод результата.

Для возврата в главное меню программы необходимо нажать клавишу «Enter». Аналогичным образом выбирается 2-ой режим. Появится окно, представленное на рисунке 11.

Рисунок вывод результата  1

Рисунок 11. Стартовое окно режима 2.

После ввода размерности квадратичной матрицы необходимоввести ее элементы (Рисунок 12).

Рисунок вывод результата  2

По окончании ввода элементов матрицы нужно нажать клавишу «Enter»для вывода результата (Рисунок 13).

Рисунок вывод результата  3

После возврата в главное меню и выбора режима 3 появится окно, аналогичное стартовому окну режима 2 (Рисунок 11).

9 стр., 4221 слов

Рисунок этажное сопряжения балки компоновка балочной клетки

Второй вариант. Усложненный тип балочной клетки. Рисунок 3 – Схема балочной клетки (усложненный вариант) Принимаем шаг вспомогательных балок, а значит и пролет балок настила ... прогибов по формулам: ;. Предельный относительный прогиб для балок настила и вспомогательных принимается . Расчет швов прикрепления настила Сварка ручная электродная Э42 Определяем силу растягивающую кровлю: = кн/см ...

Ввод размерности и элементов осуществляется также как и в режиме 2. После завершения ввода элементов программа выдает результат (Рисунок 14).

Рисунок вывод результата  4

Рисунок 14. Результат выполнения режима 3.

Для выхода из программы в главном меню необходимо ввести «0»

(Рисунок 15).

Рисунок вывод результата  5

Рисунок 15. Выход из программы.

3.3 Описание контрольного примера

В качестве контрольного примера рассмотрим принцип работы режима 4. Для запуска программы необходимо загрузить файл KURSPRO.exe. Появится окно с главным меню основной программы, в котором выберем режим 4 (рисунок 15).

 описание контрольного примера 1

Рисунок 16. Выбор режима 4.

После выбора появится окно, в котором предлагается ввести число водителей (Рисунок 17).

 описание контрольного примера 2

Рисунок 17. Ввод числа водителей.

Далее появляется окно в котором необходимо заполнитьтаблицу (Рисунок 18).

 описание контрольного примера 3

Рисунок 18. Таблица ввода данных о водителях.

После заполнения всей полей 1-ой строки появляется новая строка таблицы, и т.д. (Рисунок 19), количество строк будет равно введенному количеству водителей (Рисунок 20).

 описание контрольного примера 4

Рисунок 19. Таблица ввода данных о водителях.

 описание контрольного примера 5

Рисунок 20. Таблица ввода данных о водителях.

После завершения ввода данных о водителях предлагается ввести марку автомобиля, по которой будет выполняться сортировка по номеру автомобиля (Рисунок 21).

 описание контрольного примера 6

Рисунок 21. Ввод марки автомобиля.

После нажатия клавиши «Enter»программа выдаст список автомобилей выбранной марки отсортированных по возрастанию номеров автомобилей (Рисунок 22).

 описание контрольного примера 7

Рисунок 22. Вывод результата режима 4.

Для перехода в основное меню необходимо нажать клавишу «Enter».

В рамках данной курсовой работы представил программу, работающую в 4 режимах. Эту программу можно использовать для простейшей обработки массива, выполнения различных операций над матрицами, обработки файлов данных.

13 стр., 6363 слов

Расчет и принцип работы распылительной сушилки

... типа БКГ2, предназначенных для беспламенного сжигания газообразного топлива. 4. Расчет габаритов распылительной сушилки Целью расчета является определение диаметра сушильной камеры и ее рабочего объема. ... сгорания при различных температурах строим график зависимости температура - энтальпия (Рисунок 1). Рисунок 1 - График зависимости энтальпии продуктов сгорания от температуры 2. Материальный ...

Так, первый режим позволяет получить индекс элемента,для которого сумма элементов, стоящих до него, наименее отличается от суммы элементов, стоящих после него.

Второй режим позволяет сумму элементов, расположенных на линиях параллельных главной диагонали квадратичной матрицы.

Третий режим позволяет получить матрицу, полученную при помощи допустимых преобразований (перестановкой двух строк или двух столбцов), в которой минимальный элемент расположен в левом нижнем углу.

Четвертый режим предусматривает создание файла данных, а также модификацию и обработку данных. В рамках этого же режима можно осуществить выборку данных и их сортировку по возрастанию.

Выполнение курсовой работы способствовало закреплению, углублению и обобщению знаний, полученных мною за время обучения. Я приобрел опыт проектирования и разработки программ, усвоил конкретные методы и технологии программирования.

В рамках курсовой работы я составил техническое задание в соответствии с существующими государственными стандартами. А также предоставил пользователю инструкцию по эксплуатации программы, а принцип ее действия показал на конкретном примере.

1. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

2. ГОСТ 19.102-77. ЕСПД. Стадии разработки.

3. ГОСТ 34.602-89. ЕСПД. Информационная технология. Техническое задание на создание автоматизированных систем.

4. ГОСТ 19.402-78. ЕСПД. Описание программы.

5. ГОСТ 19.509-79. ЕСПД. Руководство программиста.

6. ГОСТ 19.505-79. ЕСПД. Руководство оператора.

7. Моргун А. Н. Программирование на языке Паскаль (Pascal).

Основы обработки структур данных, Москва: «Диалектика», 2005.

8. Алексеев Е.Р., Чеснокова О.В. Турбо Паскаль 7.0, Москва: NTpress, 2007.

9. Попов В.Б. Turbo Pascal для школьников, Москва: «Финансы и статистика», 2002г.

10. Меняев М.Ф. Информатика, Москва: Омега-Л, 2003г.

11. Фаронов В.В. Turbo Pascal 7.0. начальный курс, Москва: Нолидж, 2001г.

Приложение 1.

program kurspro;

  • uses crt;
  • var w:integer;
  • procedure rezh1;
  • const lim=100;
  • var b:array [1..lim] of real;
  • n,q,z,x,i,ind,k,l:integer;
  • min,s,p,v:real;

begin

clrscr;

  • writeln(‘Режим 1’);
  • writeln;
  • writeln(‘Введите размерность массива, n:’);
  • writeln;
  • read(n);
  • writeln;
  • writeln(‘Введите элементы массива (только неотрицательные элементы):’);
  • writeln;

{Ввод элементов массива}

gotoXY(whereX+7,whereY);

  • q:=whereX;
  • z:=whereY;
  • x:=1;

for i:=1 to n do

begin

if i=10 then

begin

z:=z+2;

  • x:=1;
  • end;
  • gotoXY(q*x,z);
  • read(b[i]);
  • x:=x+1;
  • end;
  • writeln;
  • min:=32000;

for i:=2 to n do

begin

s:=0;

  • p:=0;

for k:=i-1 downto 1 do

12 стр., 5757 слов

Комбинаторные конструкции

... при решении задач полезным оказывается умение для каждой из комбинаторных конфигураций выполнять следующие операции: по имеющейся конфигурации получать следующую ... ,1,flag) until flag or (k=n); if flag then print(k) else writeln (' no solution '); Очевидно также, что в основной программе запрос ... if ((j shr (k-1))and 1)=1 then write(a[k]:4); writeln end end; procedure subsets var q , j : longint ; ...

p:=p+b[k];

for l:=i+1 to n do

s:=s+b[l];

  • v:=abs(s-p);
  • if v<min then

begin

min:=v;

  • ind:=i;
  • end;
  • end;
  • writeln(‘Индекс элемента, удовлетворяющего условие: ‘,ind);
  • writeln;
  • writeln(‘Для возврата в главноe меню нажмите «ENTER» ‘);
  • readln;

readln

end;

  • procedure rezh2;
  • const lim=10;
  • var a:array [1..lim, 1..lim] of real;
  • q,z,i,j,n:integer;
  • s,p:real;

begin

clrscr;

  • writeln(‘Режим 2’);
  • writeln;
  • writeln(‘Введите размерность квадратичной матрицы, n: ‘);
  • readln(n);
  • writeln(‘Введите элементы матрицы (размерности ‘,n,’x’,n,’): ‘);
  • gotoXY(wherex+10,whereY);
  • q:=whereX;
  • z:=whereY;

for i:=1 to n do begin

for j:=1 to n do begin

gotoXY(q*j,z+i*2);

  • read(a[i,j]);
  • s:=s+a[i,j];

if i=j then

p:=p+a[i,j];

  • end;
  • end;
  • writeln;
  • writeln;
  • writeln(‘Суммаэлементовравна:’,s-p:5:2);
  • writeln;
  • writeln(‘Для возврата в главноe меню нажмите «ENTER» ‘);
  • writeln;
  • writeln;
  • readln;
  • readln;
  • end;
  • procedure rezh3;
  • const lim=10;
  • var a:array [1..lim,1..lim] of real;
  • n,i,j,x,y,k,l:integer;
  • min,c:real;

begin

clrscr;

  • writeln(‘Режим 3’);
  • writeln;
  • min:=32000;
  • writeln(‘Введите размерность квадратичной матрицы, n: ‘);
  • read(n);
  • writeln;

{Vvod elementov matrici}

writeln(‘Введитеэлементыматрицы (размерности ‘,n,’x’,n,’) :’);

  • gotoXY(whereX+10,whereY);
  • x:=whereX;
  • y:=whereY;

for i:=1 to n do

for j:=1 to n do

begin

gotoXY(x*j,i*2+y);

  • read(a[i,j]);
  • if a[i,j]<min

then

begin

min:=a[i,j];

  • k:=i;
  • l:=j;
  • end;
  • end;
  • writeln;
  • if k<n then

begin

for j:=1 to n do

begin

{smena strok}

c:=a[k,j];

  • a[k,j]:=a[n,j];
  • a[n,j]:=c;
  • end;
  • end;
  • if l>1 then

begin

for i:=1 to n do

begin

{smena stolbcov}

c:=a[i,l];

  • a[i,l]:=a[i,1];
  • a[i,1]:=c;
  • end;
  • end;

{Vivod konechnoj matrici}

writeln;

  • writeln(‘Конечнаяматрица:’);
  • gotoXY(whereX+10,whereY);
  • x:=whereX;
  • y:=whereY;

for i:=1 to n do

begin

if y+i*2<=25 then

begin

for j:=1 to n do

begin

gotoxy(x*j,y+i*2);

  • write(a[i,j]:3:2);
  • end;

end

13 стр., 6223 слов

Барабанный смеситель

... к выходному открытому концу. Рисунок 1.3- Бетоносмеситель непрерывного действия 1.3 Смеситель роторный Смеситель роторный для смешивания компонентов бетонной смеси с объемом готового замеса 330 ... лопасти 20- три неподвижных скребка 21-электродвигатель 22-пневмоцилиндр 1.5 Смеситель планетарно-роторный. Смеситель планетарно-роторный, показанный на рисунке 1.6, предназначен для приготовления бетонной ...

else

begin

writeln;

for j:=1 to n do

begin

gotoxy(x*j,25);

  • write(a[i,j]:3:2);
  • end;
  • end;
  • writeln;
  • end;
  • writeln;
  • writeln(‘Для возврата в главноe меню нажмите «ENTER» ‘);
  • readln;

readln

end;

  • procedure rezh4;

type vod=record

num:integer;

  • fi,mark,date:string;
  • end;
  • var avto: array [1..17] of vod;
  • box:vod;
  • kol,i,x,y,kof,kl,ch:integer;
  • vma:string;
  • zap: file of vod;

begin

clrscr;

  • assign(zap,’zap.txt’);
  • rewrite(zap);
  • writeln(‘Режим 4’);
  • writeln;
  • writeln(‘Введите количество водителей:’);
  • read(kol);
  • clrscr;
  • writeln(‘Введите данные о водителях’);
  • writeln;
  • writeln(‘ ———————————————————————-‘);
  • writeln(‘ | № | ФИО водителя | Номер авто | Марка |Дата техосмотра|’);
  • writeln(‘ ———————————————————————-‘);

{Ввод}

for i:=1 to kol do

begin

if i<10 then

begin

writeln(‘ | ‘,i,’ | | | | |’);

  • writeln(‘ ———————————————————————-‘);
  • x:=whereX;
  • y:=whereY;
  • gotoXY(8,4+i*2);

if i=1 then

readln(avto[i].fi);

  • readln(avto[i].fi);
  • gotoXY(27,4+i*2);
  • readln(avto[i].num);
  • gotoXY(43,4+i*2);
  • readln(avto[i].mark);
  • gotoXY(56,4+i*2);
  • readln(avto[i].date);

end

else

begin

writeln(‘ | ‘,i,’ | | | | |’);

  • writeln(‘ ———————————————————————-‘);
  • x:=whereX;
  • y:=whereY;
  • gotoXY(8,5+9*2);
  • readln(avto[i].fi);
  • gotoXY(27,5+9*2);
  • readln(avto[i].num);
  • gotoXY(43,5+9*2);
  • readln(avto[i].mark);
  • gotoXY(56,5+9*2);
  • readln(avto[i].date);
  • end;
  • write(zap,avto[i]);
  • gotoXY(x,y);
  • end;
  • close(zap);
  • assign(zap,’zap.txt’);
  • reset(zap);
  • writeln(‘Введите марку, по которой необходимо выполнить сортировку’);
  • read(vma);

{Отсев ненужных марок}

kof:=1;

  • ch:=0;

for i:=1 to kol do

begin

read(zap,avto[i]);

  • if avto[i].mark=vma then

begin

avto[kof]:=avto[i];

  • kof:=kof+1;
  • ch:=ch+1;
  • end;
  • end;

{Сортировка}

repeat

kl:=0;

for i:=1 to ch-1 do

begin

if avto[i].num>avto[i+1].num then

begin

box:=avto[i+1];

  • avto[i+1]:=avto[i];
  • avto[i]:=box;

kl:=1

end;

  • end;
  • until kl=0;

{Вывод}

clrscr;

  • writeln(‘Отсортированный список:’);
  • writeln;
  • writeln(‘ ———————————————————————-‘);
  • writeln(‘ | № | ФИО водителя | Номер авто | Марка |Дата техосмотра|’);
  • writeln(‘ ———————————————————————-‘);

for i:=1 to ch do

begin

if i<10 then

begin

writeln(‘ | ‘,i,’ | | | | |’);

  • writeln(‘ ———————————————————————-‘);
  • x:=whereX;
  • y:=whereY;
  • gotoXY(8,4+i*2);
  • writeln(avto[i].fi);
  • gotoXY(27,4+i*2);
  • writeln(avto[i].num);
  • gotoXY(43,4+i*2);
  • writeln(avto[i].mark);
  • gotoXY(56,4+i*2);
  • writeln(avto[i].date);

end

else

begin

writeln(‘ | ‘,i,’ | | | | |’);

  • writeln(‘ ———————————————————————-‘);
  • x:=whereX;
  • y:=whereY;
  • gotoXY(8,5+9*2);
  • writeln(avto[i].fi);
  • gotoXY(27,5+9*2);
  • writeln(avto[i].num);
  • gotoXY(43,5+9*2);
  • writeln(avto[i].mark);
  • gotoXY(56,5+9*2);
  • writeln(avto[i].date);

if i=11 then

begin

readln;

  • readln;
  • end;
  • end;
  • gotoXY(x,y);
  • end;
  • close(zap);
  • writeln;
  • writeln(‘Длявозвратавглавноe менюнажмите «ENTER»‘);
  • readln;

readln

end;

begin {Основнаяпрограмма}

repeat

clrscr;

  • writeln(‘Главноеменю’);
  • writeln;
  • writeln(‘Для выбора необходимого режима режима введите:’);
  • writeln;
  • writeln(‘»1″ — Простейшая обработка массива’);
  • writeln(‘»2″ — Операции над матрицами’);
  • writeln(‘»3″ — Транспонирование матриц’);
  • writeln(‘»4″ — Обработка файлов данных’);
  • writeln(‘»0″ — Выход из программы’);
  • writeln;
  • read(w);

case w of

1: rezh1;

2: rezh2;

3: rezh3;

4: rezh4;

  • end;
  • until w=0;
  • end.