![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
QDe5n1K |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Репутация: ![]() ![]() ![]() |
Люди помогите!!! Плз... Задача звучит так:
"ВВодится некоторая последовательность букв русского алфавита и записывается в памяти в виде линейного списка. Определить упорядочена ли последовательность по алфавиту( если нет, то упорядочить), заменить выбранную K-ую букву на Q-ю, поменять местами первую и последнюю буквы... Люди, пожалуйста, подскажите как это делать и приведите примеры кусочков кода (полный мне не нужен, хочу сам разобраться, но для этого нужно небольшое ускорение) Пожалуйста, подскажите что и как... |
![]() ![]() |
Бродяжник |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата данные из файла я считать то считал ...нет, батенька, не считали! Смотрим код:last:=nil;Итак: last:=nil; Сие означает, что мы указатель на "хвост" списка делаем пустым. К чему бы? Ну да ладно. Единственный вопрос, который возникает, это где же у нашего списка "голова"? Впрочем, идем дальше. new(p); - выделяем память под элемент списка. p:=last; - и тут же ее теряем. Ведь, как мы помним, last у нас = nil. А теперь и p тоже nil. read(filex, p^.a); - считываем из файла значения для элемента списка. Куда считываем??? Ведь p у нас nil! last:=p^.next; - это было бы не лишено смысла, если бы опять таки p не было nil. Я бы сделал нечто наподобие следующего: Код procedure open(var p:plist); var filex:text; s:string; iterator:plist; begin {...............} assign(filex,s); reset(filex); new(p); {выделяем память под первый элемент списка} iterator:=p; {ставим указатель на "голову"} while not eof(filex) do begin read(filex,iterator^.a); {считываем очередное значение из файла} if not eof(filex) then {если это значение не последнее} begin {то выделяем память под следующий элемент} new(iterator^.next); iterator := iterator^.next; {сдвигаем указатель} end; end; iterator^.next := nil; {все; дальше элементов нет.} {теперь у нас p указывает на первый, а iterator - на последний элемент} Цитата Сделал, что мог, и пусть, кто может, сделает лучше! |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 11:05 |