Помощь - Поиск - Пользователи - Календарь
Полная версия: помогите пожалуйста разобраться с алгоритмом
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Алгоритмы
1147
Дан алгоритм программы, объясните пожалуйста по возможности подробней для чего предназначена эта программа (она находит площадь какой-то фигуры-это единственное что мне известно). Мне не понятно как она вычисляет площадь (по какому принципу), что это за значения a, b и Q (почему вначале такое условие что а>Q*Q???). Может это величины сторон фигуры? но какой?
мисс_граффити
оригинальное условие: abs(Q)>0
andriano
Цитата(мисс_граффити @ 8.09.2008 17:55) *

оригинальное условие: abs(Q)>0

На самом деле не такое уж оригинальное: эквивалентно Q<>0. Очевидно нужно, чтобы избежать деления на 0.
мисс_граффити
Цитата
На самом деле не такое уж оригинальное: эквивалентно Q<>0

Я вообще про то же.
if StrToInt(BoolToStr(flag))=-1 then

тоже в глубине души эквивалентно
if flag then


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


Добавлено через 2 мин.
а дисциплина называется технология программирования
мисс_граффити
Ну почти угадала.
Какая тебе разница, ЧТО программа считает? Думаю, что ничего конкретного (потому что при подсчете площади явное присваивание конкретного значения, не зависящего от параметров, выглядит странно).
Обычно для таких заданий дают алгоритмы, не предназначенные для решения конкретной задачи.
Мы в прошлом году подобное делали, формулировка задания была такой:
Цитата
1. Написать подлежащую тестированию программу, в соответствии с заданным алгоритмом. (Алгоритм составляется студентом самостоятельно и согласовывается с преподавателем. Алгоритм должен содержать не менее пяти условных вершин, причем одна из них должна быть со сложным условием “и” другая с условием ”или”, к примеру (“f<h & a=c”).
2. ...


1147
но как же мне тогда понять какие входные значения правильные, а какие нет?
мисс_граффити
Я так понимаю, неправильные - это те, которые приводят в блок S -?
andriano
Цитата(1147 @ 10.09.2008 16:31) *

но как же мне тогда понять какие входные значения правильные, а какие нет?

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

1. Если считать, что сведения о том, что алгоритм вычисляет площадь - это часть условия, то единственный разумный кандидат на это действие есть S=a*Q (a и Q - стороны прямоугольника, скажем, или сторона и высота). Остальные как-то не проходят на эту роль.. Если так, то "правильные" данные должны приводить в этот блок. Тогда "правильными" нужно считать нечто вроде:
(a <= Q*Q) and ((a<=b) or (Q=0))

2. Задача находится в неподобающем разделе.
М
Переношу в Алгоритмы

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.