|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.10.2008, 22:18 | #1 |
Новичок
Джуниор
Регистрация: 21.10.2008
Сообщений: 2
|
помогите пожалуйста с массивом
Задание такое: Дан массив из n элементов. Найти max и его позиции (с учетом повторений)
вот найти max я смог: program massiv; type mas = array [1..5] of Integer; var a: mas; i: byte; max,t: Integer; begin {Заполняем массив} for i := 1 to 5 do begin Write('Введите значение элемента a[',i,']='); Readln(a[i]); end; {Найдем максимальный элемент} max:=a[1]; for i:=2 to 5 do begin if a[i]>max then max:=a[i]; end; writeln('Максимальный элемент = ',max); Readln; end. а как найти позиции? |
21.10.2008, 23:20 | #2 | |
Форумчанин
Регистрация: 03.02.2008
Сообщений: 213
|
Цитата:
Код:
Пишу программы на заказ, контакты под аватаром!
Отзывы тут |
|
21.10.2008, 23:27 | #3 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Код:
|
22.10.2008, 00:02 | #4 |
Новичок
Джуниор
Регистрация: 21.10.2008
Сообщений: 2
|
спасибо!!!, оказывается все так просто, а я голову ломал)
|
22.10.2008, 08:22 | #5 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
to puporev, а если в массиве 1 миллион элементов
то вы будете весь массив просматривать и сравнивать текущий элемент с максимальным? Это не оптимально.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
22.10.2008, 11:11 | #6 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Цитата:
|
|
22.10.2008, 11:29 | #7 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
2 Plague, во первых, Вы не обратили внимание, что тут рассматривается Паскаль? Напоминаю, что под переменные (все!) выделяется один сегмент данных - это в MS DOS 64 Кб и ни байтом больше! a: array[1..32768] of integer; уже не откомпилируется (даже если не будет других переменных)... во 2-х - это учебная задача. Люди изучают циклы, условные операторы и т.д. а оптимальный алгоритм - в данной задаче, например, я красивого решения НЕ ВИЖУ ;-( можно динамические списки мутить... но с ними накладных расходов будет - мама не горюй! вся оптимизация на на создание/удаление динамических элементов и уйдёт... ;-( |
||
22.10.2008, 11:41 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
хотя нет. Мне кажется, есть эффективный способ.
Тут как раз можно использовать строки. Куда дописывать найденные индексы максимальных элементов! При нахождении очередного максимума - обнулять строку и писать туда новый индекс: Код:
Последний раз редактировалось Serge_Bliznykov; 22.10.2008 в 11:45. |
22.10.2008, 12:01 | #9 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
Как раз на это и обратил внимание что тут исползуется паскаль.
Borland Pascal, Turbo Pascal, Free Pascal, PascalABC.Net, может console Borland Delphi или Lazarus? Какой? определитесь. И не надо говорить что размер массива может быть 32768. Его размер в Паскале может быть гораздо больше смотря конечно в каком Паскале.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с динамическим массивом!!!! | vish25 | Помощь студентам | 2 | 31.05.2008 19:20 |
Помогите с массивом | Кронос | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 5 | 21.08.2007 22:54 |
Помогите с массивом | mishel | Общие вопросы Delphi | 1 | 04.03.2007 00:15 |