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

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

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

 
 Ответить  Открыть новую тему 
> Запись, Проблема с поиском
сообщение
Сообщение #1


Гость






program poezda;
uses crt;
type
train=record
nazv:string[20];
nom:string;
time:string;
end;
var
i:byte;
trains:file of train;
rab:train;
flag:boolean;
reis:string[30];
key:0..4;
punn:string;
procedure vvod;
begin
clrscr;
with rab do
begin
write('Название пункта: ');readln(nazv);
if nazv='9999' then exit;
write(' Номер рейса : ');readln(nom);
write('Время отправки ');readln(time);
end;
end;
procedure vivod;
begin
with rab do
begin
reis:=nazv+' '+nom+' '+time;
writeln (nazv:10,nom:15,time:16);
end;
end;
procedure form; {Ввод}
begin
rewrite(trains);
i:=1;
vvod;
while rab.nazv<>'9999' do
begin
write (trains,rab);
i:=i+1;
vvod
end;
close(trains)
end;
procedure print; {Вывод}
begin
reset(trains);
writeln('---------------------------------------------');
writeln('I Пункт I Номер I Время I');
writeln('---------------------------------------------');
while not eof (trains) do
begin
read(trains,rab);
vivod;
end;
writeln('--------------------------------------------');
readkey;
close(trains);
end;
procedure poisk; {поиск}
begin
write('Введите время ');readln(punn);
reset(trains);
writeln('-----------------------------------------------');
writeln(' Пункт I Номер I Время ');
writeln('-----------------------------------------------');
if punn=rab.time then
begin
writeln(' ',rab.nazv, ' ',rab.nom,' ', punn )
end
else
writeln ('Таких поездов нет');
writeln('----------------------------------------------');
readkey;
close(trains)
end;


begin
flag:=false;
assign(trains,'Поезд');
repeat
clrscr;
writeln('Выберите пункт меню: ');
writeln;
writeln('1: сформировать массив ');
writeln('2: вывод массива ');
writeln('3: поиск записи ');
writeln('0: выход ');
readln (key);
case key of
1:form;
2:print;
3:poisk;
0:flag:=true;
end;
until flag;
end.




он ищет только в последней записи в массиве помогите сделать чтобы искал по всему массиву.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Он вообще нигде не ищет. Попробуй запустить Poisk вначале и ты убедишься в этом... Вот правильный вариант:
procedure poisk; {поиск}
var count: integer;
begin
write('Введите время ');readln(punn);
reset(trains);
count := 0;
while not eof(trans) do begin
read(trans, rab);
writeln('-----------------------------------------------');
writeln(' Пункт I Номер I Время ');
writeln('-----------------------------------------------');
if punn=rab.time then begin
inc(count);
writeln(' ',rab.nazv, ' ',rab.nom,' ', punn )
end
end;
if count = 0 then writeln ('Таких поездов нет');
writeln('----------------------------------------------');
readkey;
close(trains)
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






volvo
Спасибо
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






volvo,
подскажи как сделать так чтобы когда сформировываешь массив (вводилось либо конечное число раз "название" "номер" "время", либо организовать выход...)?
И при выводе массива, поезда упорядочивались по какому-нибудь поля, например по номеру поезда?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


сортировка записей,
кстати мне кажется, что лучше не просто выводить в упорядоченном виде, а сразу сортировать после ввода новой записи

Сообщение отредактировано: Renbo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






volvo ???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
мне кажется, что лучше не просто выводить в упорядоченном виде, а сразу сортировать после ввода новой записи
Ну да, ну да... Как же, сразу сортировать... По номеру рейса, например... А потом пользователю понадобится вывести данные отсортированные по времени отправки...

Цитата
как сделать так чтобы когда сформировываешь массив (вводилось либо конечное число раз "название" "номер" "время", либо организовать выход...)

А у тебя в процедуре Form что, не так сделано? Вводишь значения, ввел определенное название пункта - выход... Хотя я бы сделал не
         if  nazv='9999' then exit;
, а вот так:

         if  nazv='' then exit;
(до ввода пустой строки)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






volvo пасиб!
А не мог бы ты мне поподробней объяснить как мне сделать сортировку по определеному полю...
Просто, мне не помогли те ссылки с сортировками и я в них не совсем разобралась...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






volvo плиз подскажи, что означает каждая переменная в программе про поезда??
P.S оч нада.....
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






volvo плиииииииииииииииииииз ответь
 К началу страницы 
+ Ответить 

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

 





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