не поможете?

Автор smoke, 13 июня 2010, 11:06:48

0 Пользователи и 1 Гость просматривают эту тему.

smoke

Ребят,можете помочь с заданием? программирование не учил пока,а сделать нужно,вот подумал,может здесь кто сможет помочь.Задание несложное.Жду отзывов,если они будут :)
В следующий раз, когда ты подумаешь что совершенен, попробуй ходить по воде...

Human-oid

Цитата: smoke от 13 июня 2010, 11:06:48
Ребят,можете помочь с заданием? программирование не учил пока,а сделать нужно,вот подумал,может здесь кто сможет помочь.Задание несложное.Жду отзывов,если они будут :)
очень подробно объяснил что нужно.
ребята помочь можем, програмирование учили разное. хз какое тебе надо, вот подумали, а сделать то тебе надо. задание хоть и не сложное, но отгодать что нужно сложно. ждём заданий если они будут :)

smoke

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

smoke

Прям на примитивной программке можно сделать,вот например.
А еще могли бы книгу по Pascal посоветовать? которая содержит основы,и была бы не больно большая по объему
В следующий раз, когда ты подумаешь что совершенен, попробуй ходить по воде...

Human-oid

Цитата: smoke от 13 июня 2010, 11:22:47Представить подход,метод и технологию создания конкретного программного продукта. (подход брать процедурный или объектно-ориентированный).
Цитата: smoke от 13 июня 2010, 11:32:31Прям на примитивной программке можно сделать,вот например.
программу понял, чо зделать надо - нет

Цитата: smoke от 13 июня 2010, 11:32:31А еще могли бы книгу по Pascal посоветовать?
ищи книги автора Фаронова

smoke

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

AntonFox

#6
Качай:
http://tp7.info/ebook.php
http://pascal-books.narod.ru/ebooks.htm

А вот это чтоб понять о чем твой вопрос
http://comp-science.narod.ru/Bilet/bil6.htm

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

А в программке нет ни процедур, ни объектов - чистый Паскаль и 5 переменных.

Кароче сначала хоть какой-то пример приведи/раздобудь у одногруппников - тогда может станет ясно что тебе надо

А пока вот тебе твоя программка с камментами и зачмечаниями
Кто цяй не пьет, тот цьмо. (с) Конфуций<br />...уж лучше слыть нулями и стебаться, чем гением не быть, но называться! © bob@ kрnemо.ru<br />

smoke

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

AntonFox

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

В принципе ВСЕ программы пишутся по одной и той же схеме:
1. Формулировка задачи
2. Построение алгоритма (черновик с крупными задачами)
3. Построение подробного алгоритма с проработкой мелких деталей
4. Обработка алгоритма с выделением повторяющихся элементов в отдельные процедуры и функции
5. написание программы
6. Отладка программы

В зависимости от сложности и размера задачи пункты 2-4 могут выполнятся в голове. Часто 4 пункт выполняется уже после написания программы, для уменьшения размера.
Вот в моем понимании это можно назвать технологией написания программы.

Методы и подходы - тут загвоздка. Сначало надо понять что под этим понимаешь ты и твой препод. У меня вот был случай, когда препод на зачете спросил "какие вы знаете текстовые процессоры?" Вся группа молчала, потому как не понимала что он имеет в виду. Затем выяснили что это  текстовые редакторы (Ворд и прочие с широким набором функций).
Открой свои лекции и найди описания терминов "метод" и "подход", напиши их сюда.
Кто цяй не пьет, тот цьмо. (с) Конфуций<br />...уж лучше слыть нулями и стебаться, чем гением не быть, но называться! © bob@ kрnemо.ru<br />

smoke

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

smoke

Общий порядок проектирования ПО включает в себя следующее:
1) выбор,реализация подхода к проектированию;
2) разработка,реализация метода проектирования;
3) разработка и реализация получения реального ПО.
  При разработке ПО (имеем ввиду отдельную программу как частный случай ПО)  используют структурный или объектно-ориентированный подход.
  В рамках структурного подхода ПО рассматривается как система. такую систему можно условно разделять на составные части,фрагменты,процедуры,подпрограммы.  Эти составные части способны решать отдельные подзадачи , а их объединение дает общую программу и соответственно общий результат решения поставленной задачи, т.е. структурный подход базируется на структурном анализе программы с построением ее функциональной модели,функциональной схемы.
     Функциональная модель отображает структуру моделированного объекта,т.е. отражает производимые операции и связи между ними.Отображение производимых действий,операций на схеме выполняется в форме звеньев.Таким схемным звеньям придаются названия отображаемых операций,а так же придаются входящие и выходящие из них дуги.Такие дуги отображают следующее:
