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

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

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

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

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

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

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


« Ответ #31 : 29-11-2007 12:00 » 

зачем всё универсалить в этой задаче ? Улыбаюсь Человек поставил цель - написать алгоритм приготовления чая , при чём вода греется на ОГНЕ, а перед этим наливается из КРАНА в ЧАЙНИК
если приспичит, можно объект переписать потом , это не сложно
Записан

Чудак
Помогающий

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

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

Алексей1153++, а по моему нормально. Алгоритм постепенно усложняется, у человека есть пример постепенного усложнения на основе одного действия. В этом случае легче всего отследить вносимые изменения. В конце концов можно взять процесс отваривания куриного яйца и начиная с простого, постепенно усложнить алгоритм, сверяя свои действия с примером заваривания чая. Освоив "кухонные" примеры, человек легко перейдёт на другие.
Записан

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

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

« Ответ #33 : 29-11-2007 15:38 » 

Если уж вы "кран" обобщили до "источника", то давайте и "воду" обобщим до "жидкости", и "чайник" до "ёмкости". Чего мелочиться-то? Улыбаюсь

Код:
ПОКА НЕ Ёмкость.Пуста()
 НЦ
  Жидкость = Источник.Вылить()
  Ёмкость.Налить(Жидкость)
 КЦ

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

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

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


« Ответ #34 : 29-11-2007 16:45 » 

вернитесь на землю, человек чаю хочет Отлично Отлично
Записан

Чудак
Помогающий

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

« Ответ #35 : 29-11-2007 17:05 » 

Хотите чаю - смотрите выше. Я ФЛУДЕР!!!
Записан

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

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

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

Sla, Не я читал внимательно просто стараюсь мыслит упорядочиными действиями, вот мне и показалось что тут ошибка.
Записан

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

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

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

Цитата
а по моему нормально. Алгоритм постепенно усложняется, у человека есть пример постепенного усложнения на основе одного действия. В этом случае легче всего отследить вносимые изменения. В конце концов можно взять процесс отваривания куриного яйца и начиная с простого, постепенно усложнить алгоритм, сверяя свои действия с примером заваривания чая. Освоив "кухонные" примеры, человек легко перейдёт на другие.

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

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

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

WWW
« Ответ #38 : 30-11-2007 07:29 » 

Думаю, что Димка прав. насчет Емкость -Жидкость - Источник
в данной ситуации, хоть и хочется чаю, но чай нужно пить хороший, а еще правильно его заварить.

Ведь после того как налили Жидкость в Емкость, ее нужно нагреть Нагревателем.
Потом - появляется Рецепт
Потом - Процесс пития

Алексей1153++, , получается некий универсальный объект - его переписывать не надо, достаточно переписать/написать другие объекты.

Записан

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

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

« Ответ #39 : 30-11-2007 10:14 » 

На самомо деле всё гораздо проще. Проблемы возникли исключительно из-за того, что нет точного определения объектов. Вот мы говорим "хотим попить чай". А что такое "чай"? Это вода? Заварка? Чайный лист? Чайный лист в воде? А если в холодной воде?
Мы, подразумевая чай, наливаем спокойно воду в чайник и в какой-то момент начинаем считать её чаем. Мы свободно оперируем прилагательными и наречиями. Словом всем тем, что с точки зрения программы абсолютно неопределённая материя.
Необходимо пользоваться только существительными (объекты) и глаголами (функции).

Поэтому Димка абсолютно прав в том, что надо абстрагироваться. В противном случае надо вводить чёткие определения объектов.

те общий алгоритм:

Источник
Емкость
Нагреватель
Жидкость1
Жидкость2
Компонент
Человек

Жидкость1 = Источник.ДатьЖидкость()

Ёмкость.Получить(Жидкость1)

Нагреватель.Нагреть(Ёмкость)

Ёмкость.Добавить(Компонент)

Жидкость2 = Ёмкость.ДатьЖидкость()

