0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 8
1

Даны три различных действительных числа. Найти среди них два числа, модуль разности которых имеет: наибольшее значение, наименьшее значение

06.03.2013, 12:24. Показов 4635. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я сижу на экзамене по Информатике и запутался.

Данно задание

Даны три различных действительных числа. Найти среди них два числа, модуль разности которых имеет: наибольшее значение, наименьшее значение.


И ЧТО НУЖНО СДЕЛАТЬ:
Разветвляющиеся алгоритмические структуры
Цель работы
Научиться строить разветвляющиеся алгоритмы, записывать алгоритмы в виде блок-схемы и на алгоритмическом языке.
Задание к лабораторной работе
По результатам работы необходимо в отчёте привести алгоритм в виде блок-схемы и на алгоритмическом языке, а также привести контрольный пример, демонстрирующий выполнение алгоритма (форма отчёта приведена ниже).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2013, 12:24
Ответы с готовыми решениями:

Даны три различных действительных числа. Найти два числа, модуль разности которых имеет наибольшее/наименьшее значение
Я сижу на экзамене по Информатике и запутался. Данно задание Даны три различных...

Даны пять различных целых чисел. Найти среди них два числа, модуль разности которых имеет: а) наибольшее значение б) наименьшее значение
Даны пять различных целых чисел. Найти среди них два числа, модуль разности которых имеет: а)...

Даны пять различных целых чисел. Найти среди них два числа, модуль разности которых имеет наибольшее значение
Даны пять различных целых чисел. Найти среди них два числа, модуль разности которых имеет: а)...

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

18
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
06.03.2013, 19:36 2
Цитата Сообщение от sarattsevd Посмотреть сообщение
Я сижу на экзамене по Информатике и запутался.
Наверно уже сдали или нет?
1
0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 8
13.03.2013, 12:24  [ТС] 3
Цитата Сообщение от OldFedor Посмотреть сообщение
Наверно уже сдали или нет?
не могли бы вы мне показать это задание как сделать правильно, результаты позже скажут, а я хотел бы знать как делать, не уверен, что я правильно сделал
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
13.03.2013, 12:46 4
Цитата Сообщение от sarattsevd Посмотреть сообщение
не уверен, что я правильно сделал
Нужна блок-схема или код? Если код - то только на VB2010.
0
0 / 0 / 0
Регистрация: 06.03.2013
Сообщений: 8
13.03.2013, 12:49  [ТС] 5
Цитата Сообщение от OldFedor Посмотреть сообщение
Нужна блок-схема или код? Если код - то только на VB2010.
https://www.cyberforum.ru/atta... 1362559766
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
13.03.2013, 12:51 6
Цитата Сообщение от sarattsevd Посмотреть сообщение
не могли бы вы мне показать это задание
Слишком сложно. Скоро выложу схему.
0
1744 / 664 / 87
Регистрация: 01.10.2012
Сообщений: 3,281
13.03.2013, 13:21 7
C++
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
struct CInfo {
 CInfo( int ind1 = 0, int ind2 = 0, int val = 0 ) : index1(ind1), index2(ind2), value(val) {}
 bool operator < ( const CInfo & sec ) const  { return index1 == index2 || value < sec.value; }
 bool operator > ( const CInfo & sec ) const  { return index1 == index2 || value > sec.value; }
 
 int index1, index2, value;
};
 
void GetAbsMinMax( const int * data, const int N )
{
 CInfo infMin, infMax;
 for (int i = 1; i < N - 1; ++i) {
  for (int j = i + 1; j < N; ++j) {
   CInfo inf(i, j, abs(data[i] - data[j]));
   if (inf < infMin) infMin = inf;
   if (inf > infMax) infMax = inf;
  }
 }
 printf("min = %d, %d (%d)\n", infMin.index1, infMin.index2, infMin.value);
 printf("max = %d, %d (%d)\n", infMax.index1, infMax.index2, infMax.value);
}
 
void GetAbsMinMax( int a, int b, int c )
{
 int data[3] = { a, b, c };
 GetAbsMinMax(data, 3);
}
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
13.03.2013, 14:06 8
Цитата Сообщение от sarattsevd Посмотреть сообщение
Даны три различных действительных числа
Как то так. Читается легко.

Даны три различных действительных числа. Найти среди них два числа, модуль разности которых имеет: наибольшее значение, наименьшее значение


Удачи.
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
13.03.2013, 14:08 9
Увидел во второй части вывода неточности. Исправьте сами.
0
1744 / 664 / 87
Регистрация: 01.10.2012
Сообщений: 3,281
13.03.2013, 15:06 10
Цитата Сообщение от OldFedor Посмотреть сообщение
Увидел во второй части вывода неточности. Исправьте сами.
А Вас не смущает что сделать это совсем не легко? Выделив d1, d2, d3 и оперируя только с ними Вы теряете связь с исходными данными, и приходится мучительно вспоминать что чему соответствует для вывода (который, кстати, пришлось нарисовать 6 раз).

По-моему правильно создать блок данных содержащий как разницу по модулю так и индексы исходных данных. Да, и во что выльется блок-схема для 4 исходных чисел? (не говоря уже о 5 )
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
13.03.2013, 17:46 11
Цитата Сообщение от Igor3D Посмотреть сообщение
Вы теряете связь с исходными данными
Никоим образом. d1 связан только с х и y. Тем более что в задании речь идет о паре чисел.
Здесь как раз связь жесткая.
Цитата Сообщение от Igor3D Посмотреть сообщение
приходится мучительно вспоминать что чему соответствует для вывода
И где это надо вспоминать, Igor3D? Если победил d1, то это только х и y и ни кто другой.
Цитата Сообщение от Igor3D Посмотреть сообщение
который, кстати, пришлось нарисовать 6 раз
Ну и что, что 6. Но они все разные.