- входную информацию,поступающую на обработку в данный операционный блок программы
- выходную информацию,как результат обработки в данном блоке
- управляющую информацию,в кот. определяются условия информационной обработки.(см. рис. 1)
  Посредством дуг,придаваемых рассматриваемому звену,можно указывать также на аппаратурный,человеческие факторы,служащие для проведения изобр-ой операции.
Механизм,моделирующий передачу данных из одних частей информационного объекта в другие,м.б. представлены диаграммами потоков данных(ПД).
  Эти диаграммы способны однозначно представлять внешние объекты,источники и приемники обрабатываемых данных,ход информационных процессов обработки данных ,поступающих от выходов одних операций ко входу других , или поступающих на хранение в информационные накопители.
Информационные потоки на диаграммах обычно изображаются именованными стрелками ,ориентация которых указывает направление движения информации.
Назначение информационного процесса состоит в получении выходных потоков из входных в соответствии с задаваемыми действиями.
  Каждый информационный процесс имеет собственный номер,что позволяет при необходимости ссылаться на него.
Компоненты диаграммы ПД представлены на рис.(см. рис. 2)
Звено хранилища (накопителя) отображает данные,которые будут сохраняться в памяти между процессами. Внешняя сущность-это объекты,являющиеся внешними по отношению к моделируемому объекту (т.е. источники или приемники данных).
Звено внешней сущности на диаграмме сопровождается показом условной тени.таковы существенные признаки,связанные со структурным подходом к разработке ПО.

   В рамках метода проектирования ПО предполагается использование следующих компонентов:
1. Основа метода,определяющая последовательность и правило построения моделей действия ПО.
2. Критерий оценки результатов моделирования ПО.
3. Форма выражения принятых методических процедур,базой,которой могут служить функциональные схемы.диаграммы.
Технология-это процесс изготовления ПО. Его можно рассматривать как совокупность взаимосвязанных операций ,направленных на создание данного ПО.здесь конечным продуктом выполнения заданных технологических операций является информация ,представленная заинтересованному пользователю.Таким образом указанная совокупность операций образует информационную технологию (ИТ).Средством реализации ИТ выступает информационная система.Структурное звено операции из технологической последовательности получения ПО показано на рис.3.
Реализацию технологий программирования могут обеспечивать такие группы информационных средств:
-Средства для создания прикладных программ при наличии тех или иных исходных данных.
-Средства для создания ИС
Средства для создания прикладных программ могут быть следующими:
1. Локальными,обеспечивающие выполнение отдельных работ программирования
2. Интегрированные- обеспечивающие выполнение комплекта работ по программированию.
  Средства для создания ИС обеспечивают автоматизацию проектирования программной продукции,относящиеся к области  разработки и практического использования ИС.
В следующий раз, когда ты подумаешь что совершенен, попробуй ходить по воде...

smoke

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

smoke

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

smoke

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

ScaN

[offtop]Все эти "ИТ" высосаны из пальца, бессмысленны и вредны. Нахера забивать молодым людям голову ерундой, если они программу составить не могут?[/offtop]

ScaN

[offtop]И вообще, вместо этого безобразия лучше бы научили парня глаголы спрягать.[/offtop]

smoke

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

smoke

С русским,слава Богу,у меня вроде все хорошо:) Не со своих лекций писал,лектор окончания проглатывает,а потом фиг разберешь что к чему :)
В следующий раз, когда ты подумаешь что совершенен, попробуй ходить по воде...

AntonFox

Вот тебе к примеру программа для расчета квадратного корня.
Используя структурный подход делаем функции для расчета детерминанта и двух корней
Для функции детерминанта входной информацией будут коэффициенты a,b,c, а выходной информацией - само значение детерминанта.
Для расчета корней соответственно входная инфа - коэффициенты и детерминант, выходная - корни уравнения.

Поскольку расчет корней идет по одной и той же схеме и разница лишь в одном знаке, то можно использовать одну и туже функцию, только добавить в нее коэффициент Х. При Х=1 получим один корень, при Х=-1 получим второй корень.

Как быть с остальным - хз. Слишком много воды в лекции и слишком мало конкретики.
Кто цяй не пьет, тот цьмо. (с) Конфуций<br />...уж лучше слыть нулями и стебаться, чем гением не быть, но называться! © bob@ kрnemо.ru<br />

x3mal

#19
Цитата: AntonFox от 20 июня 2010, 10:02:34
Вот тебе к примеру программа для расчета квадратного корня.
Используя структурный подход делаем функции для расчета детерминанта и двух корней
Для функции детерминанта входной информацией будут коэффициенты a,b,c, а выходной информацией - само значение детерминанта.
Для расчета корней соответственно входная инфа - коэффициенты и детерминант, выходная - корни уравнения.

