Автор: Пользователь скрыл имя, 30 Мая 2013 в 17:22, практическая работа
C помощью программы вводится база из 15 приборов, из которой потом выбираются нужные пользователю по определённым характеристикам. Составить программу, формирующую списки приборов, выпускаемых заводом в соответствии с заданиями, приведенными в таблице1. При написании программы использовать такие структуры, как файлы, записи и множества. Запись - это структура данных, состоящих из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа.
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:
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(
{вывод характеристик iго прибора}
then
writeln(i,') G=',a[i].g:0:1,' T=',a[i].t1:0:2,'-',a[i].t2:0:
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(
{вывод характеристик iго прибора}
then
writeln(i,') G=',a[i].g:0:1,' T=',a[i].t1:0:2,'-',a[i].t2:0:
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'); {
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) Методические указания РГР по курсу «Алгоритмические языки и программирование». В. П. Шилов.