Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование с нуля - это совсем просто! 23) Вопросы и ответы


Информационный Канал Subscribe.Ru

 
Школа программирования

Программирование с нуля - это совсем просто!

23) Вопросы и ответы

Ответы на задачку Эйнштейна (где объяснялся ход действий) публикуются в порядке поступления. Некоторые из них (где таблички) присылались в html-формате, но в koi-кодировке, поэтому я не стал тратить свое время на перекодировку, а просто ликвидировал таблички (к сожалению). Если вы хотите, чтобы ваши ответы публиковались в полноценном :) виде, пожалуйста, самостоятельно переводите их в красивый html и win-кодировку.

Первое решение задачи Эйнштейна. От Papaleff

Для начала обозначим на бумаге 5 "домов" , а потом начнем внимательно читать подсказки.

9. Норвежец живет в первом доме.
Обозначим первый как занятый Норвегом.
13. Hорвежец живет около голубого дома.
Второй дом станет "Голубым".
7. Жилец среднего дома пьет молоко.
Третий дом пометим "Молоко".
4. Зеленой дом стоит слева от белого.
5. Жилец зеленого дома пьет кофе
Предположим что белый - крайний правый. Получается следующее...
Что дальше?
1. Англичанин живет в красном доме.
Отсюда следует красный дом всередине, желтый - первый ,где живет норвег...
5. Жилец зеленого дома пьет кофе.
7. Жилец среднего дома пьет молоко.
8. Жилец из желтого дома курит Dunhill.
11. Человек, который содержит лошадь, живет около того, кто курит Dunhill.
Дополняем таблицу...
15. Курильщик Marlboro живет по соседству с человеком, который пьет воду.
Это можно поместить только в определенные ячейки таблицы...
12. Курильщик Winfield пьет пиво.
Эта запись имеет только своё место...
3. Датчанин пьет чай.
Добавляем эту запись в таблицу...
14. Hемец курит Rothmans.
2. Швед держит собаку.
Дополняем таблицу...
6. Человек, который курит Pallmall, держит птицу.
10. Курильщик Marlboro живет около того, кто держит кошку.
Заполняем далее...
Для "РЫБЫ" осталась одна клетка .
Ответ : Рыба принадлежит НЕМЦУ .

Следующее.

Рыбки у немца.
Делал так : составил табличку и вписывал туда всё достоверно известное, парралельно в голове прокручивая все возможные варианты.
То есть сначала заполнил все графы с цветом, несколько граф с сигаретами, отталкиваясь от возможных комбинаций заполнял пустые графы.
cyberwizard

Следующее.

ответ: немец.
Сочетание признаков
1)дом №4
2)зеленый
3)кофе
4)Rothmans
Я решил задачу, последовательно заполняя таблицу на бумаге.
Сейчас думаю, как бы это делать автоматически.
Сергей

К этой теме - об автоматизации решения, мы еще вернемся.

Решила очень быстро, но запомнить всё это не удалось.
Т.е. решала методом исключения одного из нескольких. Я приведу тебе алгоритм моих вычислений.
1. Норвежец живёт в первом доме.
2. Жилец среднего дома пьёт молоко (уже мы имеем два точных расположения домов)
3. Норвежец живёт около голубого дома (значит второй справа дом будет голубым)
4. Далее методом исключения : зелёный дом стоит слева от белого, при условии что его владелец пьёт кофе, мы имеем то, что 4-й дом будет зелёным а 5-й белым.
5. Англичанин живёт в красном доме, ну и зашибись... , единственный оставшийся дом - это третьий, потому что в первом уже с самого начала живёт норвежец.
6. Методом исключения, приходим к тому, что оставшийся жёлтый дом принадлежит норвежцу, мало того, по условиям задачи он ещё и курит Данхилл.
7.Получается так, что норвежец, живущий в первом доме слева и курящий Данхилл, по условиям задачи будет соседом того, кто живёт около него (во втором доме) и содержит лошадь.
8. Курильщик Мальборо живёт по соседству с чел-ком, кот. пьёт воду, а значит, методом исключения, воду будет пить Норвежец, живущий в первом доме, а курильщик Мальборо будет жить во втором доме.
9. Курильщик Винфилд, пьющий пиво, будет жить в пятом доме, потому что все остальные "места" уже заняты исходя из предпочтения напитков и сигарет.
10. Если немец (гадёныш) курит Ротманс, то он может жить только в четвёртом доме (из двух возможных, в третьем уже мы поселили англичанина)
11. Единственное место из сигарет остаётся у англичанина в третьем доме, он будет курить оставшийся Пэлл Мэлл и при этом содержать птичку.
12. Швед держит собаку, и единственное остающееся для него место только в пятом доме.
13. Также, как и для злостного курильщика Мальборо, вернее для того, кто рядом с ним держит кошку, остаётся только первый дом, дом норвежца.
14. Исключая интересы в напитках, получится то, что Датчанин пьёт чай.
15. По условиям задачи, Швед держит собаку, ... и ...вот оно... решение... ИСКЛЮЧАЯ ВСЁ, РЫБКИ ВЫПАЛИ НА ДУШУ ЗЛОСТНОГО НЕМЦА!"!"!
jenni4ka