Строго говоря надо написать одну единственную процедуру, в которую
передаются x, y, z и признак как сравнивать (< или>).
Дважды к ней обратится. А выходные результаты процедуры - та самая пара чисел - на печать.
Но вот заковыка. Эта процедура в точности повторит то, что нарисовано (половинку конечно).

Igor3D, прочитайте задание.
Вы предлагаете код. Я бы его раньше выложил.
Нужна блок-схема
0
1744 / 664 / 87
Регистрация: 01.10.2012
Сообщений: 3,281
13.03.2013, 18:44 12
Цитата Сообщение от OldFedor Посмотреть сообщение
Igor3D, прочитайте задание.
Вы предлагаете код. Я бы его раньше выложил.
Нужна блок-схема
Ну вообще-то в задании в равной мере сказано о "блок-схеме" и "алгоритмических языках". Цели задания вполне понятны - научится мальчик находить минимум/максимум в 3 соснах - ну и слава богу, это нормально. Да и экзамен у него наверное кончился

Цитата Сообщение от OldFedor Посмотреть сообщение
Строго говоря надо написать одну единственную процедуру, в которую
передаются x, y, z и признак как сравнивать (< или>).
Дважды к ней обратится. А выходные результаты процедуры - та самая пара чисел - на печать.
Но вот заковыка. Эта процедура в точности повторит то, что нарисовано (половинку конечно).
Не понял насчет "половинки". Прошу показать эту процедуру
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
13.03.2013, 18:53 13
Цитата Сообщение от Igor3D Посмотреть сообщение
Ну вообще-то в задании в равной мере сказано о "блок-схеме" и "алгоритмических языках"
В посте №5 ТС sarattsevd приводит то, что сделал. А именно блок-схему.

Цитата Сообщение от Igor3D Посмотреть сообщение
Не понял насчет "половинки"
На блок-схеме у меня две повторяющиеся части - любая из них.
0
1744 / 664 / 87
Регистрация: 01.10.2012
Сообщений: 3,281
14.03.2013, 09:41 14
Цитата Сообщение от OldFedor Посмотреть сообщение
На блок-схеме у меня две повторяющиеся части - любая из них.
В том-то и дело что не получится дважды вызвать одну процедуру с разными параметрами - придется писать сначала все для "меньше" а потом все то же самое для "больше". Также если появляется 4-e число - придется дописывать код и для него. А большее число исходных данных быстро покажет несостоятельность всего подхода.

Конечно, чисто "для целей обучения" цепочка if'ов вполне годится (не все сразу). Но объективно это все-таки плохо
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
14.03.2013, 11:02 15
Цитата Сообщение от Igor3D Посмотреть сообщение
В том-то и дело что не получится дважды вызвать одну процедуру с разными параметрами
Пишется на раз. Я не зря указал - передается через формальный параметр условие сравнения.

Цитата Сообщение от Igor3D Посмотреть сообщение
Но объективно это все-таки плохо
Для понимания лучше блок-схемы ни чего не придумали.
Если у Вас есть что предложить - флаг в руки.
0
1744 / 664 / 87
Регистрация: 01.10.2012
Сообщений: 3,281
14.03.2013, 11:54 16
Цитата Сообщение от OldFedor Посмотреть сообщение
Пишется на раз. Я не зря указал - передается через формальный параметр условие сравнения.
Прошу показать каким образом
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
14.03.2013, 12:39 17
Цитата Сообщение от Igor3D Посмотреть сообщение
Прошу показать каким образом
Цитата Сообщение от OldFedor Посмотреть сообщение
Строго говоря надо написать одну единственную процедуру, в которую
передаются x, y, z и признак как сравнивать (< или>).
Цитирую себя.
0
1744 / 664 / 87
Регистрация: 01.10.2012
Сообщений: 3,281
14.03.2013, 13:05 18
Цитата Сообщение от OldFedor Посмотреть сообщение
Строго говоря надо написать одну единственную процедуру, в которую
передаются x, y, z и признак как сравнивать (< или>).
Нельзя запретить написать одну процедуру - но в ней будут 2 части кода с той только разницей что одна для "меньше" и другая для "больше". Кстати и Ваша блок-схема тоже как бы "нарисована дважды" - а ведь это не есть правильно/хорошо.

Общение с начинающими ничего хорошего не приносит - мы просто скатываемся до их уровня. Прошу прощения за "мы" (не знаю как здесь лучше сказать) - и умолкаю
0
7483 / 4147 / 474
Регистрация: 25.08.2012
Сообщений: 11,529
Записей в блоге: 11
14.03.2013, 13:14 19
Цитата Сообщение от Igor3D Посмотреть сообщение
а ведь это не есть правильно/хорошо.
Графически это единственно возможно.

А вообще, Igor3D, мы рассуждаем ни о чем.
Надо блок-схему и все тут.
Думаю дискуссию можно прекратить.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2013, 13:14
Помогаю со студенческими работами здесь

Найти среди чисел X1,X2 ...Xn два числа, модуль разности которых имеет наименьшее значение
Даны: целое число n, действительные числа X1, X2,X3....Xn. Найти среди чисел X1,X2 ...Xn два...

Найти среди элементов массива два числа, модуль разности которых имеет наименьшее значение.
Задан одномерный массив. Найти два среди его элементов, модуль разности которых имеет наименьшее...

Дано пять различных целых чисел. Найти среди них два числа, модуль разности которых имеет
Дано пять различных целых чисел. Найти среди них два числа, модуль разности которых имеет: 1....

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru