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

UPD. Ну, я все же решила действовать в заданном направлении.
Итак, у меня получилось это (сыро, опять извиняюсь за оформление):
Собственно, если насчет тела проги я еще уверена, то в процедуре с функцией я плаваю. Например, компилятору не нравится, как я функцию объявляю false в начале. Интересно, чем?
имхо, нужно, всего лишь, прочитать ввод с клавиатуры в строку (массив символов и как там оно), узнать длину (или как-то ещё спозиционироваться на конец строки), запустить цикл в обратном направлении (т.е. начальное значение - конец, итерация на -1), каждый символ пишем на экран, если этот символ А, добавляем на экран #...
Разве не так?
в функции, разве не нужно использовать псевдопеременную result? и я конечно не помню, но может можно предустановить функцию в false примерно так:
function aornot(var data:char): boolean = false;
Как он меня бесит... Все компиляторы ведут себя как пьяные, особенно турбо. Но сказали прогать в нем - значит, надо :C
псевдопеременную result
Эта та, что присваивает значение функции типа boolean и которую не надо объявлять?
Дельфи ругать модно, ну вперед. Пьяные компиляторы, ага. Не хочу больше помогать.
Модно? не знаю, он всегда был убог, я не ругал лишь потому что это был язык лучше чем бесик, с которого можно начинать изучать программирование (имеется в виду pascal), а сейчас есть python, почему бы на нём не обучать основам программирования, он многим проще, приучает людей к аккуратности в коде, к систематизации, единственное за что сейчас можно любить delphi это за быструю компиляцию, он всегда это делал быстро, сейчас же это устаревший язык, да на нём ногие ещё кодят, да на нём всё ещё можно много чего сделать, но всё же это унылый язык программирования
GippoRex, есть сам дельфи с его консоль аппом, есть Pascal ABC, вам для ваших задач хватит.
согласен, если вам без разницы на каком языке программировать из семейства, то используйте Pascal ABC
Эта та, что присваивает значение функции типа boolean и которую не надо объявлять?
толком не помню, но по моему это и есть ваша функция, что то вроде указателя... точнее сейчас не скажу (слишком давно я кодил на делфи), но обращаясь к ней вы обращаетесь к переменной функции
Судя по апдейту, задача стоит в использовании связанных списков...
Для понятности кода, лучше вместо first использовать last, ведь каждый новый созданный элемент стэка всегда является последним ( и да, next в нём совсем не нужен, если не требуется возможность прохода по стэку с начала).
последний цикл должен выглядеть как-то так:
Ну, не могу судить о самой среде в силу своего профанства, но компиляторы - это риалли ужас. Тестила 3 разные штуки - и все они крашились с периодичностью в 15-25 минут. И это при том, что я не особо жалуюсь на кривизну рук. Но просто победитель в этой сомнительной дисциплине - это Турбо. Ооо, как я его ненавижу. Он крашится при запуске, крашится при выходе, крашится при выполнении программы, крашится во время режима отладки, крашится при сохранении программы (sic!), крашится прям посредине написания программы... Это происходит настолько часто, что у меня нет других слов, кроме как "Турбо, ты пьян! Иди домой". И это не только у меня подобное зверство. У 80% группы аналогичные проблемы. Я уже не говорю про машины, на которых мы работаем на семинарах... И это с учетом того, что там почти только этот турбо и стоит! Самое печальное, что нас заставляют работать именно в нем, так что я молча ненавижу.
Не хочу больше помогать.
Что же, воля ваша. Однако я все равно еще раз поблагодарю за всю вашу оказанную помощь! И приношу свои извинения, если мое невежество каким-либо образом вас обидело :C
Pascal ABC
Знаем, пробовали. Тащемта, я в нем основной костяк программы и проверяю.
mikluho, вместо first использовать last
Я в конечном итоге остановилась на "top"
Я писала программу в посте в каком-то усталом дурмане. Вот высплюсь, переосмыслю, и смогу четко сформулировать свои вопросы, как, впрочем, и полученный результат. Так-то программка сырая, а я туговата на указатели (очень в них путаюсь). Но спасибо, спасибо за участие! Надеюсь, что это ваш не последний ответ в этой темке (чувствую, она будет длиииинной)
Oxymoron42, ммм, ладно. Я погуглю ее, спасибо за наводку!