There is no such thing as a stupid question, until you ask it
Еще раз доброго времени суток (но я надеюсь на ночь)!
У этот раз передо мной стоит задача с указателями. Итак, надо: ввести последовательность символов, вывести их в обратном порядке и после каждого элемента A добавить элемент #. Честно, тему динамической памяти знаю хуже, чем другие, так что мучаюсь над ней больше :/
Итак, первый мой вопрос: тут надо использовать стек, так? В него ведь записываются элементы сразу в обратном порядке.
Далее. Я придумала такую вот структуру программы (пока в сыром виде, извините за оформление!):

Я хотя бы думаю в верном направлении? :upset:

UPD. Ну, я все же решила действовать в заданном направлении.
Итак, у меня получилось это (сыро, опять извиняюсь за оформление):

Собственно, если насчет тела проги я еще уверена, то в процедуре с функцией я плаваю. Например, компилятору не нравится, как я функцию объявляю false в начале. Интересно, чем?

@темы: Delphi

Комментарии
18.01.2013 в 00:37

Я знаю, что я гений, но мне от этого ничуть не легче.
Без относительно к Delphi, но зачем так сложно?
имхо, нужно, всего лишь, прочитать ввод с клавиатуры в строку (массив символов и как там оно), узнать длину (или как-то ещё спозиционироваться на конец строки), запустить цикл в обратном направлении (т.е. начальное значение - конец, итерация на -1), каждый символ пишем на экран, если этот символ А, добавляем на экран #...
Разве не так?
18.01.2013 в 00:38

There is no such thing as a stupid question, until you ask it
mikluho, если бы) Мне нужно обязательно использовать списки.
18.01.2013 в 06:39

слеп
как же убог этот делфи... почему его ещё используют я не понимаю, даже для обучения есть лучшие языки программирования

в функции, разве не нужно использовать псевдопеременную result? и я конечно не помню, но может можно предустановить функцию в false примерно так:
function aornot(var data:char): boolean = false;
18.01.2013 в 06:48

There is no such thing as a stupid question, until you ask it
как же убог этот делфи...
Как он меня бесит... Все компиляторы ведут себя как пьяные, особенно турбо. Но сказали прогать в нем - значит, надо :C

псевдопеременную result
Эта та, что присваивает значение функции типа boolean и которую не надо объявлять?
18.01.2013 в 08:33

Птичка шизокрылая, Борец С Режимом Дня
GippoRex, есть сам дельфи с его консоль аппом, есть Pascal ABC, вам для ваших задач хватит.

Дельфи ругать модно, ну вперед. Пьяные компиляторы, ага. Не хочу больше помогать.
18.01.2013 в 09:49

слеп
Дельфи ругать модно, ну вперед. Пьяные компиляторы, ага. Не хочу больше помогать.
Модно? не знаю, он всегда был убог, я не ругал лишь потому что это был язык лучше чем бесик, с которого можно начинать изучать программирование (имеется в виду pascal), а сейчас есть python, почему бы на нём не обучать основам программирования, он многим проще, приучает людей к аккуратности в коде, к систематизации, единственное за что сейчас можно любить delphi это за быструю компиляцию, он всегда это делал быстро, сейчас же это устаревший язык, да на нём ногие ещё кодят, да на нём всё ещё можно много чего сделать, но всё же это унылый язык программирования

GippoRex, есть сам дельфи с его консоль аппом, есть Pascal ABC, вам для ваших задач хватит.
согласен, если вам без разницы на каком языке программировать из семейства, то используйте Pascal ABC

Эта та, что присваивает значение функции типа boolean и которую не надо объявлять?
толком не помню, но по моему это и есть ваша функция, что то вроде указателя... точнее сейчас не скажу (слишком давно я кодил на делфи), но обращаясь к ней вы обращаетесь к переменной функции
18.01.2013 в 12:08

Я знаю, что я гений, но мне от этого ничуть не легче.
GippoRex, по сути, массив, строка - это всё виды списков. В любом случае есть указатель на начало и длина, доступ к элементу осуществляется по указателю на начало плюс смещение...
Судя по апдейту, задача стоит в использовании связанных списков...
Для понятности кода, лучше вместо first использовать last, ведь каждый новый созданный элемент стэка всегда является последним ( и да, next в нём совсем не нужен, если не требуется возможность прохода по стэку с начала).
последний цикл должен выглядеть как-то так:

18.01.2013 в 14:27

There is no such thing as a stupid question, until you ask it
Neitent, Дельфи ругать модно, ну вперед. Пьяные компиляторы, ага.
Ну, не могу судить о самой среде в силу своего профанства, но компиляторы - это риалли ужас. Тестила 3 разные штуки - и все они крашились с периодичностью в 15-25 минут. И это при том, что я не особо жалуюсь на кривизну рук. Но просто победитель в этой сомнительной дисциплине - это Турбо. Ооо, как я его ненавижу. Он крашится при запуске, крашится при выходе, крашится при выполнении программы, крашится во время режима отладки, крашится при сохранении программы (sic!), крашится прям посредине написания программы... Это происходит настолько часто, что у меня нет других слов, кроме как "Турбо, ты пьян! Иди домой". И это не только у меня подобное зверство. У 80% группы аналогичные проблемы. Я уже не говорю про машины, на которых мы работаем на семинарах... И это с учетом того, что там почти только этот турбо и стоит! Самое печальное, что нас заставляют работать именно в нем, так что я молча ненавижу.

Не хочу больше помогать.
Что же, воля ваша. Однако я все равно еще раз поблагодарю за всю вашу оказанную помощь! И приношу свои извинения, если мое невежество каким-либо образом вас обидело :C
Pascal ABC
Знаем, пробовали. Тащемта, я в нем основной костяк программы и проверяю.

mikluho, вместо first использовать last
Я в конечном итоге остановилась на "top"
Я писала программу в посте в каком-то усталом дурмане. Вот высплюсь, переосмыслю, и смогу четко сформулировать свои вопросы, как, впрочем, и полученный результат. Так-то программка сырая, а я туговата на указатели (очень в них путаюсь). Но спасибо, спасибо за участие! Надеюсь, что это ваш не последний ответ в этой темке (чувствую, она будет длиииинной)

Oxymoron42, ммм, ладно. Я погуглю ее, спасибо за наводку!