![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Guest |
![]()
Сообщение
#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.
он ищет только в последней записи в массиве помогите сделать чтобы искал по всему массиву. |
![]() ![]() |
volvo |
![]()
Сообщение
#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;
|
Guest |
![]()
Сообщение
#3
|
Гость ![]() |
volvo
Спасибо |
Guest |
![]()
Сообщение
#4
|
Гость ![]() |
volvo,
подскажи как сделать так чтобы когда сформировываешь массив (вводилось либо конечное число раз "название" "номер" "время", либо организовать выход...)? И при выводе массива, поезда упорядочивались по какому-нибудь поля, например по номеру поезда? |
Renbo |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: ![]() ![]() ![]() |
сортировка записей,
кстати мне кажется, что лучше не просто выводить в упорядоченном виде, а сразу сортировать после ввода новой записи Сообщение отредактировано: Renbo - 14.05.2007 20:48 |
Guest |
![]()
Сообщение
#6
|
Гость ![]() |
volvo ???
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата мне кажется, что лучше не просто выводить в упорядоченном виде, а сразу сортировать после ввода новой записи Ну да, ну да... Как же, сразу сортировать... По номеру рейса, например... А потом пользователю понадобится вывести данные отсортированные по времени отправки...Цитата как сделать так чтобы когда сформировываешь массив (вводилось либо конечное число раз "название" "номер" "время", либо организовать выход...) А у тебя в процедуре Form что, не так сделано? Вводишь значения, ввел определенное название пункта - выход... Хотя я бы сделал не if nazv='9999' then exit;
, а вот так: if nazv='' then exit;
(до ввода пустой строки) |
Guest |
![]()
Сообщение
#8
|
Гость ![]() |
volvo пасиб!
А не мог бы ты мне поподробней объяснить как мне сделать сортировку по определеному полю... Просто, мне не помогли те ссылки с сортировками и я в них не совсем разобралась... |
wazzuupp? |
![]()
Сообщение
#9
|
Гость ![]() |
volvo плиз подскажи, что означает каждая переменная в программе про поезда??
P.S оч нада..... |
Бляндинка |
![]()
Сообщение
#10
|
Гость ![]() |
volvo плиииииииииииииииииииз ответь
|
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 11:20 |