![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Дмитрий |
![]()
Сообщение
#1
|
Гость ![]() |
Задача : дана матрица 9 на 9 . вычислить сумму диагоналей и тех, что их окаймляют(я думаю поняли). Вот мое решение:
Код program Matrica; const n=9; var i,j:integer; s1,s2,s3,s4,s5,s6,s:real; a:array[1..n,1..n]of integer; BEGIN for i:=1to n do for j:=1to n do begin writeln('vvedite a[',i,',',j,']:'); readln(a[i,j]); end; s1:=0;s2:=0;j:=2; for i:=1 to n-1 do begin s1:=s1+a[i,j]; s2:=s2+a[j,i]; j:=j+1; end; s3:=0; j:=1; for i:=1 to n do begin s3:=s3+a[i,j]; j:=j+1; end; {glavnaya diagonal i ee okaimlenie} s4:=0; i:=1; for j:=n downto 1 do begin if (i=round(n/2)) or (j=round(n/2)) then else s4:=s4+a[i,j]; i:=i+1; end; s5:=0; s6:=0; i:=1; for j:=n-1 downto 1 do begin if (i=round(n/2)) or (j=round(n/2)) then {chtoby 2 raza ne scnitalo} else begin s5:=s5+a[i,j]; s6:=s6+a[i+1,j+1]; i:=i+1;end; end; {pobochnaya diagonal i ee okaimlenie} s:=s1+s2+s3+s4+s5+s6; writeln('s=',s:6:2); END. Подскажите, где поставить randomize и random, а то вводить очень долго и чтоб генерировало только 2-значные числа. Может кто знает более простое решение этой задачи. Заранее спасибо за помощь!!! Сообщение отредактировано: volvo - 17.12.2004 16:40 |
![]() ![]() |
Булат Шакиров |
![]()
Сообщение
#2
|
Гость ![]() |
Код program Matrica; const n=9; var i,j:integer; s1,s2,s3,s4,s5,s6,s:real; a:array[1..n,1..n]of integer; BEGIN {*****}Randomize;{*****} for i:=1to n do for j:=1to n do {*****}a[i,j]:=Random(99);{*****} s1:=0;s2:=0;j:=2; for i:=1 to n-1 do begin s1:=s1+a[i,j]; s2:=s2+a[j,i]; j:=j+1; end; s3:=0; j:=1; for i:=1 to n do begin s3:=s3+a[i,j]; j:=j+1; end; {glavnaya diagonal i ee okaimlenie} s4:=0; i:=1; for j:=n downto 1 do begin if (i=round(n/2)) or (j=round(n/2)) then else s4:=s4+a[i,j]; i:=i+1; end; s5:=0; s6:=0; i:=1; for j:=n-1 downto 1 do begin if (i=round(n/2)) or (j=round(n/2)) then {chtoby 2 raza ne scnitalo} else begin s5:=s5+a[i,j]; s6:=s6+a[i+1,j+1]; i:=i+1;end; end; {pobochnaya diagonal i ee okaimlenie} s:=s1+s2+s3+s4+s5+s6; writeln('s=',s:6:2); END. Сообщение отредактировано: volvo - 17.12.2004 16:44 |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 13:38 |