Следующее.

С девятилетней дочкой сегодня разбирали задачу Эйнштейна про дома!
Описать весь алгоритм будет долго, но коротко попробую:
-взяли лист бумаги, разграфили типа матрицы 5Х5, где по горизонтали - номер дома, а по вертикали: цвет, национальность, животное, сигареты, напиток.
- Составили списки: дома, национальности, животные, сигареты, напитки в столбик по 5шт
- Начали заполнение клеток матрицы последовательно, от простого - смотрим п.7 и в клетке (3дом;напиток) пишем МОЛОКО!
- далее п.9 в клетке (1дом;национальность) пишем НОРВЕЖЕЦ
- далее анализируем п.1 и в клетке (1дом;цвет) пишем НЕ Красный!
- далее согласно п.13 заносим в клетку (2дом;цвет) ГОЛУБОЙ
- далее по п.4 мы должны заполнить две соседние свободные соседние ячейки строчки цвета, и с учетом п.5 со свободной ячейкой в строчке напитков для левой из них. Таковыми являются ячейки (4дом;цвет) ЗЛЕННЫЙ и (5дом;цвет) БЕЛЫЙ.
Оставшиеся два цвета красный и желтый распределяются просто, т.к в клетке (1дом;цвет) мы пометили НЕКРАСНЫЙ , значит - (1дом;цвет) пишем ЖЕЛТЫЙ а оставшийся КРАСНЫЙ в (3дом;цвет)
- согласно п.1 (3дом;национальность) пишем АНГЛИЧАНИН,
и так далее доходим до конца.
Получаем для 4дома(4 столбец матрицы): ЗЕЛЕНЫЙ; НЕМЕЦ; РЫБА; Rothmans. Кофе.
Вот, пожалуй и всё!
Приятно, что задача решена!
Спасибо за полученное удовольствие.
Юрий и Надя

Следующее.

Решил решить задачку про рыбу и вот ,что получилось.
Решал около трех часов.
Составил таблицу и посмотрел ,что известно.
1 Норвежец живет в 1 доме.
2 Он же рядом с голубым - значит 2 дом - голубой.
3 Зеленой дом стоит слева от белого а англичанин в красном ,значит - норвежец - в желтом и курит Dunhill.
4 Человек, который содержит лошадь, живет около того, кто курит Dunhill. тогда в 2 доме - лошадь.
5 Дальше . Зеленой дом стоит слева от белого. Жилец зеленого дома пьет кофе.
Жилец среднего дома пьет молоко. Значит 4 дом- зеленый , 5 дом - белый.
Выходит ,что англичанин в 3 доме красного цвета и пьет молоко.
6 Небольшая заминка. Швед может жить в 4 или 5 доме.
Датчанин 2 или 5 .Тут я принял неверное решение ,поселив немца в 5 дом.
Пришлось вернуться назад и найти правильный ход.
7 Ключевые фразы.
Датчанин пьет чай.
Hемец курит Rothmans.
Швед держит собаку.
Курильщик Winfield пьет пиво. Выходит это швед и живет в 5 доме.
8 Дальше подставляем и анализируем оставшиеся подсказки и находим где рыба. Она у немца в 4 доме.
Александр

Следующее.