Поскольку расчет корней идет по одной и той же схеме и разница лишь в одном знаке, то можно использовать одну и туже функцию, только добавить в нее коэффициент Х. При Х=1 получим один корень, при Х=-1 получим второй корень.

Как быть с остальным - хз. Слишком много воды в лекции и слишком мало конкретики.
Сурово...
Во 1ых квадратный корень числа а - это решение уравнения х*х = а... А вы говорите про уравнение a*x^2 + b*x + c = 0, где a не равно 0,  т.е. квадратное уравнение...

Во 2ых не детерминант, а дискриминант...

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

В 4ых в случае, если функция должна возвращать больше чем одно значение, следует делать процедуру с выходными параметрами (в паскале, если память не изменяет, это делается словом var перед именем параметра)

procedure FindRoots(a, b, c: integer; var x1, x2: integer)
begin
...
end;

А еще лучше сделать функцию типа boolean, которая возвращает true, если корни найдены, false, если действительных корней нет...

function FindRoots(a, b, c: integer; var x1, x2: integer) : boolean
begin
...
end;

А еще лучше типа integer, и возвращает 0 при успешном нахождении действительных корней, в противном случае код ошибки.. например, 1, если нет действительных корней, 2, если a = 0, т.е. уравнение не квдратное, при этом в x1 записывать решение получившегося линейного уравнения для последующей обработки...

В общем даже в такой, казалось бы, тривиальной задаче есть простор для творчества=)

PS возможно в синтаксисе паскаля накосячил, поправьте если что...

AntonFox

Цитата: x3mal от 21 июня 2010, 15:39:30
Сурово...
Во 1ых квадратный корень числа а - это решение уравнения х*х = а... А вы говорите про уравнение a*x^2 + b*x + c = 0, где a не равно 0,  т.е. квадратное уравнение...

Во 2ых не детерминант, а дискриминант...
Ну да,  с утра пораньше встал и еще не совсем проснулся )))) Сорри.
Цитата: x3mal от 21 июня 2010, 15:39:30
В 3х вычисление дискриминанта делать отдельной функцией совсем не нужно, так как она вызывается ровно 1 раз во всем коде, т.е. получаем проигрыш в размере кода и немного при компиляции и выполнении...
В данном случае это не важно, поскольку идет обучение и в конкретном случае необходимо показать использование функций и процедур как метод программирования чтоли.
Кроме того, каждую программу можно рассматривать как заготовку для решения последующих более сложных задач, таким образом даже дискриминант может понадобится неоднократно.

Цитата: x3mal от 21 июня 2010, 15:39:30
В 4ых в случае, если функция должна возвращать больше чем одно значение, следует делать процедуру с выходными параметрами (в паскале, если память не изменяет, это делается словом var перед именем параметра)

Ну я брал самый простой вариант - одна функция возвращает одно значение. Для демонстрации использования функций в программе этого достаточно.
Добавление функций с анализом результатов (булевские и определение наличия корней и т.п.) это все здорово,  мне кажется немного лишнего это уже... Хотя в некоторых случаях именно такой вариант самый подходящий. Все зависит от решаемых задач.

Цитата: x3mal от 21 июня 2010, 15:39:30
В общем даже в такой, казалось бы, тривиальной задаче есть простор для творчества=)

Любую задачу можно решить как минимум двумя способами. В программировании  же для каждого решения есть несколько вариантов реализации с использованием разных операторов. Если добавлять функции и процедуры - вариантов "решения" могут быть десятки, если не сотни. И чем больше программа, тем больше различных решений можно найти.
Правда "правильных" решений не так уж и много. Под "правильными" я  понимаю с оптимальным кодом (нет лишних строк кода, переменных и вычислений).
Еслиб был только один вариант - не было бы смысла в интерпретаторах различных языков, не  было бы программистов и т.д.

PS я одно время немного преподавал Паскаль на первом курсе, поэтому смотрю на задачу именно сточки зрения наглядности конкретных решений, конкретных способов, а не оптимальности кода. Там жешь главное чтоб поняли как и что надо делать, а затем уже красоту наводили.
Одна девушка мне написала прогу для решения квадратных уравнений - вся кафедра была в шоке!
1 . Вывод на экран " ахх+бх+с=0"
2. Д=бб-4ас
3. Введите Х1.Х2:
4. Корни уравнения Х1, Х2
Ну там чуть красивше было, но смысл такой же - никаких коэффициентов, пользователь сам вводит корни и потом их же и получает назад ))) Когда я пытался добится от девушки объяснений как эта программа работает (построчно) она разрыдалась и убежала.
А  я до сих пор жалею что не сохранил текст той проги.....
Кто цяй не пьет, тот цьмо. (с) Конфуций<br />...уж лучше слыть нулями и стебаться, чем гением не быть, но называться! © bob@ kрnemо.ru<br />