IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с двумерным массивом, задачка на двумерный массив
Jeeb
сообщение 21.01.2006 22:57
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Максим

Репутация: -  0  +


Всем привет!

Не могу решить задачу, а скоро сдавать контрольную. Помогите, кто чем сможет.

Организовать заполнение двумерного массива целыми числами случайным образом используя Random. Из исходной матрици получить новую, путем добавления в нее строк из нулей, перед строками, содержащими наибольшее количество элементов, превышающих число А (вводится пользователем). Вывести на экран исходную и полученную матрицы...

Заранее благодарен, Jeeb.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 22.01.2006 12:14
Сообщение #2


Гость






var
buf: array[1 .. num_cols] of integer;
buf_len: integer;
...
ReadLn(A); { Это - то самое A }
max_count := 0; { здесь будет храниться максимум встреченных чисел в строке которые > А}

for i := 1 to num_rows do begin { num_rows = число строк матрицы }

count := 0;
for j := 1 to num_cols do begin { num_cols = число столбцов }
if mx[i, j] > a then inc(count)
end;
if count > max_count then begin
max_count := count;
buf_len := 1; buf[buf_len] := i;
end
else
if count = max_count then begin
inc(buf_len); buf[buf_len] := i;
end;

end;


теперь у тебя в массиве buf хранятся индексы строк, в которых содержится максимальное число элементов > А (число этих индексов = buf_len).

Проходи по этоиу массиву и добавляй перед каждой строкой строкой с хранящимся там индексом, пустую строку (не забывая изменять оставшиеся индексы, т.к. при добавлении строки часть матрицы сдвинется на 1 вниз)... Как это реализовать - саму идею - можно посмотреть здесь: Работа с динамическими матрицами

Будут вопросы - обращайся...

P.S. можно сделать и без buf, я привел только один из возможных способов...
 К началу страницы 
+ Ответить 
Jeeb
сообщение 22.01.2006 12:54
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Максим

Репутация: -  0  +


Цитата(volvo @ 22.01.2006 12:14) *

var
buf: array[1 .. num_cols] of integer;
buf_len: integer;
...
ReadLn(A); { Это - то самое A }
max_count := 0; { здесь будет храниться максимум встреченных чисел в строке которые > А}

for i := 1 to num_rows do begin { num_rows = число строк матрицы }

count := 0;
for j := 1 to num_cols do begin { num_cols = число столбцов }
if mx[i, j] > a then inc(count)
end;
if count > max_count then begin
max_count := count;
buf_len := 1; buf[buf_len] := i;
end
else
if count = max_count then begin
inc(buf_len); buf[buf_len] := i;
end;

end;


теперь у тебя в массиве buf хранятся индексы строк, в которых содержится максимальное число элементов > А (число этих индексов = buf_len).

Проходи по этоиу массиву и добавляй перед каждой строкой строкой с хранящимся там индексом, пустую строку (не забывая изменять оставшиеся индексы, т.к. при добавлении строки часть матрицы сдвинется на 1 вниз)... Как это реализовать - саму идею - можно посмотреть здесь: Работа с динамическими матрицами

Будут вопросы - обращайся...

P.S. можно сделать и без buf, я привел только один из возможных способов...



А теперь я не врубаюсь, что здесь "count"? smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 10:23
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"