1) отмечаем точно известные данные: англичанин = красный; швед = собака; датчанин = чай; зеленый = кофе <> датчанин; Pallmall = птица; 3 = молоко; желтый = Dunhill; норвежец = 1; Marlboro <> кошка; лошадь <> Dunhill, желтый; Winfield = пиво; голубой <> норвежец, 1; Немец = Rothmans; Marlboro <> вода;
2) начинаем рассуждения: т к зеленый слева от белого, то белый <> 1, норвежец; зеленый <> 2 т к норвежец сосед голубого; норвежец = желтый т к англичанин красный, зеленый и белый д б рядом, а голубой = 2; 1 = Dunhill; лошадь=2; зеленый = 4 и белый = 5 т к зеленый слева от белого (т е <> 5) и = кофе, а 3 = молоко; кофе = 4; 3 = красный, англичанин; датчанин <> зеленый т к 4 = кофе; вода = 1 т к пиво = Winfield, а чай = датчанин, а они <> 1, остается вода; 2 = Marlboro; кошка = англичанин или норвежец; немец <> 2; датчанин = 2; чай = 2; 5 = пиво; Winfield = 5; немец = 4; 4 = Rothmans; далее все методом исключении и данными условия: швед = 4; Pallmall = 3; 5 = собака; кошка = 1. И ВОТ ОНА РЫБКА - У НЕМЦА!
Сергей

Следующее.

Smisl rassuzhdenia prost:1 dom norvezhtsa(dano),sleduyushii-goluboi,zelenii sleva ot belogo,t.e zelenii ili 3 ili 4,t.k 2 goluboi,anglichanin ili 3 ili poslednii,srednii dom(dano:moloko,t.e,anglichanin,t.k zelenii-kofe),i.t.d metodom isklucheniya

А вот самый оригинальный ответ:

А что тут думать :>)
Рыба нужна тому, кто пьет пиво!
Уж как ни крути жареная, вареная, пареная или вяленая все хорошо под пиво!
Я всем остальным она как мертвому припарки!
- Какая разница кто в каком доме живет, какого цвета и с какого боку?!
- Да еще - с животным или без?!
- С молоком вместе нельзя - будет отравление.
- С водой не вкусно - ерунда.
- Сигаретам рыба н е н у ж н а!
Отдайте рыбу тому кто пьет пиво, чтобы он там не курил!
Ирина

Было еще немало подробных и хороших ответов! Спасибо всем.

К вопросу автоматизации.

Рыбка плавает у немца.
Особенно думать не надо было ....просто начертил пять таблиц в экселе и тупо подставил имеющиеся данные при этом вычеркивая все невозможные комбинации , в конце надо было посмотреть на то, кто с кем рядом жил ....хотя в первый день не получилось (по невнимательности)
таблицы прилагаю
Костя

Действительно, зная алгоритм, решить задачу можно быстро. Собственно, все приславшие ответы разделились на две группы. Одни решали своими собственными мозгами, без привлечения какой-либо технологии, другие же, зная общие принципы решения подобных задач, нашли ответ "автоматически" - не прикладывая мысленных усилий (тупо :)

У каждого такого подхода, конечно, есть право быть примененным. Если можно - решаем шаблонным, готовым способом, когда главное - цель, результат, а не процесс. Но существует множество задач, к которым шаблонные подходы не применимы. В программировании на 99% шаблонных решений не бывает, даже в достаточно простых программах. Всегда приходится думать самому :)

Способ решения подобных данной задач, собственно, описан выше в виде рассуждений решавших читателей. Сводится все в таблицу, и расставляются взаимосвязи между элементами, последовательно проверяя все взаимосвязи между утверждениями. Человеку это сложно, особенно если в задаче не 10-20, а несколько тысяч утверждений. А компьютеру все равно, главное, чтобы данные исходные были правильно сформулированы в понятном ему виде. А это, кстати, задача сама по себе нетривиальная. Фактически придется придумывать свой собственный формальный язык описания входных данных для программы, а программа выполнит роль своеобразного компилятора, который переведет данные на этом языке в вид, пригодный для анализа. В нашем случае это могут быть какие-то взаимосвязи и переменные, типа Ж1 - жилец первого дома, ЗД - зеленый дом, БД - белый дом итд. Затем между ними взаимоотношения задаются, как то так например:

Ж1 = норвежец;
ЗД = СлеваОт( БД );

Этим обычно занимаются (по хорошему) так называемые инженеры по знаниям, которые все это формализуют в виде, пригодном для программной обработки.

Сложность программы, решающей такие задачи (сложность ее создания) - средняя (помните, мы обсуждали, сколько программ надо написать, чтобы стать сильным программистом?). За неделю-две ее вполне можно сделать - как модуль ввода утверждений в формальном виде, как выше, так и модуль анализа. Не универсальный, конечно, а с расчетом на данный класс задач.

Десять таких программ напишете - и вы суперпрограммист! :)

