11.12.2008, 01:13 | #1 (permalink) |
Member
Регистрация: 10.12.2008
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Тяжелая задача на массив
Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом ( оформить в виде процедуры ). Найти сумму эл-тов в тех строках, которые содержат хотя бы один отрицательный эл-т ( оформить в виде функции ); |
11.12.2008, 01:13 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Эти топики очень похожи на ваш и помогут вам разобраться Экзаменационная задача на массив Двумерный массив. Задача Массив Задача в Делфи на работу с таблицами. Двумерный массив Паскаль, двумерный массив. Задача. |
11.12.2008, 04:28 | #2 (permalink) |
Member
Регистрация: 25.04.2008
Сообщений: 238
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задача простейшая. Советую - лучше научиться. Потом в жизни пригодится. У нас в универе с программированием на паскале разобрался даже человек, у которого никогда не было компьютера до поступления.
Паскаль вспоминать не хочу, могу только алгоритм подсказать, если нужны знания, а не решения. Что же вы до сих пор хотя бы алгоритм не написали, если знаете метод решения? Постарайтесь воздержаться от нравоучений. Ваш модератор. |
12.12.2008, 22:02 | #4 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Как срочно нужно сделать? До завтра подождать может? Если никто не напишет, завтра запостю решение и этой, и второй задачи.
__________________
Убить всех человеков! |
13.12.2008, 01:07 | #5 (permalink) |
Member
Регистрация: 10.12.2008
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
О да, спасибо)) да, до завтра было бы в самый раз)) спасибо большое))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
13.12.2008, 19:08 | #6 (permalink) |
Member
Регистрация: 23.01.2008
Сообщений: 1,110
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 141
|
program p1;
uses crt; type mas:array [1..8,1..8] of integer; mk:array [1..8] of integ; var mat:mas; mask:mk; i,j,kol:integer; procedure piskK(a:mas; b:mk; k:integer); var j,i, fl:integer; begin k:=0; for i:=1 to 8 do begin fl=1; for j:=1 to 8 do if a[i,j] <> a[j,i] then fl=0; if fl=1 then begin k:=k+1; b[k]:=i; end; end; end; sum(a:mas); var summa, summaStr, i,j,fl:integer; begin summa:=0; for i:=1 to 8 do begin fl:=0; summaStr:=0; for j:=1 to 8 do begin if a[i,j]<0 then fl:=0; summaStr:=summaStr+a[i,j]; end; if fl=1 then summa:=summa+summaStr; end; sum:=summa; end; begin clrscr; writeln('vvod massiva'); for i:=1 to 8 do for j:=1 tp 8 do begin write('mat[',i,',',j,']= '); readln(mat[i,j]); end; kol:=0; poiskK(mat:mas; mask:mk;kol:integer); writeln('Vyvod k'); for i:=1 to kol do write(mask[i],' '); writeln; writeln('Summa ravna', sum(mat:mas); readkey; end. |
15.12.2008, 12:57 | #9 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
В принципе bubuka уже сделал, но все равно вот второй вариант решения
Код:
program massiv3; uses crt; label inp1; var n,k,i,j: integer; sum: integer; a: array[1..8,1..8] of integer; s: array[1..8] of integer; {функция суммы элементов строки массива} function summa (b: integer):integer; var s1:integer; begin s1:=0; for n:=1 to 8 do s1:=s1+a[b,n]; summa:=s1; end; {процедура поиска совпадений строк и столбцов} procedure search; begin for i:=1 to 8 do for j:=1 to 8 do if a[i,j]=a[j,i] then s[i]:=s[i]+1; {вывод результатов поиска} for i:=1 to 8 do if s[i]=8 then begin n:=n+1; writeln('Совпадают ',i,' строка и ',i,' столбец.'); end; if n=0 then writeln('Совпадений строк и столбцов не найдено.'); end; {основная программа} begin randomize; clrscr; {выбор источника значений массива} inp1: writeln('Выберите способ заполнения массива (1 - вручную, 2 - псевдослучайные значения)'); readln(k); case k of {заполнение массива вручную} 1: begin for i:=1 to 8 do for j:=1 to 8 do begin writeln('Введите [',i,';',j,'] элемент массива'); read(a[i,j]); end; end; {1} {заполнение массива псевдослучайными значениями} 2: begin for i:=1 to 8 do for j:=1 to 8 do begin a[i,j]:=trunc(random*10); if trunc(random*2)=1 then a[i,j]:=a[i,j]*(-1); end; end; {2} else goto inp1; end; {case} writeln('Массив заполнен значениями:'); {вывод массива на экран} writeln; for i:=1 to 8 do begin for j:=1 to 8 do begin write(a[i,j]:2,' '); end;{j} writeln; end;{i} writeln; {поиск максимального по модулю элемента массива при помощи процедуры search} search; writeln; {сумма элементов в строках с отрицательным элементом} for i:=1 to 8 do begin for j:=1 to 8 do begin if a[i,j]<0 then begin sum:=summa(i); writeln('Сумма элементов в ',i,' строке равна ',sum); break; end; end; {j} end; {i} readln(i); end.
__________________
Убить всех человеков! |
15.12.2008, 21:44 | #10 (permalink) |
Member
Регистрация: 10.12.2008
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
В очередной раз благодарю вас)) Спасибо)))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|