Человек.ПитьЖидкость(Жидкость2)

Получаем программу для приготовления чая, коффе, компота, киселя и тд в зависимости от свойства объекта Компонент.
« Последнее редактирование: 30-11-2007 10:16 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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
Пол: Мужской

« Ответ #40 : 30-11-2007 12:07 » 

Цитата: Джон
В противном случае надо вводить чёткие определения объектов.
По секрету скажу, что есть теория нечётких объектов, нечёткого наследования из чего следует нечёткое объектно-ориентированное программирование Улыбаюсь В основе лежит нечёткая логика (fuzzy logic) и теория нечётких множеств.

Цитата: Джон
Получаем программу для приготовления чая, коффе, компота, киселя и тд в зависимости от свойства объекта Компонент.
Даже в АСУ химического производства можно куда-нибудь встроить Улыбаюсь
« Последнее редактирование: 30-11-2007 12:11 от dimka » Записан

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

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

« Ответ #41 : 03-12-2007 23:18 » 

Давайте дальше, какие еще замечания к алгоритму
Записан

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

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

« Ответ #42 : 04-12-2007 05:49 » 

Дык, теперь твоя очередь. С учётом вышеуказаных замечаний.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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
Пол: Мужской

« Ответ #43 : 05-12-2007 00:01 » 

Хорошо в четверг перепишу вес алгоритм заварки чая, с исправлениями.
Записан

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

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

« Ответ #44 : 18-12-2007 02:57 » 

Завтра постараюсь оптимизировать алгоритм заварки чая.
Записан

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

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

« Ответ #45 : 19-12-2007 01:05 » 

Цель - выпить чаю
Инициализация объектов
1. Чайник стоить на столе в кухни
2. Кружка в серванте и ложка в тоже серванте
3. Сахар и заварка в стоят на стеле
4.  ложка в  тоже  серванте
5 Спички на столе возле газовой плиты

Действие основные
1. Налить воды
2. Закипятить
3. Набрать воды
3.1 Заварить
4. Пить.

Под пункты
1.1.   Подойти к столу
1.2.   Снять крышку
1.3.   Проверит достаточно ли воды для заварки чая
1.4.   Закрыть крышку
1.5.   Если да то 2.закипятить 3 иначе набрать воды
2.1 Взять чайник со стала
2.2 Подойти к газовой плате
2.3 Поставить на плиту
2.4 Берем коробок со спичками
2.5.   Открываем коробку со спичками
2.6.   Берем спичку
2.7.   Зажигаем спичку
2.8.   Открываем газовый кран на газовой печки
2.9 Зажигаем конфорку
3.1 Взят чайник со стала
3.2 Подойти к крану
3.3 Снять крышку
3.4 Открыть кран
3.5 Набрать воды
3.6 Закрыть крышку
Пока вода нагревается
3.1 1  Подходим к серванту
3.1.2.  Откроем двери серванта
3.1.3 Берем кружку  из серванта  и ложку
3.1.4 Закрываем двери серванта
3.1.5 Подходим к столу
3.1.6   Ставим чашку, ложем ложку  на стол
3.1.7.   Открываем крышку сахарницу
.3.1.8 Насыпаем сахар в крошку сколько необходима сахара
3.1.9 Закрываем крышку сахарницы
3.1.10.   Открываем упаковку с одноразовом чаем
3.1.11 Берем один одноразовый  пакетик с упаковки с чаям
3.1.12 Закрываем пачку с чаем
3.1.13.   Ложем его в кружку с сахаром
3.1.14.   Подходим к газовой плите
  Закрываем конфорку       
 Берем чайник с закипевшей водой
3.1.15   Подходим у столу где стоить кружка с сахаром и пакетиком одноразазового чая
3.1.16.   И заливаем чашку  кипятком из чайника
3.1.17.   Размешиваем сахар
3.1.18   Подойти к полки с крышками взять крышку
3.1.19   Накрыт крышкой чтобы чай настоялся
3.1.20   Снимаем крышку
4. Пем чай

