![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Kolyancz |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задана последовательность N чисел. N<=1000. Найдите наибольшее число в этой последовательности и укажите на какой позиции оно находится. Если число повторяется, то указать все его позиции.
Например: для последовательности 569 3 567 94 569 219 546 Ответ: 569 1 5 Впорос: как выглядит функция определения наибольшего числа и расчета его размещений? |
Ozzя |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Последовательность как хранится? В массиве? Или массивы использовать нельзя?
|
Kolyancz |
![]() ![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
amega |
![]()
Сообщение
#4
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
один из ваирантов;
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Это можно сделать за один проход по основной последовательности... В случае, когда N может достигать 1000, это желательно делать именно за один, а не за два прохода...
P.S. К тому же, amega, твой вариант не отработает, если в исходной последовательности нет чисел больше 0... Сообщение отредактировано: volvo - 9.12.2008 19:32 |
amega |
![]()
Сообщение
#6
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
тогда поменять прото начальное max:=0;
а можеш выложить алгоритм за один проход ? |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата тогда поменять прото начальное max:=0; ![]() Вот однопроходный алгоритм: max := a[1]; Сообщение отредактировано: volvo - 9.12.2008 19:39 |
amega |
![]()
Сообщение
#8
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
смотри а если у нас 1ий елент максимальный И он только один что происходит (например 99 1 2 3 2 1 1 5)
max := a[1]; j := 0; <------------------------------------------------ j=0 for i := 1 to n do begin if a[i] = max then begin <-------------------------------------------- 1ий елемент максимальній inc(j); b[j] := i; <------------------------------------------- b[0]:=1; end else if a[i] > max then begin <---- вариант на елс выполнятся не будет max := a[i]; j := 1; b[j] := i; <---- а значит j не присвоится 1 end; end; for i := 1 to j do <------------------------------------------ кода выводим начинаем выводить с b[1] !!!!! write(b[i]:5); |
Айра |
![]()
Сообщение
#9
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
if a[i] = max then begin |
amega |
![]()
Сообщение
#10
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
а, ну да недогледел чуть-чуть
![]() |
Kolyancz |
![]() ![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да, все правильно. Вот полное решение, всем спасибо.
Код var J,i,n,max: integer; a :array[1..1000] of integer; b:array[1..1000] of integer; begin n:=0; while not eoln do begin inc(n); read(a[n]); end; begin max := a[1]; j := 0; for i := 1 to n do begin if a[i] = max then begin inc(j); b[j] := i; end else if a[i] > max then begin max := a[i]; j := 1; b[j] := i; end; end; writeln(max); for i := 1 to j do write(b[i]:5); readln; readln end; end. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 18:18 |