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

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

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

> Двумерный список, Проблема обнуления инфы второго списка
QDe5n1K
сообщение 9.12.2004 0:45
Сообщение #1


Новичок
*

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

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


Дело вот в чем:
Я создаю список рейсов, заполняю каждый из них пассажирами и инфой о них... Далее я создаю еще один рейс... Вся инфа о пассажирах, введенная ранее пропадает... sad.gif
Код

type
    Ppass=^reis;
    reis=record
    name,prizn,punkt:string;
    next:ppass;
    end;

    Preis=^allreis;
    allreis=record
    number:ppass;
    name:string[10];
    next:preis;
    end;

.........................
procedure add_reis(var pr:preis);
var number:string;
pp,last,nach:preis;

begin
clrscr;
writeln('Na danniy moment sushestvuyut reisi:');
printallreis(pr);
readln;
repeat
clrscr;
gotoxy(1,1); writeln('Vvedite nomer novogo reisa:');
readln(number);
if (number<>'') then
 begin
new(pp);
pp^.name:=number;
pp^.next := nil;
if pr = nil then pr := pp else last^.next := pp;
last := pp;
end;
until number='';
clrscr;
writeln('Na danniy moment sushestvuyut reisi:');
nach:=pr;
printallreis(pr);
while assigned(pr) do
begin
pr^.number^.next:=nil;
pr:=pr^.next;
end;
pr:=nach;
end;



procedure add_pass(var pr:preis; var test:boolean);
label repet,end1,repet2;
var ppas,pp,nachpass:ppass;
   number,s:string;
   b:boolean;
   i,n:integer;
   nachreis:preis;
begin
repet:
nachreis:=pr;
printallreis(pr);
searchreis(pr,b);                         {эта процедура возвращает уже нажный мне рейс, тот, куда я буду заносить пассажирова}
if not b then
begin
repeat;
warning;
writeln('Takogo reisa net. y - povtorit, n - vihod');
if readkey='y' then begin goto repet; pr:=nachreis; end
              else if readkey='n' then begin textcolor(white); goto end1; end;
until readkey=#1;
end;
begin
pp:=pr^.number;
while pp^.next<> nil do pp:=pp^.next;
new(ppas);
repeat
write('Name: ');
readln(ppas^.name);
until ppas^.name<>'';
repeat
write('Info: ');
readln(ppas^.prizn);
until ppas^.prizn<>'';
repeat
write('Fly to: ');
readln(ppas^.punkt);
until ppas^.punkt<>'';
ppas^.next:=nil;
pp^.next:=ppas;
pp:=pr^.number^.next;
end;
nachpass:=pr^.number^.next;
printpass(pr^.number^.next);
pr^.number^.next:=nachpass;
test:=true;
end1:
pr:=nachreis;
end;


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

Сообщений в этой теме


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

 



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