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

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

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

> Запись, Проблема с поиском
Guest
сообщение 22.05.2005 13:28
Сообщение #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.




он ищет только в последней записи в массиве помогите сделать чтобы искал по всему массиву.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
volvo
сообщение 22.05.2005 13:32
Сообщение #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
сообщение 22.05.2005 15:00
Сообщение #3


Гость






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


Гость






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


Пионер
**

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

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


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

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


Гость






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


Гость






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

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

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

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


Гость






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


Гость






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


Гость






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

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

 

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