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

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

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

> Задача о товарах, организовать базу данных
Tony_Bil
сообщение 23.06.2007 15:08
Сообщение #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 - 23.06.2007 15:14


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


Гость






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

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

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

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

 



- Текстовая версия 20.07.2025 10:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"