Одна из первых таких программ (они называются интеллектуальные решатели), была написана в начале 60-х :) Давно, правда?

Называлась она General Problem Solver (GPS) Ньюэлла и Саймона. Причем была универсальной и решала достаточно оригинальные логические задачи. А классикой считалась задача "На потолке в клетке висит банан, на полу ящик и обезьяна. Как обезьяне достать банан?". Иногда она усложнялась - на ящик клали ящик поменьше :) Тогда перед тем, как его сдвинуть, надо было додуматься, что сперва придется снять помеху. Итд.

В 70-80-е годы в СССР было немало также работ на эту тему. Так, система ПРИЗ решала любые задачи (в словесной форме записанные, на естественном русском языке! только спряжения вручную иногда приходилось подправлять) по геометрии и физике старших классов средней школы.

Если кому интересно - замечательная обзорная статья по направлениям искусственного интеллекта академика Поспелова (в Ворде):

www.raai.org/about/persons/pospelov/pages/aihistory.doc

Подобные системы характеризуются так называемой скоростью логического вывода - числу обрабатываемых фактов в секунду, на основании которых продвигается вперед решение задачи. Человек вряд ли способен больше 2-3 выводов в секунду делать. По задачке Эйнштейна можно судить - много ли там фактов?
А машина?

Сейчас в Пентагоне активно направлением логического вывода занимаются. Создают роботов со встроенными процессорами логического вывода. Их современная производительность - около сотни тысяч логических выводов в секунду :) По оценкам экспертов, этого уже вполне достаточно, чтобы сделать полноценный боевой робот, способный действовать в реальном времени! Да собственно, таких роботов немало уже. Их недостаток один - слабое умение ориентироваться на местности, для этого надо распознавать препятствия на пути автоматически. Вот здесь машины пока проигрывают. Временно, конечно...

Потому что есть еще и направления нейронных сетей и нечеткой логики. Это когда моделируется способ мышления человека - хотя логически мы мыслим очень медленно :) , но вот понимаем - распознаем знакомые и незнакомые вещи очень эффективно. Логический вывод здесь не поможет, здесь не левое, а правое полушарие мозга задействовано. Которое действует интуитивно, анти-логически.

А вы ленитесь творческие упражнения делать, только логические просите побольше. Куда больше-то? :) Все равно роботов логикой нам не обогнать. :) А вот за счет ресурсов правой части мозга - легко! Перехитрить, обмануть железяку, обыграть. Но временно это все, опять же...

Кстати, упоминавшийся академик Амосов еще в 70-е годы развивал направление в искусственном интеллекте не столько чисто логического рассуждения, сколько именно нечетких понятий, схожих с нейронными сетями. Великая интуиция... Ну мы еще вернемся к его работам.

Поэтому не забываем про творческие упражнения! :)

(из книги П. Феруччи "Кем мы можем быть").

КОРАБЛЬ

Представьте большой корабль, который отчаливает от берега. Ветер наполняет его паруса и он движется в открытое море.

Живо представьте, как вздымаются паруса и как нос корабля рассекает волны. Почувствуйте движущую силу ветра и услышьте шум волн.

Теперь представьте себя на корабле. Вы у штурвала, перед вами открытое море. Вода искрится на солнце, и вы едва различаете далекую линию горизонта, где сходятся море и небо.

Вы ощущаете запах моря и бьющий в лицо ветер. Руками вы чувствуете деревянную поверхность штурвала.

Вы поворачиваете штурвал то вправо, то влево, ощущая свою власть над кораблем. Сосредоточьтесь на своей способности направлять корабль в любом направлении. Управление им не требует от вас усилий, и каждое ваше решение тотчас воплощается в действие. Вы чувствуете, что корабль вам подвластен.

Осознавайте это ощущение власти, господства, выявляя различные его оттенки, а затем пусть образ угаснет.

КОЛОКОЛ

Представьте, что вы лежите на траве на лугу, окруженном горами. Почувствуйте мягкость травы, на которой лежите, вдохните аромат окружающих вас цветов. Посмотрите вверх, на небо.

Неподалеку находится небольшая деревенская церковь. Вы слышите, как ударил ее колокол. Его звук чист и приятен. Это ваш звук, звук, способный пробудить в вас неведомую, скрытую прежде радость.

Вы снова слышите удар колокола. На этот раз звук его сильнее. Почувствуйте внутренний отклик на этот звук. Осознайте, что он пробуждает ваши скрытые возможности. Теперь прислушайтесь к постепенному замиранию этого звука и уловите момент, когда он затихнет и наступит полная тишина.

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


Юмор, кстати, одно из лучших средств развития именно правополушарного мышления.

С сайта "Сисадмин тоже человек" http://sysadmin.mail.ru/:

Вот вы тут про юзеров, да про ламеров... как они достали, то.. сё.. Кто-то даже защищает их - мол, тоже люди и все такое... А как вам в течение 2 лет обучать барышню лет 35, как правильно вставлять дискетку в дисковод, а потом как правильно файл скопировать туда-сюда? А как вам - если таких барышень штук 5? А как вам вечное нытье их, мол, компы у них плохие - они работают на терминалках, где политиками порезано все - они даже заставку не могут поставить. А как вам - когда окно задвинули в правую сторону и элементов управления не видно. Чтоб закрыть его и распахнуть, полгода обьяснять что дабл-клик на "синенькой полосочке сверху" создаст незабываемый эффект! Они стукнутые винипухи - НЕ ХОТЯТ ничего делать. Если бы была хоть капля желания - они бы хотя бы запоминали все, что им говорят. Ну скажите - ну разве трудно понять, почему не прокатывает пароль на вход в систему, если в окне логона чужой логин! Поменяй же ты, чучело бухгалтерское, логин на свой и будет тебе счастье... Нет... это называется -"компьютер глючит"... Мой мозг коллапсирует..

joda: И я так пытаюсь делать - сделай сама, я тут, рядом стою и наблюдаю, если что - помогу, подскажу, но - сделай САМА !. И вот после таких ситуаций в офисе уже начинают говорить, что я не только хам, а что еще плохо выполняю свои обязаности... А про минимально необходимый уровень пользователя - все забыли ! Нету такого - есть тот, кто все сделает за них...

dezt_: нет еще.. одна знакомая сказала что видела 1 неуд..думаю это как раз секретуткин. через пару деньков все выяснится...

inarus: сто пудов ! Ctrl-C и Ctrl-V - это просто неподъемная задача для них. я уж не говорю о Alt-F4 и Ctrl-Esc.... А как они делают ярлычки на десктопе ? Это ж можно комедию снимать. А вот вчера - зовет вроде нормальная такая, нечасто достает - грит клава не работает. Я смотрю - точно.. Што за фигня думаю... поднимаю клаву, вытряхнуть мусор с неё (еще одна тема для разговора - грязные мышки и клавы), а с неё вода выливается !!! Аут...

не.. ну главное я понимаю что и я бываю неправ. Кое где перегибаю палку конешно. Ору на них как невменяемый... ну это уже давно перестал делать, потому что это бесполезно делать с женшинами. Гораздо лучше нудным тоном повторять что им нужно сделать. И видеть в накрашеных глазницах блики затухающего интеллекта и единственную живую мысль - "Когда же он закончит умничать, быстро все сделает и свалит...". А я стою на ней и как, бляха, в дет. садике - "Что нужно сделать, когда хочется покакать ? Ну.. ну же.. ну подумайте... ну 100 раз говорил... эх...горшок искать... да,да - горшок.. где горшок стоит ?... ну.. ну..." и т.д. Вот после таких разговоров говорят что я - хам. Может быть. Но как будто мне приятно от так каждый день чтото примитивное, на уровне амёбы разжевывать. Я ж пытаюсь, чтоб они поняли основу - для них же лучше, в конце концов !
Согласен что хамить нельзя, особенно женщинам, особенно в возрасте. Но видимо ниче с собой поделать не могу.. Даже девушки есть.. Но когда я к ним захожу в кибинет - это все. Клиника. Более тупых и ленивых существ я еще не видел. Я погружаюсь..

хотел добавить - вчера узнаю, что по офису ходит секретутка с бумагой - устраивает опрос "Как вы оцениваете работу нашего сисадмина ?". Знаете что добило ? Три варианта оценок - "неудовлетворительно", "удовлетворительно" и "хорошо"...

Из последнего - подходит к компу, заглядывает в экран и спрашивает: "А что это за удаленный помощник - кто его УДАЛИЛ?")))) Ну как тут не любить свою работу?

И последние что меня привело в трепет. На мой вопрос - в какой папке она хранила пропавшие документы ОНА С НЕВОЗМУТИМЫМ ВИДОМ ОТВЕТИЛА- В КОРЗИНЕ!!!!


