Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #60 : 09-04-2012 10:34 » |
|
simka, не знаю, где ты в словах "больше или равного 1" и "0 и больше" увидела "от 0 до 1"... В таких случаях поступают следующим образом: родившаяся в голове мутная мысль, независимо от того, вызывает она сомнение или не вызывает, оформляется в некое конкретное высказывание; затем это высказывание принимается за гипотезу, а по всем имеющимся текстам разыскиваются противоречия этой гипотезе; если противоречия найдены, гипотеза неверна, если противоречий не найдено, гипотезу можно принять. В данном случае у тебя гипотеза "от 0 до 1". Проверяешь по тексту: "больше или равно 1" подходит? - нет. Дальше можно не проверять, гипотеза неверна. Так в большой программе подлаживаются друг к другу разные части. Полёт фантазии ограничивается предыдущими наработками И вариант с застегиванием незастегнутых не подходит для тех случаев, когда что-то оторвано, а что-то нужно не застегивать Оторванные и те, что не нужно застёгивать, - это как раз упомянутые мною переусложнения, в которые тут ломанулись некоторые граждане из желания впечатлить тебя сложностью, чтобы ты лучше прониклась Тут бы с простым случаем сначала разобраться
|
|
« Последнее редактирование: 09-04-2012 11:41 от Dimka »
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
simka
|
|
« Ответ #61 : 09-04-2012 10:49 » |
|
Dimka, я увидела два варианта прочтения, их и озвучила, несмотря на очевидный идиотизм одного... ну, мало ли...По мне так всегда лучше переспросить и уточнить, чем додумывать
С переусложненными пуговицами- понятно.
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #62 : 09-04-2012 11:44 » |
|
По мне так всегда лучше переспросить и уточнить, чем додумывать С одной стороны, это правильно - спрашивать лучше, чем додумывать. Но с другой стороны, учитывая, что вся информация уже была, предпочтительнее сверяться с ней, нежели переспрашивать. Тут дело не в том, что программисты - люди не болтливые, а в том, что если так не делать, на болтовню будет уходить 100% рабочего времени, а работа будет стоять
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
simka
|
|
« Ответ #63 : 09-04-2012 11:55 » |
|
Сей персонаж сейчас наилучшим образом отражает мой ответ
|
окай.png (11.05 Кб - загружено 1340 раз.)
|
« Последнее редактирование: 09-04-2012 12:37 от Sla »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #64 : 09-04-2012 12:59 » |
|
simka, твоё творчество? Вид у него запаренный, человека добродушного, но трудной судьбы
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
simka
|
|
« Ответ #65 : 09-04-2012 13:28 » |
|
Не, не мое)) окай-фейс это практически народное творчество)))
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #66 : 09-04-2012 13:46 » |
|
Уходим в сторону.
На чем остановились?
2 Dimka, не вижу причин не "усложнять" Усложнения вносят некие условия в действие.
Конечно, было бы правильным добиться идеального алгоритма застегивания. Но его кто-нибудь знает. Появляется некая эвристика при наописании процесса застегивания. Например, застегиваем снизу. А ведь можно было пойти и сверху.
Условия - можно ли пренебречь отсутствием пуговицы? Появляется обработчик исключительных ситуаций, пусть и надуманных.
Таким образом, я так вижу, мы совсем не запутываем, а наоборот, даем больше и больше инфы, пусть пока и не совсем систематизированной.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
simka
|
|
« Ответ #67 : 09-04-2012 14:07 » |
|
Sla, из всего делаем вывод: все условия оговариваются заранее, могут ли пуговицы отсутствовать, и т.д.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #68 : 09-04-2012 14:53 » |
|
Sla, из всего делаем вывод: все условия оговариваются заранее, могут ли пуговицы отсутствовать, и т.д.
В принципе - да, и это называется ТЗ. Но в процесс отладки, возникают исключительные ситуации, которые программист должен предусмотреть
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #69 : 09-04-2012 15:15 » |
|
Появляется некая эвристика при наописании процесса застегивания. Например, застегиваем снизу. А ведь можно было пойти и сверху.
Условия - можно ли пренебречь отсутствием пуговицы? Появляется обработчик исключительных ситуаций, пусть и надуманных. Вот человек ещё цикл с предусловием не написал, а ты уже за исключительные ситуации берёшься. Это ж завал сведений без закрепления на практике - выйдет каша в голове. По-моему не надо за всё сразу хвататься. А полезнее переходить к собственно программированию. Там ещё тоже много всяких "подводных камней". Например, "переменную" не все схватывают сразу. simka, так как переписать цикл, чтобы было "от 0 и больше пуговиц" вместо "от 1 и больше пуговиц"? Либо предложи вариант, либо скажи, что не знаешь/не понимаешь.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
simka
|
|
« Ответ #70 : 09-04-2012 15:48 » |
|
Dimka, 1.Проверяешь наличие пуговицы. При отсутствии пуговиц завершаешь процесс. 2. Берёшь нижнюю незастёгнутую пуговицу. 3. Застёгиваешь. 4. Если есть незастёгнутые пуговицы, то повторять, начиная п. 1
это если на одежде их вообще нет...
Хотя скорее всего я снова что-то не поняла(
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #71 : 09-04-2012 15:57 » |
|
тпру.... не гони лошадей. Вад рассказывал что такое цикл с предусловием. Вспоминай.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
simka
|
|
« Ответ #72 : 09-04-2012 16:06 » |
|
Sla, рассказывал, было дело Циклы вроде застёгивания пуговиц обычно называются "циклами с предусловием", потому что мы сначала проверяем условие завершения цикла операций, а уже по итогам этой проверки принимаем решение, делать ли итерацию (набор действий), или нет. Последним же пунктом в цикле мы тогда возвращаемся к 1му ("зацикливаемся") Если пуговиц незастегнутых нет, значит завершаем. Разве не так? P.S. еще у меня косяки с оформлением, вот, кусок цитаты кривой, прошу извинить...
|
|
« Последнее редактирование: 09-04-2012 16:32 от Sla »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #73 : 09-04-2012 16:33 » |
|
ага вспомнила, а теперь! если пуговиц 0? Расскажи применяя сведения о цикле с предусловием
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
simka
|
|
« Ответ #74 : 09-04-2012 16:38 » |
|
Sla, если пуговиц 0, то и незастегнутых- тоже 0, а отсутствие незастегнутых пуговиц- сигнал к завершению процесса... не?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #75 : 09-04-2012 16:44 » |
|
да?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
simka
|
|
« Ответ #76 : 09-04-2012 16:46 » |
|
ну.... по логике - да... *старательно мимикрирую под стену* *пытаюсь провалиться сквозь землю*
|
|
« Последнее редактирование: 09-04-2012 16:55 от simka »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #77 : 09-04-2012 16:57 » |
|
давай уйдем от чисел?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
simka
|
|
« Ответ #78 : 09-04-2012 17:00 » |
|
Sla, как скажете. С Вами- хоть от чисел... =)
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #79 : 09-04-2012 17:04 » |
|
Не... сама, сама...
Задача Описать алгоритм застегивания рубашки Начальное условие. Количество пуговиц неизвестно Дополнительное условие Использовать цикл с предусловием
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
simka
|
|
« Ответ #80 : 09-04-2012 17:15 » |
|
Предусловие - наличие незастегнутых пуговиц. (пуговицы расстегнуты). Условие завершения операции - отсутствие незастегнутых пуговиц.(пуговицы застегнуты) 1) Взять незастегнутую пуговицу 2)Застегнуть 3) Повторять до тех пор, пока незастегнутых не останется. Блин. Такая формулировка для 0 не подходит... (( я в сомнениях Для нуля можно предусловие озвучить как "отсутствие застегнутых пуговиц" но это будет неверно, если часть пуговиц уже застегнута... Я заблудилась
|
|
« Последнее редактирование: 09-04-2012 17:28 от simka »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #81 : 09-04-2012 17:26 » |
|
3) Повторять до тех пор, пока незастегнутых не останется.
Пункт 3... последний. Это не с предусловием, а с ...(хором)условием
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
simka
|
|
« Ответ #82 : 09-04-2012 17:29 » |
|
Sla, значит я так и не поняла, что такое предусловие(( 1)Проверить наличие незстегнутой пуговицы. Если есть, то 2)Взять незастегнутую пуговицу 3))Застегнуть 4) Повторять 1-3
|
|
« Последнее редактирование: 09-04-2012 17:33 от simka »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #83 : 09-04-2012 17:53 » |
|
п.1 И так и не так. Так потому что у тебя есть проверка (если) в самом начале Но... почему ты проверяешь наличие незастягнутой. А если пуговиц 0?
Подсказка Пока <выполняется условие> делать
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Вад
|
|
« Ответ #84 : 09-04-2012 17:59 » |
|
Sla, тут такая штука, не совсем чётко определено, как мы задаём множество пуговиц. Нулевое оно или ненулевое - мы не описываем, как определить. Возможно, это создаёт некоторую путаницу. Нам-то понятно, что "пуговицы" - это некий список объектов, в том числе и пустой, и мы имеем представление, где этот список заканчивается (может, даже не начавшись). Так что, я бы, всё-таки, понятие структуры данных ввёл, хотя бы самое базовое Без чёткой структуры и правила игры нечёткие получаются. В случае пуговиц, я бы предложил такое понятие как ряд петелек для пуговиц, с возможностью двигаться от петельки к петельке последовательно (неважно, с какого конца). Тогда, не видим ни одной петельки значит, - нет петелек. Видим - берём первую понравившуюся, ближайшую к себе, или как-то ещё.
|
|
« Последнее редактирование: 09-04-2012 18:02 от Вад »
|
Записан
|
|
|
|
simka
|
|
« Ответ #85 : 09-04-2012 18:07 » |
|
Sla, 1)Если пуговиц нет, то завершить процесс. Если есть незастегнутые пуговицы 2)Взять незастегнутую пуговицу 3)Застегнуть 4) Повторять 1-3, Пока не останется незастегнутых пуговиц
ААА *голова-стена* Я не знаю, как еще( если пуговиц нет, то и подпрограмма смысла не имеет, нельзя застегнуть то, чего нет. следовательно и действия выполнять не нужно, нужно сразу же завершать
|
|
« Последнее редактирование: 09-04-2012 18:15 от simka »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #86 : 09-04-2012 18:13 » |
|
Вад, А потому что нужно уйти от процесса застегивания пуговицы
И не смотреть на количественные характеристики, а смотреть на качественные: можем застегнуть/ не можем застегнуть
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #87 : 09-04-2012 18:25 » |
|
Вад, не надо списка объектов. Она его не создаст, а, следовательно, это не годится для перехода к практике, на которой эти списки бы обрабатывались. Пора бы определиться с языком. Предлагаю... что-то типа Ruby. simka, "пред-" - это перед, в начале; "пост-" - это после, в конце. Sla, она не понимает, какие условия к циклу относятся, а какие нет. А почему она этого не понимает? А потому, что помимо пред- и постусловий (в смысле Хоара) ещё есть инвариант цикла, каковой описывает всё, к циклу не относящееся, и потому сохраняющий своё значение до, во время и после выполнения цикла. Соответственно, инвариант должен быть исключён из всяких "если", потому что он заведомо положителен. И как ты объяснишь ей инвариант? simka, смотри. Исходно было так: 1 Взять нижнюю незастёгнутую пуговицу. 2 Застегнуть её. 3 Если остались незастёгнутые пуговицы, повторить с пункта 1.
Ты двинулась в правильном направлении, только опять проявила невнимательность. Ты написала "Проверяешь наличие пуговиц". Во-первых, это должно дать результат, который нужно проверить через "если", поэтому само "проверяешь..." смысла не имеет, достаточно написать собственно "если" и всё. Во-вторых, проверять надо не "пуговицы", а "незастёгнутые пуговицы". Ведь могут быть уже застёгнутые, а они для застёгивания неинтересны и потому должны быть исключены. Пресловутый 0 возможен, когда пуговиц нет вовсе и когда они все уже застёгнуты. Вот ты пропустила слово, и всё - логика сломалась. Что же ты попыталась написать? Ты попыталась написать такой ход конём: 1 Если есть незастёгнутые пуговицы, то 1.1 Взять нижнюю незастёгнутую пуговицу. 1.2 Застегнуть её. 1.3 Если остались незастёгнутые пуговицы, повторить с пункта 1.1
т.е. оставить цикл как он был, просто ограничив заход внутрь цикла условием. Это законно, но если присмотришься, то пункты 1 и 1.3 практически одинаковы, поэтому вопрос: как их объединить в одно условие? Причём сразу можно сказать, какими свойствами должно это условие обладать: 1) оно должно быть условием цикла (т.е. выполняющееся в повторе), чтобы по нему определялся конец работы; 2) оно должно быть в начале цикла (т.е. предусловие), чтобы при 0 незастёгнутых пуговиц цикл не выполнился ни разу. Как это всё сделать? Думай
|
|
« Последнее редактирование: 09-04-2012 18:27 от Dimka »
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
simka
|
|
« Ответ #88 : 09-04-2012 18:38 » |
|
Dimka, тогда может следует исправить пункт 1.3 Повторить с пункта 1 ? Тогда если пуговиц нет(или незастегнутых, или вообще), то процесс завершается... или его завершение не само собой разумеется и тоже требует оговорки?
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #89 : 09-04-2012 19:18 » |
|
simka, да, если точнее, "Перейти к п.1" - потому что, повторять или не повторять, - решим уже там, в п.1
|
|
|
Записан
|
|
|
|
|