OberonCore https://forum.oberoncore.ru/ |
|
Хабаровский учебник по КП https://forum.oberoncore.ru/viewtopic.php?f=80&t=1710 |
Страница 17 из 20 |
Автор: | Михаил_Томлачов [ Среда, 04 Январь, 2012 15:34 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Здравствуйте, подскажите пожалуйста, я правильно понял, что в "Современное программирование с нуля" и "Искусство алгоритмизации" отсутствуют ответы на задания для самоконтроля? Зачем они тогда даются, если непонятно, правильно ли ты решаешь, или нет? И еще, можно ли в таком случае научиться программировать, не решая эти задания? см. также: viewtopic.php?f=80&t=3827 И еще вопрос, что выбрать: "искусство алгоритмизации" или "алгоритмы и структуры данных" Вирта? |
Автор: | Владислав Жаринов [ Среда, 04 Январь, 2012 16:09 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Да вроде как и то, и другое... это изложение с разных позиций творческой работы на языке. Кроме того, Вирт - это Оберон, т.е. не совсем Компонентный Паскаль (реализованный в БлэкБоксе)... Вот как введение в язык - тут явно "С нуля"... |
Автор: | Михаил_Томлачов [ Среда, 04 Январь, 2012 16:16 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Владислав Жаринов Благодарю за ответ! Тогда прокомментируйте еще пожалуйста мой первый вопрос, по поводу заданий для самоконтроля. Ну, и вообще, при работе с этими книгами, будет положительный результат? |
Автор: | Info21 [ Среда, 04 Январь, 2012 16:32 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Михаил_Томлачов писал(а): я правильно понял, что в "Современное программирование с нуля" и "Искусство алгоритмизации" отсутствуют ответы на задания для самоконтроля? Зачем они тогда даются, если непонятно, правильно ли ты решаешь, или нет? Дело в том, что ответ сильно не единственный. То есть существует много правильных ответов. Не решая именно эти задания научиться программировать можно. Для этого надо порешать какие-то другие задания Программирование -- это такое ремесло, где требуется опыт и опыт. Не столько даже построения хитрых алгоритмов (т.е. решения олимпиадно-комбинаторных задачек), сколько опыт "нагребания" и "разгребания" достаточно громоздких программ. Я бы посоветовал начинать с "С нуля..." и продвигаться там до тех пор, пока не появится достаточно уверенности, чтобы рабирать "Алгоритмы". Дальше по ощущению. |
Автор: | Владислав Жаринов [ Среда, 04 Январь, 2012 16:40 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Вы знаете, Михаил, для моей цели - сделать язык представления программ на графовой основе не "сфероконевакуумный", а соответствующий конкретному промышленному прогязыку - результат вполне положительный что от Виталия Валерьевича, что от Никлауса Робертовича. Вот взял я "Современное программирование с нуля", почитал - и сделал, скажем, эти примеры... и уточнил для себя определение визуализации типов. Или взял "Алгоритмы..." - и сформировалась общая картина устройства типов... Хоть у Вас цель, надо думать, другая немного - писать на самом КП что-то - но подозреваю, результат будет... Насчёт заданий - это у Потопахина метода такая. Он уже говорил (кстати, логику для работы с Виртом надо - и Мейер из поста здесь, IMHO, подспорьем будет). Немного другая книга "Решение сложных задач"... она для Трубы, правда, но много прогязыково-независимого, думаю, найдёте... А по основаниям Info21 уже сказал... только не забывайте учитывать найденные в книгах опечатки... они тут в теме по разным постам раскиданы, видели, наверное... P.S. Да, если действительно писать "с нуля" предстоит - то, наверное, имеет смысл актуальную школьную сборку юзать... или базовую... |
Автор: | Михаил_Томлачов [ Среда, 04 Январь, 2012 17:14 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Товарищи, благодарю за ответы! Опыт программирования некоторый имеется, но т.к. профессию получаю по другому профилю, нормальной базы у меня нету, поэтому хочу с помощью данных книг ее наработать. |
Автор: | Владислав Жаринов [ Среда, 04 Январь, 2012 17:19 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Удачи! (Эх, надо бы наверное, каталогизировать посты с опечатками - посмотрел - сильно разбросаны... хорошо хоть, по веткам сгруппированы... ) |
Автор: | Валерий Лаптев [ Среда, 04 Январь, 2012 23:08 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Михаил_Томлачов писал(а): Товарищи, благодарю за ответы! Опыт программирования некоторый имеется, но т.к. профессию получаю по другому профилю, нормальной базы у меня нету, поэтому хочу с помощью данных книг ее наработать. 1. Начните "Программирование с нуля!" 2. Продолжение - Алгоритмы и структуры данных - ОБЯЗАТЕЛЬНОЕ! Тем более, что все примеры из книжки можно в БлэкБоксе просмотреть и выполнить. |
Автор: | vvp [ Вторник, 17 Январь, 2012 15:03 ] | ||
Заголовок сообщения: | Re: Хабаровский учебник по КП | ||
Если кому будет не лень. Почитайте прилагаемый текст. У меня готово несколько глав книги "Поиск решения". Эта глава самая принципиальная и может быть несколько нахальная. Этот вариант не последний, но и не первый. Еще меняться будет, но наверное уже не сильно.
|
Автор: | Сергей Губанов [ Вторник, 17 Январь, 2012 16:39 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
vvp писал(а): Если кому будет не лень. Почитайте прилагаемый текст. У меня готово несколько глав книги "Поиск решения". Эта глава самая принципиальная и может быть несколько нахальная. Этот вариант не последний, но и не первый. Еще меняться будет, но наверное уже не сильно. Почему-то везде "программисткого" вместо "программистского". Цикл Дейкстры не такой как написано у Вас. Цикл Дейкстры заканчивается на "ELSE". И не надо его симулировать с помощью EXIT. Вместо этого пишите сразу на Обероне-07, в котором цикл Дейкстры уже есть. Если цикл факторизуется на элементарные IF/WHILE/REPEAT-составляющие, то, ИМХО, не имеет смысла запутывать его до цикла Дейстры. Цикл Дейкстры предназначен для описания принципиально нераспутываемых/нефакторизуемых алгоритмов. |
Автор: | Peter Almazov [ Вторник, 17 Январь, 2012 17:06 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
vvp писал(а): А сейчас позвольте сформулировать гипотезу относительно формы любого программисткого решения. Сразу хочу заметить, что это не более чем моя личная гипотеза, поэтому не судите слишком строго, а звучит она так: Гипотеза неверна.
Решение алгоритмически чистой задачи сводимо к построению цикла Дейкстры. |
Автор: | vvp [ Вторник, 17 Январь, 2012 23:32 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Peter Almazov писал(а): vvp писал(а): А сейчас позвольте сформулировать гипотезу относительно формы любого программисткого решения. Сразу хочу заметить, что это не более чем моя личная гипотеза, поэтому не судите слишком строго, а звучит она так: Гипотеза неверна.Решение алгоритмически чистой задачи сводимо к построению цикла Дейкстры. Вполне возможно. Я по большей части из-за этой гипотезы и выложил текст. Но хотел бы не просто верна/неверна. А чуть более развернуто. |
Автор: | vvp [ Вторник, 17 Январь, 2012 23:36 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Сергей Губанов писал(а): vvp писал(а): Если кому будет не лень. Почитайте прилагаемый текст. У меня готово несколько глав книги "Поиск решения". Эта глава самая принципиальная и может быть несколько нахальная. Этот вариант не последний, но и не первый. Еще меняться будет, но наверное уже не сильно. Почему-то везде "программисткого" вместо "программистского". Цикл Дейкстры не такой как написано у Вас. Цикл Дейкстры заканчивается на "ELSE". И не надо его симулировать с помощью EXIT. Вместо этого пишите сразу на Обероне-07, в котором цикл Дейкстры уже есть. Если цикл факторизуется на элементарные IF/WHILE/REPEAT-составляющие, то, ИМХО, не имеет смысла запутывать его до цикла Дейстры. Цикл Дейкстры предназначен для описания принципиально нераспутываемых/нефакторизуемых алгоритмов. Грамматические ошибки здесь вряд ли должны быть предметом анализа. А переходить на Оберон-07 только для одного фрагмента я не могу. Мой базовый язык для всего курса - это компонентный Паскаль. Симуляция с помощью EXIT кстати рекомендуется Н. Виртом. Красная книжечка страница 269 |
Автор: | adva [ Среда, 18 Январь, 2012 09:02 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Если я правильно понял Жаринова В., то силуэт в драконе это и есть цикл Дейкстры (не нашел к сожалению место, где он об этом пишет). А на силуэтом можно представить, любой алгоритм. Следовательно любой алгоритм можно также представить циклом Дейкстры. |
Автор: | Info21 [ Среда, 18 Январь, 2012 10:20 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Сергей Губанов писал(а): Если цикл факторизуется на элементарные IF/WHILE/REPEAT-составляющие, то, ИМХО, не имеет смысла запутывать его до цикла Дейстры. Примеры из красной книжки (раздел 1.9) доказали, что смысла имеет.Сергей Губанов писал(а): Цикл Дейкстры предназначен для описания принципиально нераспутываемых/нефакторизуемых алгоритмов. Таковых, вообще-то, в природе нет.
|
Автор: | Владислав Жаринов [ Среда, 18 Январь, 2012 10:50 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
adva писал(а): Если я правильно понял Жаринова В., то силуэт в драконе это и есть цикл Дейкстры (не нашел к сожалению место, где он об этом пишет). А на силуэтом можно представить, любой алгоритм. Следовательно любой алгоритм можно также представить циклом Дейкстры. Не совсем так - можно перейти от дракон-силуэта к определённому виду ЦД. В "шапке" которого стоят выражения охраны ЦД-ветвей по "паролю"-номеру ветви. А значение номера устанавливается в теле ветви (при выходе). Пароль - по сути, замена адресу силуэтно-веточного goto. В общем, получается как "автоматная программа". Громоздко только - реально надо сразу выводить из величин алгоритма.Наверное, Фёдор Васильевич лучше скажет, что и когда было получено на тему доказательства, можно ли любой алгоритм можно также представить циклом Дейкстры. Как я понимаю, в рамках доказательного программирования. "Ополченский" ответ - да, можно, если "посмотреть под определённым углом": viewtopic.php?p=65528#p65528 - но это не доказательство... Пока основное применение в связи с алгоритмизацией (не только визуальной) - уход от "клепания" маршрутов: viewtopic.php?p=52672#p52672. В общем, думал, что такие рассуждения, как у Вас, правомерны... но всегда полезно иметь доказательства различными независимыми путями... |
Автор: | Валерий Лаптев [ Среда, 18 Январь, 2012 11:26 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Цитата: Сказанное выше не означает ограничения на мыслительную деятельность. Надо просто уяснить, что есть комбинаторное мышление, направленное на построение решения из уже имеющихся кирпичиков, и есть творческое, ставящее целью создание новых знаний (новых кирпичиков). Добавьте выделенное. Код: LOOP IF условие THEN EXIT {ELSIF условие THEN группа операторов} ………. END; END; У Ткачева в книге Вирта написано не так - у вас менее понятно. Код: LOOP IF условие THEN группа операторов { ELSIF условие THEN группа операторов } ………. ELSE EXIT END; END; Еще в начале раздела О пошаговом уточнении я б написал в явном виде, что мы собираемся делать. А потом на примерах разъяснил, как в конкретной задаче это делается - ваш текст. Еще сразу хотелось бы обратить ваше внимание на Альтшуллера и книгу Пойа " Как решать задачу". По ходу прочтения у меня возникли вопросы, насколько ваш текст-метод (который Вирт предложил) пересекается с ними. |
Автор: | Info21 [ Среда, 18 Январь, 2012 16:07 ] |
Заголовок сообщения: | Re: Хабаровский учебник по КП |
Лучше последние две строки объединять для единообразия с первой. Код: LOOP IF условие THEN группа операторов { ELSIF условие THEN группа операторов } ELSE EXIT END END; Ну, и комментарий в начале, что это цикл Дейкстры. |
Автор: | Владислав Жаринов [ Пятница, 20 Январь, 2012 05:08 ] |
Заголовок сообщения: | По Гл. 1 и общему замыслу новой книги о поиске |
Нашёл немного времени, чтобы прочесть - и, как обычно, не пожалел... Понятно, что много общего с "Решением..." для ТП - но есть и новое. Но прежде всего - снова текст требует корректуры. Всё как обычно - запятые, вопросительные предложения без вопросительного знака, тире. Также - перестроение отдельных фраз и абзацев, восстановление кое-где пропущенных слов. Только сейчас необходимость больше... догадываетесь, почему?.. Правильно - в силу текущей ситуации Ваши книги почти неизбежно тоже окажутся "под лупой" разных граждан. Ну и предсказуемая реакция - "- И что это за книги? Сплошная безграмотность! На неокрепшие юные головы!! Ужос!!!"... Так что хорошего Вам редактора, Виталий Валерьевич... и корректора... Да, насчёт "программистского"... которое и пишется с трудом, и произносится коряво... да и не очень суть дела в Вашем понимании отражает, наверное... не удивительно, что Вы его не жалуете... Предложил бы "информатическое" - которое охватывает и "алгоритмическое" и "программное". Если не боитесь разных "верховных судий", которые чегой-то весьма поверхностно критикуют автора за это понятие... Правда, надо ещё объяснять... ну вон есть ещё "формально-информационное" в ВП:Инфомодель... в общем, Вам смотреть... Что сказать по сути? Вижу, есть формулировочка мышлений в русле "умотип-теории" Фёдора Васильевича... рулез... Тут соображения по тексту уже высказали... я также по книге в целом, как её можно представить... Важно, что Вы развёртываете весь процесс моделирования/формализации, по сути, впервые после Леонтьева и Фридланда/Вентцель. И простыми словами, на конкретике получения программно строгого решения ("отслаивания знаний" (С) Леонтьев) - до "командной модели" (С) Фридланд)). Вот ещё Ляхович отчасти развёртывает (для третьей стадии преимущественно)... да кое-какие посылки можно найти у Симоновича (имею в виду по-прежнему книги из этого поста)... Отсюда что важно? Вот Вы пишете: "Возможно психология дает какие-то методы решения подобных задач, но мы психологической наукой не владеем. Из соображений здравого смысла ясно, что необходимо организовать перебор всех возможных вариантов, и выбрать из них вариант с наибольшим значением критерия устойчивости.". Тут бы слегка обобщить в связке со сказанным далее: "Любая работа по устранению неопределенностей, в конечном итоге должна привести, к математически строгой записи." Что психология - это частный случай "предметки", дающий "качественное" (в этом смысле) понимание задачи. На её месте (или вместе с ней, если задача междисциплинарная) м.б. физика, химия, биология... А "строгая запись" - необходимый результат приложения математики на следующей стадии понимания... которому надо учиться... Но в математике у нас исполнитель записи ещё не строгий "информатически". Он ещё "потенциально/актуально бесконечен". Отсюда третья стадия - когда переходим к реально конечному (в пространстве - "лент<е|ам> памяти" с конкретным числом ячеек, конечному набору состояний автомата "головки", конкретному "устройству" ячеек; во времени - ограничению продолжительности/числа шагов; в движении - к реальному набору операций/функций над конкретно "устроенными" ячейками). Появляется то, о чём Илья говорил как о "сопротивлении материала", "реализации математики". И тут уточнение того, что вы говорите о "программировании как разделе ПМ" - суть именно в наложении условий конечности на исполнителя и на процесс его функционирования. Тут-то (при нынешних результатах математики) и оказывается, что мы не всегда можем узнать заранее, выполняются ли все или некоторые из этих условий (проблемы остановки, алгоразрешимости, etc). Отсюда и утверждаемый Вами эвристический характер процесса. Сие изложение развивается/логически завершается, конечно, в разделе инженерии - но в общих чертах целостно даётся здесь. Вы начали "простыми словами" - как-то хорошо бы в этом духе и до "командной модели"... Хорошо, что явно указано на объективность усложнения решения. Тут бы к месту (снова исходя из этапности процесса) сказать, что есть спецификация, и есть программа... и программа как раз нечто "самое" детальное - в расчёте на наиболее точно определённого исполнителя. М.б. к месту будет вспомнить, что фон Нейман указывал на этот счёт: «…у нас не может быть уверенности в том, что в этой области объект <программа> не является простейшим описанием самого себя, ... и т.д.». Но - при условии, что мы имеем "относительно систематическое представление" (С) Вирт на с. 48) об исполнителе "объекта" - программы ли, "педантической" инструкции - т.е. о "нашей машине" (С) Мейер в п. 1.1). А если без "эйффелевских банальностей", а по существу - о "языковой машине" реальной (архитектуре платформы, включая как программистское представление железа информашины - так и слои ПО, которые использует создаваемая/сопровождаемая программа, если таковые имеются - обычно да, хотя бы БСВВ ) или виртуальной (которая может абстрагировать как одну/ряд платформ, так и наше представление о человеке как алгоритмическом исполнителе, "винтике", "педанте"). Причём указывая, что слои ПО вообще-то и вводятся, чтобы скрывать нижележащие детали (аппаратуру или предыдущий слой) - см. хотя бы у Рембольда схему на с.47 - или alexus о языках системы. Но (забыл, как это по латыни - хотя "крылатая фраза" вообще-то ) "чего один человек построил - другой завсегда разобрать сможет" (С) Г. Горин. Формула любви) - и потому для искусственной "языковой машины" возможен, как правило, обход слоёв. Т.е. хакинг ПО. В меру того, в конечном счёте, что аппаратура позволяет - см. опыт "Эльбрусов" (ещё у Бабаяна в "Защищенных информационных системах") - ну это так, к слову... А равно - обход инструкций (в результате которого не обязательно совершаются [право]нарушения - но также и рождаются новые "нормативно полезные" решения). В т.ч. и в программировании... Во всей полноте это, конечно, инженерия... но начала, IMHO, уже здесь не без пользы были бы... Насчёт "А или Б" - сам сталкивался с таким выбором не раз. В общем случае иногда полезно браться за "А", иногда за "Б". Выбираешь, действительно, интуитивно - и опыт, видимо, нарабатывается по мере решения. Чуть-чуть уточнить бы это: "Структурное программирование это парадигма, описывающая технически грамотное построение программы, мы же сейчас обсуждаем не программирование, а процесс поиска решения. Термин «Нисходящее проектирование» несколько ближе. Эта парадигма предписывает разбивать задачу на подзадачи." Примерно так: "Есть поиск идеи решения - как мысленного представления, и есть оформление этой идеи - как записи на языке представления - например, программирования. "Структурное программирование" - парадигма скорее оформления найденного (технически грамотного), тогда как «Нисходящее проектирование» - парадигма в первую очередь поиска (грамотного научно, интеллектуально)." - ну и дальше о его сути. Дабы и классификация была чётче - и в то же время подчёркивалась тесная связь. В общем "догмат нераздельности и неслиянности" - который весьма полезен при подлинно системном подходе... а не только в религии... Про системы "датаматические" и "автоматические" - лучше переписать на основе того, что у Карпова, Поликарповой и Шалыто (про "трансформационные" и "реагирующие" программы в начале каждой из работ; у "автоматчиков" добавляются ещё "интерактивные", но это думать надо)... ещё Илья Ермаков хорошо говорил, очерчивая сферу применения ДРАКОНа... Имею в виду то же, что и Вы - что в одних случаях важна структура данных, в других - алгоритм. Кстати, а Вы предполагаете рассматривать поиск решения и в той, и в другой составляющей?.. Думаю, надо бы... Вот у Ляховича правила, когда типизируем как скаляр, а когда - как массив, IMHO, просты... и правило, когда типизируем как запись, которое сформулировал в рамках этой задачи (см. о деклар-моделировании), представляется естественным продолжением. Конечно, во всей полноте записевые структуры определяются из довольно сложных критериев (что было видно из некоторых недавних тем здесь)... и развёртывание этого скорее для Вашего замысла по инженерии... В то же время здесь есть ещё один аспект - как раз алгоритмический. Имею в виду - что реагирование разное бывает. В "условно-реальном времени" - как "алгоритмическая расшифровка" (С) Рэйлвей Каген) модели предопределённого по времени взаимодействия (циклограмма etc). И в "подлинно-реальном" - как "алгорасшифровка" взаимодействия совместно протекающих процессов, предопределить которое по времени сочинитель не может (по принципу "непривязки" к моментам времени, абстрагированию событиями, "интерливы" - линейные порядки чередования во времени - которых образуют базу анализа). Тут трудно сказать, где надо начать разбирать это - здесь или тоже в инженерии - но вспомните, что говорил как раз о сложной задаче на моделирование (здесь о Гл. 16)... IMHO, можно связать с разомкнутым и замкнутым управлением... но надо подумать (говорил в конце поста о книге Рембольда)... В любом случае терминологию нелишне сразу давать, как она складывается в "предметке". В общем, удачи! |
Автор: | Владислав Жаринов [ Пятница, 20 Январь, 2012 06:12 ] |
Заголовок сообщения: | О поиске решения у Потопахина и не только :) |
Валерий Лаптев в viewtopic.php?p=69627#p69627 писал(а): ... Ну и на М.А. Орлова можно обратить... Еще сразу хотелось бы обратить ваше внимание на Альтшуллера и книгу Пойа " Как решать задачу". По ходу прочтения у меня возникли вопросы, насколько ваш текст-метод (который Вирт предложил) пересекается с ними. Да, "текст-метод Вирта" - это язык "псевдо-Оберон" (с "обыденными" формулировками действий/условий, неуточнённых на данном шаге детализации)? Т.е., то что имелось в виду здесь?.. Это чисто для уточнения дальнейшей дискуссии, которая интересна, но участие в которой м.б. сейчас лишь минимальным... |
Страница 17 из 20 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |