Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 18:19   #1
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию Delphi - операции с массивом

Нужно решить 2 задачи:

1) Ввести одномерный массив. Определить элементы массива, разность модулей которых имеет наибольшее значение.
Вывести эти элементы и саму их разность.

2)Ввести одномерный массив. Определить значение, которое встречается среди элементов массива максимальное число раз, и вычислить
количества вхождений. Вывести само значение и количество его вхождений.

Нужно срочно!
Я даже алгоритм решения смутно представляю... Помогите!
Sianessa вне форума Ответить с цитированием
Старый 04.05.2009, 18:40   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

1)
Будет 2 вложенных цикла.
Код:
for i:=1 to N-1 do
 for j:=i+1 to N do
  .....
Ищете разность модулей i-ого и j-ого элемента. Если она меньше минимума, то запоминаете индексы и приравниваете минимум к этой разности.

2)
Как вариант, сортируете массив.
Потом идете по нему
Код:
for i:=2 to N do
если текущий элемент равен предыдущему, то увеличиваете счетчик. Если не равен, то сравниваете счетчик с максимальным количеством. Если счетчик больше - запоминаете и его и само значение.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 18:52   #3
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

Оййй... А вы не могли бы попонятнее объяснить? Какой элемент j-й а какой i-й ?
И ко второй задаче как-то вообще не поняла комментарий..
Sianessa вне форума Ответить с цитированием
Старый 04.05.2009, 19:02   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А вы не могли бы попонятнее объяснить? Какой элемент j-й а какой i-й ?
Ну вам же надо сравнивать пары чисел. Так?
Во внешнем цикле перебираем "первые" элементы, а во внутреннем - "вторые".
Вообще, не очень понял вопрос. Вы лучше начните делать, и по ходу спрашивайте.

Цитата:
И ко второй задаче как-то вообще не поняла комментарий..
Ну есть у нас, допустим, массив:
Код:
1 5 6 6 5 7 8 2 1 7 5
сортируем его. Получаем это:
Код:
1 1 2 5 5 5 6 6 7 7 8
И сразу видно, чего у нас и сколько.
Теперь идем слева направо и считаем одинаковые элементы. То есть сравниваем текущий элемент с предыдущим. Если текущий элемент не равен предыдущему, то мы перешли к новому элементу. И счетчик нужно обнулить.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 04.05.2009, 21:16   #5
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

1
Код:
imax:=1;
jmax:=2;
max:=abs(A[i])-abs(A[j]);
for i:=1 to N-1 do
 for j:=i+1 to N do
  if abs(A[i])-abs(A[j])>max then begin 
                                                max:=abs(A[i])-abs(A[j]);
                                                imax:=i;
                                                jmax:=j;
                                              end;
writeln('|A[',imax,']|-|A[',jmax,']| = ',max);
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 04.05.2009, 22:25   #6
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

Цитата:
Сообщение от Sianessa Посмотреть сообщение
Нужно решить 2 задачи:
1) Ввести одномерный массив. Определить элементы массива, разность модулей которых имеет наибольшее значение.
Вывести эти элементы и саму их разность.
А не проще тут найти самое маленькое по модулю число. Потом самое большое по модулю число? И найти их разность. По идее получиться верно.

Цитата:
Сообщение от Sianessa Посмотреть сообщение
2)Ввести одномерный массив. Определить значение, которое встречается среди элементов массива максимальное число раз, и вычислить
количества вхождений. Вывести само значение и количество его вхождений.
Т.к. не пишу давно на делфи, уже плохо помню синтаксис этого языка. Но могу сказать алгоритм. Или даже написать, но на си. Переделать не сложно. Если надо пишите в личку.
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.

Последний раз редактировалось MAKEDON; 04.05.2009 в 22:28.
MAKEDON вне форума Ответить с цитированием
Старый 04.05.2009, 22:34   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от MAKEDON
А не проще тут найти самое маленькое по модулю число. Потом самое большое по модулю число? И найти их разность. По идее получиться верно.
Ну можно и так ) Я предложил первое, что пришло в голову.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 05.05.2009, 00:27   #8
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

Chudo4258, спасибо)
MAKEDON, скинула в личку...
Sianessa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi: строковые операции Sianessa Помощь студентам 6 21.04.2009 18:05
операции с массивом sunset Помощь студентам 1 27.03.2009 20:08
Задачка с массивом (Delphi) 777UFO777 Помощь студентам 3 04.12.2008 23:51
Вопрос. Операции с аудио/видео в Delphi Air Мультимедиа в Delphi 6 24.02.2008 06:19
Delphi, работа с массивом Skay Помощь студентам 2 05.04.2007 16:50