Пока без псевдо кода, какие есть замечания изменение коснулось:
1. Инициолезировал объекты
2. Закрыл сахарницу и пачку чая
3. Разбил на основные и подпункты
4. Постарался убрать не нужные действия
« Последнее редактирование: 19-12-2007 04:46 от Алексей1153++ » Записан

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

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

« Ответ #46 : 19-12-2007 03:52 » 

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

- Бригадир, лопата сломалась.
- Выбрось её, и обопрись на кирку.
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #47 : 19-12-2007 04:45 » 

Diskriptor,  я тебе подсветил ошибки в словах (орфографию не трогал, хотя там тоже косяки есть) - глянь, как пишутся слова

а вообще - для проверки копируй текст в ворд , так даже быстрее запомнишь , как что пишется
« Последнее редактирование: 19-12-2007 04:59 от Алексей1153++ » Записан

Sla
Модератор

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

WWW
« Ответ #48 : 19-12-2007 07:21 » 

Наша песня хороша -начинай с начала
Цитата
1. Чайник стоить на столе в кухни
2. Кружка в серванте и ложка в тоже серванте
3. Сахар и заварка в стоят на стеле
4.  ложка в  тоже  серванте
5 Спички на столе возле газовой плиты
Какой-то пункт лишний...
Иправь.
Записан

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

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

« Ответ #49 : 19-12-2007 13:29 » 

Что-то мне подумалось, что блок-схемы - это полезное изобретение для неопытных Улыбаюсь
Записан

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

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

« Ответ #50 : 21-12-2007 01:53 » 

За орфографию простите, буду по внимательней.
Записан

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

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

« Ответ #51 : 21-12-2007 01:56 » 

Sla, Четвертый пункт лишний.
Записан

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

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

WWW
« Ответ #52 : 21-12-2007 08:49 » 

допустим, с начальными условиями определились

Действие основные
1. Налить воды
2. Закипятить
3. Набрать воды
3.1 Заварить
4. Пить.

Чем отличается Налить от Набрать?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
sss
Специалист

ru
Offline Offline

« Ответ #53 : 21-12-2007 09:18 » 

Блин, Diskriptor это исскуственный разум, зародившийся в недрах интернет и обучающийся.

Извините насмотрелся Терминатор-3...
Записан

while (8==8)
Вахмурка
Помогающий

ru
Offline Offline
Пол: Мужской
Программист


WWW
« Ответ #54 : 21-12-2007 21:07 » 

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


Не очень понятно зачем это надо. В книгах для начинающих очень любят приводить примеры псевдокода, но проблема в том что очень часто процесс перевода задачи в псевдокод имеет сложность сопоставимую с написанием самой программы. Лучше для анализа использовать какие ни быть case – средства. Правда у меня на работе для этого приспособили VISIO, но это у нас у людей такой «уровень».
Записан

Программа – это мысли спрессованные в код.
Diskriptor
Опытный

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

« Ответ #55 : 22-12-2007 03:17 » 

Sla, Третий пункт лишний надо было, написать если вода в чайнике есть, то переходим к пункту №2 иначе выполнить пункт №1(не внимательный я)



Записан

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

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

« Ответ #56 : 22-12-2007 03:22 » 

Вахмурка, Понятно с псевдо кодом заморачиватся  не буду  лучше в словесном алгоритме пребывать как ты и сказал case, if,else, итд.
Записан

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

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

« Ответ #57 : 02-01-2008 15:37 » 

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

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

ru
Offline Offline
Пол: Мужской
Программист


WWW
« Ответ #58 : 03-01-2008 14:29 » 

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

Программа – это мысли спрессованные в код.
RXL
Технический
Администратор

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

WWW
« Ответ #59 : 03-01-2008 15:18 » 

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

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines