Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "[C++|Delphi|Java] Последовательность действий.", алгоритм написания программы 
:(
    Опции темы
studentka1
Дата 24.2.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 24.2.2008

Репутация: нет
Всего: нет



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

Заранее огромное спасибо
PM MAIL   Вверх
mr.Anderson
Дата 24.2.2008, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



 smile 

Ого. Интересное задание. smile Общий алгоритм, я думаю, такой:

1. Внимательно читаем условие.
2. Выясняем, что требуется сделать (цель программы).
3. Делаем нисходящую детализацию, уточняя список действий, которые должна выполнять программа для достижения поставленной цели.

Вот и все, в общем-то. Примерчик на задаче (недавно где-то проскальзывала) сейчас приведу.

Задача.
Найти и вывести все простые делители (включая единицу) данного положительного целого числа.

Рассуждение.
1. Условие прочитали и поняли. Если не знаем, что такое простые числа или (не дай Бог) делители - глядим справочники по элементарной математике.
2. Целью является в данном случае само условие (обычно это не так, условие в задачах бывает достаточно пространным, и цель приходится выделять из условия самостоятельно).
3. Детализируем задачу - описываем шаги, которые необходимо пройти для достижения поставленной цели:
   3.1. Произвести поиск делителей данного числа (всех, в том числе не являющихся простыми числами).
   3.2. Выделить из найденных делителей те, что являются простыми.
4. Дополнительная детализация.
   4.1. Фрагмент кода, определяющий, является ли число простым, лучше вынести в логическую функцию.
   4.2. Поиск делителей производить от двух до половины числа +1 (все числа больше половины исходного +1 заведомо не являются делителями). Это уже в целях оптимизации.
5. Проверка частных случаев.
   5.1. Первым делом проверить, является ли исходное число простым. Тогда сразу выводим делители - единицу и исходное число - и завершаем работу программы.
   5.2. Лишний раз перечитываем условие: число положительное и целое, значит, не может быть отрицательным или равным нулю, плюс, это может быть любое число от единицы и выше (в пределах максимального допустимого значения целого типа, поскольку иное в задаче не оговорено).

По произведенному анализу можно написать код.



Все. smile Надеюсь, помог.

Это сообщение отредактировал(а) mr.Anderson - 24.2.2008, 14:32


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
studentka1
Дата 24.2.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 24.2.2008

Репутация: нет
Всего: нет



Да, помог и очень  smile . Спасибо большое
PM MAIL   Вверх
mr.Anderson
Дата 24.2.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



Та не за что. smile Обращайся.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0888 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.