Продолжаем задачки на логику. Во-первых, продолжаем старую линию.
В комнате стоит несколько (достаточно много :) коробок, в каждой из которых по 10 пар белых (то есть 20 единиц) чулок (или чулков? :) и по 10 пар черных (то есть всего по 40 единиц). Сколько чулок (единиц, поштучно) надо вытащить наугад (типа, с завязанными глазами), чтобы гарантированно получить:
а) 1 пару чулок любого (одного) цвета?
б) 1 пару белых?
в) 2 пары чулок?
г) 2 пары чулок, все одного цвета?
д) 2 пары различного цвета?
е) 2 пары белых чулок?
ж) 5 пар чулок?
з) 3 пары белых и 2 пары черных?
Под парой имеются в виду 2 чулка одного цвета.

Далее. Теперь будем также решать задачки с олимпиад по программированию. Зачем мелочиться, правда?

Дело в том, что основное качество программиста - это умение быстро и правильно, :) придумать алгоритм решения задачи. Закодировать его - дело десятое. Ну не десятое конечно, но и не первое. Потому что изучить синтаксис языка программирования можно очень быстро. Типы данных, переменные, оператор присваивания, условный, цикл - и все. Чего тут изучать-то?

А вот как формализовать задачу, как описать однозначный, без двусмысленностей, алгоритм пошагового ее решения, - вот что главное-то! Этого-то как раз кодировщики и не умеют... Им дали расписанный по шагам алгоритм, и все. Тут и думать не надо действительно.

А для Программиста это умение ГЛАВНОЕ.

Поэтому мы с этого занятия, будем учиться формализовывать для компьютера процесс решения задачи. Здесь вот что важно. То есть дана задача, вот такая (это с одной из олимпиад по информатике карельского г. Петрозаводска):

Фанта. Всю неделю бутылка Фанты стоила k рублей, а пустая бутылка стоила m рублей. Компания друзей, собравшихся в понедельник, располагала первоначальным капиталом в n рублей и купила на все эти деньги Фанту. Употребив все, они на следующий день сдали пустые бутылки, добавили сдачу с предыдущего дня и снова на все деньги купили Фанту. Данная процедура продолжалась каждый день, пока была возможность.
Напишите программу нахождения минимальной суммы n, при которой в пятницу друзьям будет, что употребить.

Программу пока мы писать не будем, а займемся алгоритмом решения. То есть эту задачу решать НЕ НАДО :)

А надо описать пошаговый процесс ее решения. Но не решения в плане получения конкретного результата, а в виде инструкции, максимально детальной, как бы для другого человека (компьютера на самом деле). Который потом возьмет, просто по этой инструкции, выполнит действия тупо :) и получит искомый результат. Но сам результат нас как раз не интересует. Нам надо инструкцию решения написать, понятно?

Ну вот для наглядности такой пример с Пермской олимпиады.

1. Даны два целых числа a и b. Определить, есть ли в сумме этих чисел две идущие подряд одинаковые цифры.
Например, для a = 100, b = 10 ответ "есть"; для a = 111, b = 10 ответ "нет".

Вот как может быть описан алгоритм ее решения.

1. Сложить a и b, результат запомнить в x.
2. Если число цифр в x меньше 2, то результат считать равным "нет", идти к п. 8.
3. В n занести число 2 (номер текущей анализируемой цифры).
4. Если цифра с номером n числа x равна цифре с номером n-1, то результат считать равным "есть", идти к п. 8.
5. Увеличить n на 1.
6. Если число цифр в x меньше n, то результат считать равным "нет", идти к п. 8.
7. Идти к п. 4.
8. Завершить работу.

Почему в n в п. 3 занесено число 2, а не 1, догадались?

Как-то так и решение задачи про Фанту надо записать.

Как и раньше, первым, приславшим правильные ответы на любую из задач (то есть двум максимум :) дается приз - возможность выбрать любой из платных курсов для бесплатного обучения (на условиях вступительного сочинения).

Программирование продолжаем в следующем занятии.


(c) 2004 Сергей Бобровский bobrovsky@russianenterprisesolutions.com

Школа программирования с нуля
http://russianenterprisesolutions.com/sbo/

Все предыдущие выпуски базового курса тут:
http://russianenterprisesolutions.com/sbo/base.htm

А перекачать их одним архивом можно отсюда:
http://russianenterprisesolutions.com/sbo/download/sbo.zip (650 кб)
(вместе с картинками, только они в тексте с абсолютными адресами; вручную просматривать придется).

 

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.prognull
Отписаться

В избранное