Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Сортировка двумерного массива 
:(
    Опции темы
DeMorte
Дата 20.11.2006, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 16.10.2006

Репутация: нет
Всего: нет



ребята...помогите пожалста...в моем учебнике почему-то обходят стороной тему двумерных массивов, переходя сразу на процедуры и функции, ктонить может обьяснить на примере одной задачки несколько моих вопросов...
дело в том что вводятся размеры двумерного массива(это один из вопросов..т.к. про одномерные мне все понятно...так про двумерные ничего вообще..а методом проб и ошибок неполучается), состоящего из целых чисел естественно, и его элементы.
главная задача состоит в отсортировке столбцов по сумме их чисел...вроде бы все понятно если бы это было одномерным массивом(конечно задача подругому бы звучала)), но как отсортировать строки smile , и как считать сумму чисел в каждой отдельной строке...т.к. я понял это тема очень важна для изучения основ программирования...когда же мои друзья сказали о существования трехмерных массивов..я в шок впал  smile   ...задачку я выбрал из задачника естестно..т.к. ее решение сможет обьяснить многие мои вопросы...прошу помоч пожалста
PM MAIL   Вверх
anwe
Дата 21.11.2006, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 9
Всего: 23



Справа от названия твоей темы есть ссылочка "А здесь смотрели?" Вот нажми и посмотри первый из предлагаемых подобных вопросов.
А по сортировке или строки или столбца делай цикл в цикле. То есть, по первой строке проганяешь все столбцы и т.д.
Код

for i:=1 to размер строки do
    for j:=1 to размер столбца do
        begin            //если строк в цикле больше одной
        делаешь что надо
        end;            //если строк в цикле больше одной

Обращение к элементу двумерного масива такое: m[i,j]
PM MAIL   Вверх
DeMorte
Дата 21.11.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 16.10.2006

Репутация: нет
Всего: нет



кстати я смотрел похожие темы...из них мне пока ничего ненадо, так как там обсуждаются более насущные темы, а я только начал изучать двумерные массивы, и все же хотелось бы узнать еще 3 ответа на вопросы: 1)как узнать сумму столбцов..одно дело когда есть заданное изначально число...я непонимаю как делается в том случае когда число вводится в прогоне программы... 2) как эти столбцы поменять местами по сумме в них...3)и как все эти массивы выводить на экран...они так и выведуться матрицами...или просто в строку?
p.s. мне не главное решить задачку(хотя хотелось бы)) главное понять как работать с двумерными массивами, а то нехочется отставать по программе от всего инста, а задачку взял просто для примера.
PM MAIL   Вверх
Rodman
Дата 21.11.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 26
Всего: 122



Цитата(DeMorte @  21.11.2006,  08:34 Найти цитируемый пост)
1)как узнать сумму столбцов..одно дело когда есть заданное изначально число...я непонимаю как делается в том случае когда число вводится в прогоне программы...

Код

{сначала заполняешь}
for i:=1 to n do
    for j:=1 to m do
       readln(m[i,j]);
{а потом считаешь}
for i:=1 to n do
begin
    sum:=0;
    for j:=1 to m do
    begin
       sum:=sum+m[i,j];
    end;
    writeln('Сумма столбца ',i,' равна ',sum);
end;

Цитата(DeMorte @  21.11.2006,  08:34 Найти цитируемый пост)
2) как эти столбцы поменять местами по сумме в них...

не понял

Цитата(DeMorte @  21.11.2006,  08:34 Найти цитируемый пост)
3)и как все эти массивы выводить на экран...они так и выведуться матрицами...или просто в строку?

Код

for i:=1 to n do
    for j:=1 to m do
    begin
       gotoxy(i*2, i*4);
       readln(m[i,j]);
    end;


PM MAIL WWW Skype GTalk YIM MSN   Вверх
sergejzr
Дата 21.11.2006, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Для домашних заданий, курсовых, существует "Центр Помощи"

Тема перенесена! 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
DeMorte
Дата 21.11.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 16.10.2006

Репутация: нет
Всего: нет



про второй вопрос...надо сосчитать сумму элементов в каждом из столбцов и расставить их по убыванию..за остальные ответы большой респект...я гораздо лучше стал соображать в этой тематике
PM MAIL   Вверх
DeMorte
Дата 21.11.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 16.10.2006

Репутация: нет
Всего: нет



хммм...что-то никак неполучается в работающую программу весь этот текст перевести...кстати...надо ли в этой задачке вводить тип массива, а то как я вижу тут используются только элементы...тип массива же ненаписан (типа array A[1..100,1..100] of integer), и вообще как мой преподователь говорил только один for может использоваться в begin, а тут их сразу по 2 пишут...и программа выдает ошибки...кароч...может ли ктонибудь помоч сплотить эту программу в одно целое...а то какое-то недопонимание идет(в особенности с for). а вообще тут помогли мне уже больше в понимании программирования чем в инсте за 2 месяца) уж очень нехочу казаться наглым) но плиз очень нужно темку добить а то на контрольой как пить дай завалят))
PM MAIL   Вверх
sergejzr
Дата 21.11.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Модератор: Пожалуйста, один топик - один вопрос.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
DeMorte
Дата 21.11.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 16.10.2006

Репутация: нет
Всего: нет



вопрос то один...как решить эту задачу...остальное просто подробности...а вообще если что-то нарушил то извините))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.