Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2 3  Все   Вниз
  Печать  
Автор Тема: Научите меня писать словесные алгоритмы программ и блок-схему  (Прочитано 118028 раз)
0 Пользователей и 10 Гостей смотрят эту тему.
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« : 26-10-2007 20:04 » 

Здравствуйте  это снова я, у меня такая проблема я уже выучил синтаксис языка С немного С++ основные операторы этих языков. Понял концепцию ООП но проблема в том что я не могу писать программы ну то есть как какие та маленькие на два три действия могу а большие программы не могу, я с начало не мог понять почему, пока не набрел на уроки программирования по С  и VB в частности на урок №9 и понял в чем проблема я не умею составлять словесный алгоритм программы и блок-схему, я понял, что пока я не научусь делать этого я не смогу писать программы. ПРОШУ у вас помощи, что делать для того чтобы развить умения составлять словесный алгоритм программы и потом писать блок-схему вед без этого как я уже говорил нельзя написать большую программу.
Литература по блок-схеме у меня есть, а что такое алгоритм я понимаю это так: Алгоритм это описание действий которые приводят к решению задачи, возможно, я не правильно понимаю что такое алгоритм, в общем ПОМОГИТЕ Помогите!   
Записан

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

de
Offline Offline
Пол: Мужской

« Ответ #1 : 27-10-2007 05:19 » 

Diskriptor, посмотри вот эту темку внимательно

https://forum.shelek.ru/index.php/topic,9824.0.html

Начиная с 3ей страницы и дальше как раз будет то, что тебе надо.

https://forum.shelek.ru/index.php/topic,9824.msg140748.html#msg140748
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #2 : 30-10-2007 21:16 » 

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


 Я прочитал до конца все тему по ссылке, что дал Джон и не тока и понял что
у меня такаяже проблема что и у FallenSoul проблема в том что я пропускал второй этап разработки программы тоест:Нема Нема Алгоритмического мышления, пожалуйста помогите его выработать описание словесного алгоритма, простых действий которые приводят к решению поставленной задачи


                                        Этапы разработки любой программы
1. Постановка задачи
2. Алгоритм выполнения программы
3. Реализация программы

1.1Постановка задачи, на этом этапе ставится задача, что должна делат програма Допустим программа Транслит должна переводить веденные слова с клавиатуры с русского на английский

2.1 Алгоритм выполнения программы на этом этапе пишутся одеяльные действия которые приводят к решению поставленной задачи например задача свалить с роботы
начало
проверить наличие шефа
если шефа нет можно сваливать
иначе делай вид что работаешь

если можно сваливать открывай дверь
если дверь закрыта достань ключь, открой замок и открой дверь
иначе открой дверь

в последнем примере сразу видно, что алгоритм можно упростить (оптимировать) тк открывание двери происходит в обоих случаях

те я могу записать

если дверь закрыта достань ключь, открой замок открой дверь ну и тд
                                                                                                                 

P.S. Алгоритм взять с топика FallenSoul

3.1 Реализация программы то ест какой язык выбрать для решения поставленной задачи, это не важно поставленную задачу можно решить на любом языке программировании просто одни языки лучше для одних задач а другие для других как сказали дело справочное
В то топики который дал прочитать Джон акцентируется внимание на алгоритмическом мышлении я правильно понял?

P.S.Пожалуйста, наберитесь терпения  когда будите мне помогать.


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


Я хочу сделать так выкладывать домашку на форум то ест задание а потом я его буду решат, так сказать от простого к сложному я не надеюсь на халяву я просто хочу развит в себе алгоритмическое мышление но в какой теми это делать в ПОМОГИТЕ НАУЧИТЬСЯ 3 или в Научите меня писать словесные алгоритмы программ и блок-схему я не знаю посоветуйте, как лудиши заделать пожалуста.
« Последнее редактирование: 28-11-2007 07:13 от RXL » Записан

Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
rumpelstilzchen
Тролль
*
ru
Offline Offline

« Ответ #3 : 16-11-2007 11:31 » 

Тут нет ничего сложного. Все дело в ассоциации и реализации этой ассоциации.
Возьми премеры из своей жизни. Чаепитие, к примеру. Разложи его на этапы.
Пример:
       1. Правой рукой взять кружку за ручку.
       2. Левой рукой взять чайник за ручку.
       3. Совместить. Улыбаюсь
Ну я думаю что понятно.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 16-11-2007 12:20 » 

Цитата: night_cat
Тут нет ничего сложного.
Кому как Улыбаюсь Это зависит от навыка мышления, сформировавшегося у человека с детства.

Например:
Цитата: Diskriptor
2.1 Алгоритм выполнения программы на этом этапе пишутся одеяльные действия которые приводят к решению поставленной задачи например задача свалить с роботы
начало
проверить наличие шефа
если шефа нет можно сваливать
иначе делай вид что работаешь

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

Автор сего алгоритма думает по схеме:
1) Обозначить цель.
2) Добиваться её достижения.

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

Вот он пишет:
1) Открывай дверь
2) Если дверь закрыта
2.1) то достань ключ, открой замок и открой дверь.
2.2) иначе открой дверь.

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

P.S. Я пока не касаюсь написания условий и прочих алгоритмических конструкций, которые в приведённом алгоритме также содержат серьёзные логические ошибки. Пока я говорю только о последовательности действий.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 16-11-2007 12:24 » 

Немного сложней - с циклом. Управление телевизором.

1. Включить (расписать подробно)

2. Взять пульт

3. Нажать на цифру 1

4. Пока не найду интересную передачу нажимать на "+"

5. Установить громкость (яркость...)

Diskriptor, ты сам можешь придумать кучу заданий из повседневной жизни.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #6 : 16-11-2007 12:29 » 

Димка, ну ты уж хочешь совсем перфекционизма.

Нельзя сначала открывать дверь, а потом проверять, закрыта она или нет.

Я думаю он хотел сказать - "попытайся открыть дверь" и результат действия "открыть" как раз является проверкой её состояния? Обычно сначала дверь толкают, чтобы выяснить закрыта она или нет? А иначе как? ИМХО - демагогия о нюансах.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 16-11-2007 20:07 » 

Цитата: Джон
Я думаю он хотел сказать - "попытайся открыть дверь" и результат действия "открыть" как раз является проверкой её состояния? Обычно сначала дверь толкают, чтобы выяснить закрыта она или нет? А иначе как?
Язык и чёткость мышления - это главное. Выполняется проверка запертости, а не закрытости двери. Это два разных состояния. Дверь может быть:
а) закрыта и заперта,
б) закрыта, но не заперта,
в) открыта и не заперта.

Закрытость двери видна, толкать тут ничего не надо. Толканием проверяется запертость двери. У Diskriptor'а же всё перемешано в кучу: "закрытость" понимается сразу в двух смыслах одновременно, следствием чего является нарушение порядка действий. Странно, что это почему-то не видят.

И выходит всё несколько иначе:
Код:
НАЧ
  ЕСЛИ Дверь закрыта ТО
    НАЧ
      Открыть дверь.
      ЕСЛИ Дверь не открылась ТО
        НАЧ
          Отпереть дверь.
          Открыть дверь.
        КОН
    КОН
КОН

Какие же тут "перфекционизм" и демагогия?
« Последнее редактирование: 16-11-2007 20:13 от dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #8 : 18-11-2007 23:01 » new

Какие же тут "перфекционизм" и демагогия?

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

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
rumpelstilzchen
Тролль
*
ru
Offline Offline

« Ответ #9 : 19-11-2007 11:35 » 

Вот еще хороший пример:

Ты когда-нибудь ходил босиком по мокрому песку?
Сделай мыслено 8 - 10 шагов.
Остановись.
Сделай в право или влево большой максмальный для тебя шаг с прыжком.
По кругу вернись назад в начало шагов.
Посмотри вниз.
Увидь следы на песке и представь как ты шел.

То как ты шел это реализация ассоциации.
То как ты представил свой ход это ассоциация.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 19-11-2007 12:32 » 

Цитата: Джон
Ну давай ещё тогда введём "запёртость на замок" "запёртость на щеколду", "запёртость на крючок" и кучу других угодных лично тебе определений.
Не я писал про ключ в изначальном варианте. Раз автор ввёл ключ, то и соответствующие состояния нужно выделить. Не было бы ключа, достаточно было бы "закрытости".
Код:
ЕСЛИ Дверь закрыта ТО Открыть дверь.
И больше ничего не надо громоздить.

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

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #11 : 26-11-2007 22:05 » 

                       
Попробую составит алгоритм

                       
Алгоритм Заварки чая
1.   Взять чайник с стола
2.   Подойти к крану 
3.   Снят крышку с чайника
4.   Открутит кран чтобы побежала вода
5.   Подставит чайник таким образом чтобы  в него попадала вода до нужного уровня
6.   Закрываем кран чтобы вода не текла
7.   Закрываем крышку чайника
8.   Ставим чайник на газовую  плету
9.   Бере коробок со спичками
10.   Открываем коробку со спичками
11.   Берем спичку
12.   Зажигаем спичку
13.   Открываем газовый кран на газовой печки
14.   Подносим загоревшуюся спичку к конфорки таким образом чтобы газовая конфорка загорелась
15.    Ждем пока вода закипела в чайнике
16.    Выключаем газ
17.   Подходим к серванту
18.   Откроем двери серванта
19.   Берем кружку из серванта
20.   Закрываем двери серванта
21.   Подходим к столу
22.   Ставим чашку на стол
23.   Подходим к полке где лежать ложки
24.   Берем маленькую ложку (десертную)
25.   Подходим к столу где стоит кружку
26.    Открываем крышку  сахарницу
27.   Насыпаем сахар в врушку сколько необходима сахара
28.   Открываем упаковку с одноразовом чаем
29.   Берем один одноразовый  пакетик с упаковки с чаям
30.   Ложем его в кружку с сахаром
31.   Подходим к газовой плите берем чайник с закипевшей водой
32.   Подходим у столу где стоить кружка с сахаром и пакетиком одноразазового чая
33.   И заливаем чашку  кипятком из чайника
34.   Размешиваем сахар
35.   Подойти к полки с крышками взять крышку
36.   Накрыт крышкой чтобы чай настоялся
37.   Снимаем крышку
И наконец-то пьём чай
так или не так?
Вот нашел по алгоритмизации (http://pripit.perm.ru/oz/Algor/algoritmika-lesson1.htm) вроде то что надо. Прочетаю урок и задам вопросы.
                         
« Последнее редактирование: 26-11-2007 22:08 от Diskriptor » Записан

Единственный способ, научится программировать на каком либо языке программирования, это писать на этом языке программы.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 27-11-2007 04:27 » 

я бы плиту сначала поджигал, а потом чайник ставил Улыбаюсь

и ещё надо инициализировать объекты -
объект "чайник" стоит на столе,
"кружка" стоит на столе,
сахар стоит на полке и т.д.
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 27-11-2007 08:53 » 

круто!
в самом начале забыли проверить наличие воды в чайнике Улыбаюсь
Думаю, что такой словесный понос алгоритм:
  не читабелен (к концу уже забываешь что хотели сделать)
 
Задача - выпить чаю.
1. Налить воды
2. Закипятить
3. Заварить
4. Пить.
Надеюсь понятно?
теперь раскрываешь действия
1.1. Взять чайник
1.2. Проверить наличие необходимого количества воды, если воды достаточно - закончить литье воды
1.3. Наливать воду, пока не выполнится условие 1.2.
1.4. Конец налития воды

и т.д.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #14 : 27-11-2007 11:17 » 

Diskriptor, ещё хочу добавить. Много полемики. Команды должны быть простыми.

>> 1.   Взять чайник с стола

Почему именно со стола? А если он на плите? Ну и тд...

>> 2.   Подойти к крану

В этом случае надо определить условия нахождения возле крана. Иначе программа не знает к какому крану?


>> 3.   Снят крышку с чайника

Обычно если ты определил объект, то работаешь только с ним. Те у тебя не участвуют кастрюли, поэтому уточнение "с чайника" - лишнее

>> 4.   Открутит кран чтобы побежала вода
>> 5.   Подставит чайник таким образом чтобы  в него попадала вода до нужного уровня

Это уже целые подпрограммы с кучей действий и УСЛОВИЙ.

>> 6.   Закрываем кран чтобы вода не текла

Тоже самое. И ещё про что Димка говорил. Почему ты говоришь "чтобы вода не текла"? Ты указываешь цель для действия. Необходимо формулировать условие окончания продолжительного действия или наоборот условия повторения действия.

Примерно так:

п.6 - (начальные условия: чайник под краном, вода течёт)

6. поворачивать вентиль влево до тех пор пока вода течёт.

Те я определил условие "наличие текущей воды". Пока это условие выполняется - ИСТИНА - выполняй действие.

Можно определить другое условие - "вода перестала течь". В этом случае я уже не могу его напрямую его использовать. Но я могу выполнять действие пока это условие НЕ выполнилось.

Сравни вариант

6. поворачивать вентиль влево до тех пор пока вода НЕ перестанет течь.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #15 : 27-11-2007 12:26 » 

Раз уж в такие подробности вдаваться, то:
Цитата: Diskriptor
14.   Подносим загоревшуюся спичку к конфорки таким образом чтобы газовая конфорка загорелась
15.    Ждем пока вода закипела в чайнике
Полезно также потушить спичку после розжига плиты Улыбаюсь.

Цитата: Diskriptor
26.    Открываем крышку  сахарницу
27.   Насыпаем сахар в врушку сколько необходима сахара
28.   Открываем упаковку с одноразовом чаем
29.   Берем один одноразовый  пакетик с упаковки с чаям
30.   Ложем его в кружку с сахаром
А закрывать кто будет сахарницу и пачку с чаем? Улыбаюсь Вот кран, чайник и газ ты закрыть не забыл.

С сахарницей ещё не страшно. А вот если ты в программе откроешь файл и забудешь его закрыть после работы или выделишь память и забудешь её освободить - это плохо.

Такие вещи обычно пишутся сразу. Написал
Код:
Открыть
Закрыть
и только потом между ними вставляешь шаги по выполнению работы с ресурсом.
« Последнее редактирование: 27-11-2007 12:31 от dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #16 : 27-11-2007 12:44 » 

dimka, Улыбаюсь) 5+

