Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 16
1

Объясните, почему указанный в задании алгоритм нельзя использовать для указанной цели?

25.12.2015, 21:03. Просмотров 467. Ответов 13
Метки нет (Все метки)

Программа
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2015, 21:03
Ответы с готовыми решениями:

В задании нельзя использовать gets, ctrcmp, ctrlen. Как их заменить другими функциями?
В задании нельзя использовать gets,ctrcmp, ctrlen. как их заменить другими функциями? #include...

Почему для событий нельзя использовать оператор =?
Почему для событий нельзя использовать оператор =?

Объясните, почему так нельзя делать?
using namespace std; uint32_t foo(uint32_t c, uint32_t a, const vector< uint32_t> & data) { ...

Почему break нельзя использовать в if?
почему break нельзя использовать в if вот код if(f.eof()==1) { break; } про break MVS...

13
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28018 / 15745 / 972
Регистрация: 15.09.2009
Сообщений: 67,776
Записей в блоге: 78
25.12.2015, 21:13 2
ручками перепечатай.
0
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 16
25.12.2015, 21:18  [ТС] 3
Для нахождения наименьшего значения в массиве var a: array [1..100] of integer; был предложен алгоритм
for i:= 1 to 99 do if a[i] < a[i+1] then min:= a[i];
Объясните, почему этот алгоритм нельзя использовать для указанной цели? Приведите пример (меньшей размерности), когда алгоритм дает неправильный ответ.
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 861
25.12.2015, 22:14 4
По сути на выходе в min получается значение предпоследнего элемента, если оно меньше последнего элемента.
0
4 / 4 / 5
Регистрация: 06.11.2015
Сообщений: 33
25.12.2015, 22:47 5
Правильнее будет так наверное
Pascal
1
2
min:=a[i];
for i:= 2 to 99 do if min < a[i] then min:= a[i];
Или я не прав?
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 861
26.12.2015, 16:20 6
Не совсем.
Pascal
1
2
min:=a[i];
for i:= 2 to 99 do if min < a[i] then min:= a[i];
Последний элемент не проверяете
0
4 / 4 / 5
Регистрация: 06.11.2015
Сообщений: 33
26.12.2015, 16:52 7
Почему нет?!
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 861
26.12.2015, 20:18 8
This_is_SPARK,
Цитата Сообщение от Uboin Посмотреть сообщение
в массиве var a: array [1..100]
Цитата Сообщение от This_is_SPARK Посмотреть сообщение
for i:= 2 to 99 do if min < a[i] then min:= a[i];
Потому что 99 это не 100.
0
4 / 4 / 5
Регистрация: 06.11.2015
Сообщений: 33
26.12.2015, 20:23 9
Опечатка)
0
3163 / 1742 / 464
Регистрация: 28.02.2015
Сообщений: 3,535
26.12.2015, 22:25 10
Цитата Сообщение от This_is_SPARK Посмотреть сообщение
Правильнее будет так наверное
Pascal
1
min:=a[i];
Все упирается в индекс массива. Какое там значение i - н/з-никто не знает.

Цитата Сообщение от Uboin Посмотреть сообщение
почему этот алгоритм нельзя использовать для указанной цели
Вы не проверяете значение с минимумом, Вы проверяете соседние, т.е. минимум тут не причем, Вы ищете "два элемента, у которых один элемент меньше следующего"
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5666 / 3386 / 2424
Регистрация: 22.11.2013
Сообщений: 9,514
Записей в блоге: 1
26.12.2015, 23:12 11
Точнее так, алгоритм находит первый элемент последней пары элементов, в которой предыдущий меньше следующего. Например:
1 2 3
будет найден 2, но это не минимум.
3 2 1
минимальный даже не рассматривается в качестве кандидата в минимумы.

Добавлено через 1 минуту
This_is_SPARK,
Не опечатка, иначе для a[i+1] -- выход за пределы массива.
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 861
27.12.2015, 21:04 12
bormant,
Цитата Сообщение от bormant Посмотреть сообщение
This_is_SPARK,
Не опечатка, иначе для a[i+1] -- выход за пределы массива.
Вы про это говорите? -
Цитата Сообщение от This_is_SPARK Посмотреть сообщение
for i:= 2 to 99 do if min < a[i] then min:= a[i];
А то в этом примере нет i+1
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5666 / 3386 / 2424
Регистрация: 22.11.2013
Сообщений: 9,514
Записей в блоге: 1
27.12.2015, 21:48 13
capricornus CF,
Про сообщение #3, в котором
Pascal
1
for i:= 1 to 99 do if a[i] < a[i+1] then min:= a[i];
0
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 861
27.12.2015, 22:08 14
Понял, только сдается уже не нужны эти рассуждения вопрошавшему))))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2015, 22:08

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

Почему структуру нельзя использовать в классе?
#include &lt;iostream&gt; class editor_form { struct prop { int y; }; prop...

Почему нельзя использовать метод ReadAllLines?
static int FoundConst(string fileAddress, string cs) { ...

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

Почему в GUI нельзя использовать объект в main?
Делаю в конструкторе NetBeans, и проблема в том, что я не знаю, как использовать методы, ибо, ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.