Расчетно-графическая работа по «Алгоритмическим языкам и программированию (Программирование на Паскале)»

Автор: Пользователь скрыл имя, 30 Мая 2013 в 17:22, практическая работа

Описание работы

C помощью программы вводится база из 15 приборов, из которой потом выбираются нужные пользователю по определённым характеристикам. Составить программу, формирующую списки приборов, выпускаемых заводом в соответствии с заданиями, приведенными в таблице1. При написании программы использовать такие структуры, как файлы, записи и множества. Запись - это структура данных, состоящих из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа.

Работа содержит 1 файл

РГР.doc

— 161.50 Кб (Скачать)

     write('От '); readln(a[i].t1); {ввод a[i].t1}

     write('До '); readln(a[i].t2); {ввод a[i].t2}

     write('Вес: '); readln(a[i].p); {ввод a[i].p}

     write('Объём: '); readln(a[i].v); {ввод a[i].v}

     write('Источник  питания: '); readln(a[i].ist); {ввод a[i].ist}

     rwdb(true); {вызов процедуры связывания файла базы данных и рабочего массива даных в режиме записи из массива в файл}

     writeln;

     writeln('Нажмите любую клавишу для перехода в главное меню.');

     readkey;       {чтение кода нажимаемой клавиши}

cancel:end; {конец тела процедуры}

 

procedure opendb; {процедура чтения базы данных}

label cancel; {объявление метки}

begin {тело процедуры}

     writeln('Чтение базы данных.');

     writeln;

     rwdb(false); {вызов процедуры связывания файла базы данных и рабочего массива даных в режиме чтения из файла в массив}

     writeln('Вывод всей таблицы:');

     for i:=1 to 15 do {оператор цикла}

     {вывод  характеристик iго прибора}

     writeln(i,') G=',a[i].g:0:1,' T=',a[i].t1:0:2,'-',a[i].t2:0:2,' P=',a[i].p:0:2,' V=',a[i].v:0:2,' IST=',a[i].ist);

     writeln;

     writeln('Для продолжения нажмите любую клавишу.');

     readkey;

     writeln;

     writeln('Вывод таблицы по первому условию (G=2, 0<=T<=40, P<=20, V<=0.1, батарея):');

     for i:=1 to 15 do {оператор цикла}

     {проверка 1го условия}

     if (a[i].g=2)and(a[i].t1>=0)and(a[i].t2<=40)and(a[i].p<=20)and(a[i].v<=0.1)and(a[i].ist='батарея')

     {вывод  характеристик iго прибора}

     then writeln(i,') G=',a[i].g:0:1,' T=',a[i].t1:0:2,'-',a[i].t2:0:2,' P=',a[i].p:0:2,' V=',a[i].v:0:2,' IST=',a[i].ist);

     writeln;

     writeln('Для продолжения нажмите любую клавишу.');

     readkey;

     writeln;

     writeln('Вывод таблицы по второму условию (G=1.5 или 2, T>40, 10<=P<=30, V=2, батарея и сеть):');

     for i:=1 to 15 do {оператор цикла}

     {проверка 2го условия}

     if ((a[i].g=1.5)or(a[i].g=2))and(a[i].t1>40)and(a[i].p>=10)and(a[i].p<=30)and(a[i].v=2)and(a[i].ist='батарея и сеть')

     {вывод  характеристик iго прибора}

     then writeln(i,') G=',a[i].g:0:1,' T=',a[i].t1:0:2,'-',a[i].t2:0:2,' P=',a[i].p:0:2,' V=',a[i].v:0:2,' IST=',a[i].ist);

     writeln;

     writeln('Нажмите любую клавишу для перехода в главное меню.');

     readkey;       {чтение кода нажимаемой клавиши}

end; {конец тела процедуры}

 

begin {тело основной программы}

     start:clrscr; {очистка экрана}

     writeln('Программа для работы с базой данных приборов.');

     writeln;

     writeln('Выберите пункт меню:');

     writeln('F1 - создать базу данных');

     writeln('F2 - редактировать базу данных');

     writeln('F3 - открыть базу данных');

     writeln('ESC - выход из программы');

     key:=ReadKey; {ввод пункта меню}

     if key=#27 then goto exit;  {если ESC - переход на метку exit}

     clrscr; {очистка экрана}

     assign(db,'devices.db'); {установка связи между файловой переменной db и файлом базы данных devices.db}

     case key of

          #59: createdb; {вызов процедуры создания базы данных}

          #60: editdb; {вызов процедуры редактирования базы данных}

          #61: opendb; {вызов процедуры чтения базы данных}

     end;

     goto start; {переход на метку start}

exit:end. {конец тела основной программы}

 

Результат работы программы

Полный список приборов:

1) G=2.0 T=0.00-40.00 P=20.00 V=0.02 IST=батарея

2) G=1.5 T=50.00-70.00 P=20.00 V=0.20 IST=батарея и сеть

3) G=2.0 T=50.00-70.00 P=20.00 V=2.00 IST=батарея и сеть

4) G=2.0 T=-10.00-40.00 P=20.00 V=0.10 IST=батарея

5) G=2.0 T=0.00-30.00 P=10.00 V=0.50 IST=сеть

6) G=2.0 T=10.00-50.00 P=80.00 V=0.40 IST=сеть

7) G=2.0 T=50.00-60.00 P=25.00 V=2.00 IST=батарея и сеть

8) G=1.5 T=50.00-70.00 P=15.00 V=0.25 IST=батарея

9) G=2.0 T=10.00-30.00 P=10.00 V=0.05 IST=батарея

10) G=1.5 T=20.00-35.00 P=60.00 V=0.60 IST=сеть

11) G=2.0 T=55.00-85.00 P=26.00 V=0.20 IST=батарея и сеть

12) G=1.0 T=-10.00-10.00 P=50.00 V=0.70 IST=батарея

13) G=2.0 T=50.00-65.00 P=22.00 V=2.00 IST=батарея и сеть

14) G=1.0 T=5.00-10.00 P=20.00 V=0.30 IST=батарея

15) G=2.0 T=6.00-36.00 P=60.00 V=1.50 IST=батарея

 

По первому  условию (G=2, 0<=T<=40, P<=20, V<=0.1, батарея):

1) G=2.0 T=0.00-40.00 P=20.00 V=0.02 IST=батарея

9) G=2.0 T=10.00-30.00 P=10.00 V=0.05 IST=батарея

 

По второму  условию (G=1.5 или 2, T>40, 10<=P<=30, V=2, батарея и сеть):

3) G=2.0 T=50.00-70.00 P=20.00 V=2.00 IST=батарея и сеть

7) G=2.0 T=50.00-60.00 P=25.00 V=2.00 IST=батарея и сеть

13) G=2.0 T=50.00-65.00 P=22.00 V=2.00 IST=батарея и сеть

 

Вывод

Программа хорошо справляется со своей задачей, без  ошибок выделяя приборы по заданным значениям характеристик.

 

Использованная  литература

1) Методические указания РГР по курсу «Алгоритмические языки и программирование». В. П. Шилов.


Информация о работе Расчетно-графическая работа по «Алгоритмическим языкам и программированию (Программирование на Паскале)»