![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.10.2012
Сообщений: 8
|
![]()
Дано 2-х мерный массив отсортировать содержимое в порядке возрастания.
мой код что я не правильно написал исправьте плз program yporyadochivanie_2d_massiva; var mas: array [1..10,1..10] of integer; a,b: byte; buf,e,f: integer; begin writeln('Исходный массив'); for a:=1 to 3 do begin for b:=1 to 3 do begin mas[a,b]:=random(9); write(mas[a,b]:4); end; writeln; end; e:=0; while e<=3 do begin for a:=1 to 3 do if (mas[a]>mas[a+1]) then begin buf:=mas[a]; mas[a]:=mas[a+1]; mas[a+1]:=buf; end; inc(e); end; f:=0; while f<=3 do begin for b:=1 to 3-1 do if (mas[b]>mas[b+1]) then begin buf:=mas[b]; mas[b]:=mas[b+1]; mas[b+1]:=buf; end; inc(f); end; writeln('Итоговый массив'); for a:=1 to 3 do begin for b:=1 to 3 do begin write(mas[a,b]:4); end; writeln; end; readln; end. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 21.12.2011
Сообщений: 54
|
![]()
Начиная с
Код:
А вот тут опять двумерный ![]() Код:
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 17.10.2012
Сообщений: 8
|
![]()
я только начал учить массивы исправьте мне пожалуйста код, буду очень и очень благодарен ...
Последний раз редактировалось backspace567; 17.10.2012 в 21:04. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 21.12.2011
Сообщений: 54
|
![]() Код:
Что значит отсортировать двумерный массив в порядке возростания? Каждую строку отсортировать по возростанию или как? |
![]() |
![]() |
![]() |
#5 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,427
|
![]() Код:
Считается, что элементы расположены так: Цитата:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
|
![]() |
![]() |
![]() |
#6 | |
Регистрация: 17.10.2012
Сообщений: 8
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 17.10.2012
Сообщений: 8
|
![]()
помогите разобраться с этим участком кода :
Снимок222.PNG Опишите пожалуйста словами, что происходит в этом кусочке кода. Зачем стоит s * c - 1, а не просто 12 так как константы с=4 s=3 и почему во второй строчке (for j := i + 1 to s * c do) нет -1 и зачем в этих строчках i1 := 1 + i div c - 1 div (1 + i mod c) div и mod ? |
![]() |
![]() |
![]() |
#8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,427
|
![]()
По порядку.
Чуть упростил формулы: Код:
Далее, почему есть и нет -1. Перебор идет всех элементов таким образом: 1-й со всеми последующими 2-й со всеми последующими i-й со всеми последующими (от i+1 до n) (n-1)-й с n-ым Если -1 не будет, то возникнет сравнение n-го элемента, не пойми с каким. Теперь к вопросу о div и mod. Поскольку в исправленном варианте нету mod, то не буду его обсуждать. Вот у нас есть числа: 1 2 3 4 5 6 7 8 - номера элементов по порядку. Нужно сделать пересчет в 2 измерения (распределить элементы по строкам), т.е. 1 2 3 4 5 6 7 8 Для упрощения формул вычтем из номера элемента единицу и получим: 0 1 2 3 4 5 6 7 Теперь берем остаток от деления на 4 (именно столько элементов в строке) для каждого элемента: 0 1 2 3 4 5 6 7 0 0 0 0 1 1 1 1 Т.е. у первых 4 элементов остаток 0, у вторых - 1. Теперь просто прибавляем единицу, чтобы вернуться в привычный отсчет от 1 до k. Нашли строку в массиве, где расположен рассматриваемый элемент. Осталось понять, какой это элемент по счету в строке. Для этого отнимаем от номера элемента столько раз число элементов в строке, сколько строк находится перед найденной строкой.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 18.10.2012 в 01:30. |
![]() |
![]() |
![]() |
#9 |
Регистрация: 17.10.2012
Сообщений: 8
|
![]()
благодарю за разъяснение !
BDA вы учитесь еще или уже работаете ? _____ 1. Излишнее цитирование (overquoting) запрещены правилами форума 2. Личные вопросы лучше задавать в личку... будьте осторожны, по краю ходите! избегайте в дальнейшем нарушения правил форума.... Модератор Последний раз редактировалось Serge_Bliznykov; 18.10.2012 в 11:13. |
![]() |
![]() |
![]() |
#10 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,427
|
![]()
Пожалуйста.
На будущее - не нужно цитировать сообщение полностью, а то можно получить «горчичник» (предупреждение). Еще учусь ![]() Update Чтобы не плодить сообщения и т.к. у Вас пока не работает "личка" Цитата:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 18.10.2012 в 15:03. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
двумерный массив | malaia | Общие вопросы C/C++ | 1 | 11.04.2012 20:03 |
с++ двумерный массив | killeraleksana | Помощь студентам | 0 | 08.01.2012 18:37 |
Одномерный массив и Двумерный массив | eugene1437 | Общие вопросы C/C++ | 15 | 25.05.2011 19:17 |
Двумерный массив | jUvkeE | Помощь студентам | 2 | 03.02.2011 22:08 |
Двумерный массив, одномерный массив. | Branbal | Помощь студентам | 14 | 18.11.2009 12:40 |