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

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

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

> Динамические структуры данных (список), Помогите решить задачу
Kaygour
сообщение 15.12.2005 12:16
Сообщение #1





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

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


Помогите решить задачу по теме «Динамические структуры данных» в паскале.

Задача звучит так:
Составить программу которая переносит в конец непустого списка L его первый элемент.

Я сделал чтобы первый элемент становился последним, а вот как проверить список на наличие того, пустой он или нет, не знаю.
Код

uses crt;
type
ap=^sp;
sp=record
  f,o:string[20];
   i:string[15];
    ss:ap;
end;
var
fio1,fio2,fio3,fio4:ap;
a,f,b:string;
begin
clrscr;
new(fio1);
write('Введите фамилию: ');
  readln(fio1^.f);
   write('Введите имя: ');
    readln(fio2^.i);
     write('Введите отчество: ');
      readln(fio3^.o);
a:=fio3^.o;
begin
fio3^.o:=fio1^.f;
  fio1^.f:=fio2^.i;
   fio2^.i:=a;
writeln('Поле1: ',fio1^.f);
  writeln('Поле2: ',fio2^.i);
   writeln('Поле3: ',fio3^.o);
  readkey;
end.


Прикрепленные файлы
Прикрепленный файл  1.rar ( 364 байт ) Кол-во скачиваний: 113
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Kaygour
сообщение 15.12.2005 20:37
Сообщение #2





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

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


Цитата("volvo")
В поиске смотрел?

Cмотрел. И здесь тоже смотрел.
Мне плохо понятно как списки связываются, эта тема новая для меня. Ну вот на примере этой задачи я хочу объяснить как я понял эту тему и заодно выяснятся мои ошибки. Иначе мне с мертвой точки не сдвинутся. Начну с описания, если где ошибусь поправьте меня.
Да и еще я задачу решил переделать заново.
Код

type
ap=^sp;
sp=record
  dan:string[20];
    ss:ap; {<- я так понял, это поле является указателем на другой список?}
   end;
var
fio1,fio2,fio3:ap;
begin
new(fio1);

Я думаю этот кусок выше правильный.
А дальше для меня самое сложное место для понимания, не понимаю я как эти списки связать. Их наверное надо связывать по полю ss:ap?
Чето типа такого:
Код

fio1^ss:=fio2;
fio2^.ss:=fio3;
fio3^.ss:=nil;

Ну я думаю пока я не пойму этот кусок, продолжать дальше бессмысленно.
Я над этой задачей уже неделю бьюсь и никаких положительных результатов. mega_chok.gif

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

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


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

 



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