![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Kaygour |
![]() ![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Kaygour Репутация: ![]() ![]() ![]() |
Помогите решить задачу по теме «Динамические структуры данных» в паскале.
Задача звучит так: Составить программу которая переносит в конец непустого списка 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. Прикрепленные файлы ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Kaygour, эта программа не будет работать:
new(fio1); { Допустим, для Fio1 ты выделил память } В поиске смотрел? На списки решено достаточно много заданий, посмотри как организуется работа со списком... |
Kaygour |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Kaygour Репутация: ![]() ![]() ![]() |
Цитата("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; Ну я думаю пока я не пойму этот кусок, продолжать дальше бессмысленно. Я над этой задачей уже неделю бьюсь и никаких положительных результатов. ![]() Сообщение отредактировано: Kaygour - 15.12.2005 20:38 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Стоп...
Объясни мне одну вещь: у тебя fio1, fio2, fio3 это 3 разных списка, или это те данные, которые ты хочешь чтобы они содержались в одном списке? Если список один, то для его поддержки достаточно одного указателя (на первый элемент)... |
Kaygour |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Kaygour Репутация: ![]() ![]() ![]() |
Вообщето мне нужен один список и несколько элементов, чтобы было что переставлять.
А fio1, fio2, fio3, это данные которые вносятся fio1-Фамилия; fio2-Имя; fio3-Отчество; Я понял что нужно так делать, хотя могу и ошибаться. Сообщение отредактировано: Kaygour - 16.12.2005 4:19 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Нет, так как раз делать не нужно... Вот простая программка, иллюстрирующая создание списка и добавление элементов в конец списка:
type |
Kaygour |
![]()
Сообщение
#7
|
![]() Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Kaygour Репутация: ![]() ![]() ![]() |
volvo спасибо тебе огромное!!! Очень хорошо расписал пояснялки к программе .
Прошу прощения за свою тупость, но у меня возникли некоторые вопросы. Что такое object? Во всех книжках которые смотрел, писалось запись record. |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Насчет Object - тебе сначала вот тут бы прочесть:
ООП. Объектно-ориентированное программирование -> Объекты |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:24 |