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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2011, 11:50   #1
darkline
 
Регистрация: 10.02.2011
Сообщений: 8
По умолчанию Создание матрицы 3х4

Помогите сделать матрицу 3х4, которая находит общее количество положительных чисел и находит самое большое число в 3 строчке (при этом выделяя его цветом и показывая его координаты).

Выглядит примерно так:

15 0 -17 14
5 -10 -20 -2
11 -11 7 -6

Самый большой элемент в 3 строке 11, находится [3,1].
В матрице 5 положительных чисел.

Последний раз редактировалось darkline; 10.02.2011 в 11:56.
darkline вне форума Ответить с цитированием
Старый 10.02.2011, 12:23   #2
xen
Пользователь
 
Регистрация: 13.03.2007
Сообщений: 45
По умолчанию

Вот ася - 630076408. Пиши помогу.
xen вне форума Ответить с цитированием
Старый 10.02.2011, 13:46   #3
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Код:
{Задаем изначальные параметры}
max_i:=1;
max_j:=3;
max:=a1[max_i,max_j];
{перебираем элементы}
for i:=1 to 4 do
for j:=1 to 3 do
begin
if (a1[i,j]>0) then inc(pol_chisl); {число >0 - увеличиваем счетчик}
if (a1[i,j]>max) and (j=3) then {число больше ранее найденного максимального, стока 3я}
begin
max:=a1[i,j]; {меняем максимальное значение числа и запоминаем индексы}
max_i:=i;
max_j:=j;
end;
end;
{выводим всю эту лабуду на экран}
for i:=1 to 4 do
begin
for j:=1 to 3 do
if (max_i<>i) and (max_j<>j) then {координаты не совпадают с координатами найденного максимального}
write(a1[i,j],' | ') {просто выводим элемент}
else
begin
setcolor(red); {меняем цвет текста}
write(a1[i,j],' | '); {выводим элемент}
setcolor(black); {возвращаем стандартный цвет текста}
end;
writeln;
end;
writeln('Максимальный элемент в 3й строке ',max,', находится по координатам [',max_i,',',max_j,']');
writeln('Число положительных элементов = ',pol_chisl);
Примерно так. Объявить массив, переменные, заполнить массив - уже сам. Также используй для смены цвета текста функцию из хелпа своего компилятора.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)

Последний раз редактировалось Vanta11a; 10.02.2011 в 13:49.
Vanta11a вне форума Ответить с цитированием
Старый 10.02.2011, 16:53   #4
darkline
 
Регистрация: 10.02.2011
Сообщений: 8
По умолчанию

Вот я немного дополнил, только у меня почему то выводится 4 строки и 3 столбика. И не всегда правильно вычисляет общее количество положительных чисел. Можете помочь?

Код:
program matrix;
uses crt;
var max, max_i, max_j, i, j, pol_chisl : integer;
a1: array [1..4,1..3] of integer;
begin
clrscr;
max_i:=1;
max_j:=3;
max:=a1[max_i,max_j];
randomize;
for i:=1 to 4 do
for j:=1 to 3 do
a1[i,j]:=random(20)-10;
begin
if (a1[i,j]>0) then inc(pol_chisl);
if (a1[i,j]>max) and (j=3) then
begin
max:=a1[i,j];
max_i:=i;
max_j:=j;
end;
end;

for i:=1 to 4 do
begin
for j:=1 to 3 do
if (max_i<>i) and (max_j<>j) then
write(a1[i,j],' | ')
else
begin
setcolor (red);
write(a1[i,j],' | ');
setcolor (black);
end;
writeln;
end;
writeln('Максимальный элемент в 3й строке ',max,',находится по координатам  [',max_i,',',max_j,']');
writeln('Число положительных элементов = ',pol_chisl);
readln;
end.

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 10.02.2011 в 20:53.
darkline вне форума Ответить с цитированием
Старый 10.02.2011, 17:01   #5
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

По столбцам и строкам:
"4" заменить на "3", а "3" - на "4"
По положительным числам:
сразу после begin`а обнулить переменную pol_chisl
Если не поможет - заменить
Код:
if (a1[i,j]>0) then inc(pol_chisl);
на
Код:
if (a1[i,j]>0) then pol_chisl:=pol_chisl+1;
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)

Последний раз редактировалось Vanta11a; 10.02.2011 в 17:04.
Vanta11a вне форума Ответить с цитированием
Старый 13.02.2011, 18:22   #6
darkline
 
Регистрация: 10.02.2011
Сообщений: 8
По умолчанию

Ладно спасибо за помощь, уже разобрался.)
darkline вне форума Ответить с цитированием
Старый 11.05.2011, 17:45   #7
sittok
Новичок
Джуниор
 
Аватар для sittok
 
Регистрация: 14.04.2011
Сообщений: 2
По умолчанию

это в Bulder или Visual?
sittok вне форума Ответить с цитированием
Старый 11.05.2011, 18:18   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
это в Bulder или Visual?
Это в TurboPascal
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание квадратной матрицы Sl@m Помощь студентам 2 26.11.2010 08:39
Создание символьной матрицы, классы Crudelis Общие вопросы C/C++ 5 18.06.2010 19:15
Создание матрицы dukesoteg Помощь студентам 10 12.06.2010 18:19
создание и заполнение матрицы Blad47 Общие вопросы C/C++ 6 13.12.2008 16:38
матрица 3х4 и надо решить методом Гауса Колян Паскаль, Turbo Pascal, PascalABC.NET 1 04.12.2007 12:09