![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.11.2010
Сообщений: 29
|
![]()
Вот задача - Удалить строку с максимальным средним арифметическим значением ее элементов. Решение:
Код:
Дано: 1 2 3 4 9 9 9 9 1 2 3 4 9 9 9 9 Ответ: 1 2 3 4 1 2 3 4 нужно чтоб получилось нечто подобное, Помогите пожлуйста!!! Последний раз редактировалось Stilet; 28.11.2010 в 19:47. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 530
|
![]()
Введите количество строк - 4
Введите количество столбцов - 4 Введите 1,1 элемент массива - 1 Введите 1,2 элемент массива - 2 Введите 1,3 элемент массива - 3 Введите 1,4 элемент массива - 4 Введите 2,1 элемент массива - 5 Введите 2,2 элемент массива - 6 Введите 2,3 элемент массива - 7 Введите 2,4 элемент массива - 8 Введите 3,1 элемент массива - 9 Введите 3,2 элемент массива - 134 Введите 3,3 элемент массива - 3 Введите 3,4 элемент массива - 5 Введите 4,1 элемент массива - 3 Введите 4,2 элемент массива - 5 Введите 4,3 элемент массива - 2 Введите 4,4 элемент массива - 2 Исходный массив 1 2 3 4 5 6 7 8 9 134 3 5 3 5 2 2 Среднее арифметическое значение каждой строки Ca бва®ЄЁ б ь 1 - 2.50 Ca бва®ЄЁ б ь 2 - 6.50 Ca бва®ЄЁ б ь 3 - 37.75 Ca бва®ЄЁ б ь 4 - 3.00 Полученный массив 1 2 3 4 5 6 7 8 9 134 3 5 пробовал у себя запускать (PascalABC) вот что получилось... как то не верно она у тебя работает. А по поводу нескольких одинаковых строк... можно создать массив целых чисел, и заносить в него номера строк с одинаковым ср.арифм, ну и соответственно потом удалить их или значения средних арифмитических занести в массив найти среди них макс элемент. и получить индексы других равных ему Последний раз редактировалось unbanned; 26.11.2010 в 23:56. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 24.11.2010
Сообщений: 29
|
![]()
Извиняюсь, перепутал переменную=))
Код:
Последний раз редактировалось Stilet; 28.11.2010 в 19:48. Причина: Недописал |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 24.11.2010
Сообщений: 29
|
![]()
Никак не получатся создать цикл для удаления((
Думал будет примерно так: for j:=i downto 1 do begin if b[j]=max then begin s:=0; for i:=n downto k do begin a[i,j]:=a[i+1,j]; s:=s+1; end; a[n,j]:=0; end; end; writeln(Полученный массив'); for i:=1 to n-s do begin for j:=1 to m do write(a[i,j]:4); writeln; end; readln; end. Но не пашет нисколько(( Дайте, пожалуйста, более точную подсказку, чтоб нормально на нее опереться. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 530
|
![]()
ну ты записываешь в массив значения СА всех строчек, т.е. индекс в массиве получается номером строки(у тебя это массив b, получается). далее находишь макс (max) элемент.
Код:
входит что массив а уменьшается на одну строчку, соответственно все номера строк выше удаленной уменьшились на 1. создаешь переменную типа integer. и прибавляешь 1 к ней каждый раз как удаляешь строку из массива а. тогда получается что удаляешь элементы a[i-s,j]. например 1234 9999 1234 9999 у тебя 2я и 4я строчки с одинаковым СА. первый раз получается удаляются a[2-0,j]. строки сдвигаются 4я строчка становиться третьей. удаляются элементы a[4-1,j]. ну вот как-то так... |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 24.11.2010
Сообщений: 29
|
![]()
Спасибо, за внимание!
Ну у меня примерно те же мысли были, но и с этим задача не идет( удаляет одну строку(последнюю) с макс. СА. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 458
|
![]() Цитата:
Тебе надо физически удалить элементы из массива , или просто не надо распечатывать на экран строки с максимальным средним ?
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
![]() |
|
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 24.11.2010
Сообщений: 29
|
![]()
andrewpalkin, по заданию надо удалить строку если ее СА больше чем у остальных, и удалить несколько, в том случае если макс.СА несколько.
ну если покороче то Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 24.11.2010
Сообщений: 29
|
![]()
Есть ли еще способ выполнить удаление?
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 458
|
![]()
Кроме того , что не распечатывать на экран , то что тебе не надо . Ты можешь создать новый массив , в котором будет строк меньше на столько , сколько тебе надо удалить . И потом в него записать все , что не должно быть удалено.
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание виртуального ландшафта и интерактивного полета над ним. | Иван Мещеряков | Помощь студентам | 2 | 20.12.2009 12:08 |
Двумерный массив, одномерный массив. | Branbal | Помощь студентам | 14 | 18.11.2009 12:40 |
GroupBox обьекты над ним | KoBRaAndrey | Общие вопросы Delphi | 5 | 30.10.2009 12:43 |
Двумерный массив!!! | hoangvu2005 | Помощь студентам | 2 | 17.02.2009 21:50 |
массив tedit и процедура с ним(delphi) | xbIm | Помощь студентам | 2 | 21.02.2008 23:57 |