Offtopic:
С меня шеф постоянно прикалывается, если получается, что я при нем простые тексты в ворде или ещё где набираю - я даже при простом наборе текста скобки сразу закрываю.
Поставлю в угол.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #17 : 27-11-2007 15:14 » 

я , кстати, тоже  , даже в простом тексте сначала напишу "()"  , потом шаг назад - и пишу текст , в конце клавишу End (ну или что требуется) Улыбаюсь)
Записан

Diskriptor
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #18 : 27-11-2007 22:09 » 

Цитата
и ещё надо инициализировать объекты -
объект "чайник" стоит на столе,
"кружка" стоит на столе,
сахар стоит на полке и т.д.
Алексей1153++, Согласен буду так старится делать.
Алексей, а если, например алгоритм сходит за хлебом то тогда как, я дома, а хлеб в магазине та инициализировать объекты.


night_cat,
Цитата
В коде набор функций. Похожих. В результате неоптимизированно. Сделай с шаблонами классов.
Подсказка:
          Создай действие (одно). И объекты действий (по шаблону). Действие оптимизированно должно быть по временным параметрам.
приведи пример для наглядности.


Sla, Согласен, из замечания Алексея состояния чаинка надо было сразу инициализировать чайник стоит на столе пустой так?
Цитата
Задача - выпить чаю.
1. Налить воды
2. Закипятить
3. Заварить
4. Пить.
Надеюсь понятно?
теперь раскрываешь действия
1.1. Взять чайник
1.2. Проверить наличие необходимого количества воды, если воды достаточно - закончить литье воды
1.3. Наливать воду, пока не выполнится условие 1.2.
1.4. Конец налития воды

и т.д.
Sla, Смотри вот ты пишиш
Цитата
1.2. Проверить наличие необходимого количества воды, если воды достаточно - закончить литье воды
Как можно закончит литье если мы его еще не начинали тоесть.Мы на этом итапи всего лишь провераем наличие воды в чайнике, а если в нем воды достаточно, то о каком прекращение лите воды может идти речь если мы его не начинали или я не так понел.


Джон, С замечаниями согласен суд замечания понял хотя поначалу буду ошибется и за не опытности.


