IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача о товарах, организовать базу данных
сообщение
Сообщение #1


Гость






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

'2': begin
clrscr;
search:
writeln;
writeln('n - search for name');
writeln('m - search for model');
writeln('g - search for giver');
writeln('y - search for year');
writeln('c - search for colour');
writeln('p - search for processor');
writeln('r - search for memory');
writeln('e - exit to main menu');
n:=readkey;
case n of
'n':begin
write('Enter name of one of the goods: ');
readln(a);
for k:=1 to n-1 do
with goods[k] do
if Name=a then
begin
thing;
goto search;
end;{if}
writeln('There is no such thing in data base!');
goto search;
end;{'n':}

'm':begin
write('Enter model of the thing:');
readln(a);
for k:=1 to n-1 do
with goods[k] do
if model=a then
begin
thing;
flag1:=true;
goto next1;
end;{if}
if not flag then writeln('There is no such thing in data base!');
goto search;

next1:
for q:=k+1 to n-1 do
with goods[q] do
if model=a then monitor(q);
goto search;
end;{'m':}
'g':begin
write('Enter giver of one of the goods: ');
readln(a);
for k:=1 to n-1 do
with goods[k] do
if giver=a then
begin
thing;
goto search;
end;{if}
writeln('There is no such thing in data base!');
goto search;
end;{'g':}

'y':begin
write('Enter year of the car: ');
readln(a);
for k:=1 to n-1 do
with goods[k] do
if year=a then
begin
thing;flag2:=true;
goto next;
end;{if}
if not flag then writeln('There is no such car in data base!');
goto search;

next:
for q:=k+1 to n-1 do
with goods[q] do
if year=a then monitor(q);
goto search;
end;{'y':}

'c':begin
write('Enter colour of the car: ');
readln(a);
for k:=1 to n-1 do
with goods[k] do
if colour=a then
begin
thing;
goto search;
end;{if}
writeln('There is no such car in data base!');
goto search;
end;{'c':}

'p':begin
write('Enter type of the processor of the computer: ');
readln(a);
for k:=1 to n-1 do
with goods[k] do
if processor=a then
begin
thing;
goto search;
end;{if}
writeln('There is no such computer in data base!');
goto search;
end;{'p':}

'r':begin
write('Enter type of the memory of the computer: ');
readln(a);
for k:=1 to n-1 do
with goods[k] do
if memory=a then
begin
thing;
goto search;
end;{if}
writeln('There is no such computer in data base!');
goto search;
end;{'r':}

'e':begin
clrscr;
goto start;
end;{'e':}
else
begin
clrscr;
writeln('You pressed wrong key! Try again.');
goto search;
end;{else:}
end;{case n}
end;{'2':}

Сообщение отредактировано: Tony_Bil -


Прикрепленные файлы
Прикрепленный файл  PACTIKA1_2.PAS ( 10.83 килобайт ) Кол-во скачиваний: 160
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Во-первых, для того, чтобы это могло работать, массив goods должен быть заполнен, следовательно, перед выбором пункта №2 требуется выбрать пункт меню №1...

Ну, а второе - зачем же использовать метод Copy+Paste, если возможно решить задание значительно короче (и эффективнее), используя функциональные типы (я в FAQ-е по записям показывал пример, как это сделать)...

Кстати, ты назвал ту запись, которая используется в программе, вариантной? Это не так, она вариантной не является (кстати, с действительно вариантной записью решение будет еще проще)...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.01.2021 15:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name