dimka,
Цитата
А закрывать кто будет сахарницу и пачку с чаем?  Вот кран, чайник и газ ты закрыть не забыл.
Тоже согласен опядже по не опытности забыл закрыть.
« Последнее редактирование: 28-11-2007 07:11 от RXL » Записан

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

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 28-11-2007 08:12 » 

Diskriptor, ты не внимательно прочитал мой пункт 1.2
Если в чайнике уже вода есть - закончить лить воду, это также означает, что ее не надо наливать.
Наливание воды - это некий процесс, ни как не связанный с физическими действиями.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 28-11-2007 08:32 » 

1.2.1 открыть чайник
1.2.2 если чайник не полон - открыть воду и подставить чайник под струю
1.2.3 пока чайник не полон , выполнять 1.2.3
1.2.4 закрыть воду, если открыта
1.2.5 закрыть чайник
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 28-11-2007 10:02 » 

1.2.1 открыть чайник
1.2.2 если чайник не полон
      1.2.2.1 налить воды в чайник - открыть воду и подставить чайник под струю
1.2.3 закрыть чайник

Далее процесс налития воды
ведь воду можно наливать из крана, из бутылки, из ведра и т.д.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #22 : 28-11-2007 13:15 » 

Цитата: Алексей1153++
1.2.1 открыть чайник
1.2.2 если чайник не полон - открыть воду и подставить чайник под струю
1.2.3 пока чайник не полон , выполнять 1.2.3
1.2.4 закрыть воду, если открыта
1.2.5 закрыть чайник
Сам прочитай, что ты написал Улыбаюсь

Код:
Открыть чайник.
ПОКА НЕ Чайник полон? ТО
 НЦ
  Открыть воду.
  Подставить чайник.
 КЦ
Закрыть воду.
Закрыть чайник.
Ставлю пиво - на второй итерации цикла твой алгоритм завалится Улыбаюсь

Неужели нормально не написать? Подумай, как такие алгоритмы можно рассматривать в качестве "учебно-методического материала" для начинающих?
Код:
НАЧ
 Открыть чайник (1).
 ЕСЛИ НЕ Чайник полон?
 ТО
  НАЧ
   Подставить чайник (2).
   Открыть воду (3).
   ПОКА НЕ Чайник полон?
    НЦ
     Лить воду.
    КЦ
   Закрыть воду (3).
   Убрать чайник (2).
  КОН
 Закрыть чайник (1).
КОН
(Цифрами обозначены пары соответствующих действий по инициализации/закрытию.)
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 28-11-2007 15:29 » 

dimka, я прочитал, не вижу, где что завалится ? )

Код:
открыть чайник; //1.2.1

if(! чайник полон) //1.2.2
{
 открыть воду и подставить чайник под струю
}

//1.2.3
while(! чайник полон)
{
  //наливается порция воды;
}

if(вода открыта) //1.2.4
{
   закрыть воду;
}

закрыть чайник; //1.2.5
Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #24 : 28-11-2007 18:59 » 

Алексей1153++, значит померещилось Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #25 : 29-11-2007 10:12 » 

Если уж всё-равно перешли к псевдокоду предлагаю использовать объекты

кран.Открыть
если чайник.Полный кран.Закрыть

ну или как-нить так
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #26 : 29-11-2007 10:27 » 

тогда так

кран.Открыть()
если (чайник.Полный()) кран.Закрыть()

Улыбаюсь
Записан

Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #27 : 29-11-2007 10:52 » 

что вы к крану привязались? Воду можно наливать и другим способом.

Объект_наливающий_воду, хм, как это правильно, виртуальные классы, кран, бутылка, ведро, ручей...
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Чудак
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #28 : 29-11-2007 11:32 » 

Sla, если вводить Объект_наливающий_воду, то придётся учесть возможность наличия нескольких таких объектов, а значит придётся прописывать выбор Объёкта_наливающего_воду. Вопрос в том - по какому принципу? По чистоте, по месту расположения, по удобству использования или по нескольким сразу. Довольно объёмно получается.
Записан

- Бригадир, лопата сломалась.
- Выбрось её, и обопрись на кирку.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #29 : 29-11-2007 11:44 » 

Объемно, но универсально.
Будет достаточно привязать и описать поведение объекта_непосредственно_наливающего_воду
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1] 2 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines