![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Edelana |
![]()
Сообщение
#1
|
Гость ![]() |
объясните, пожалуйста, принцип перестановки и замены строки на строку, строки на столбец, как менять куски матрицы (подматрицы), как работать с диагоналями.
Я пробовала, но что то не очень получается. Немного с диагоналями вот только разобралась. Код program Z_8; uses crt; const n=10; var a:array[1..n,1..n] of integer; g,p,i,j:integer; begin textbackground(0); clrscr; randomize; for i:=1 to n do for j:=1 to n do a[i,j]:=random(2); for i:=1 to n do begin for j:=1 to n do begin if i=j then textcolor(10) else textcolor(7); if j=n+1-i then textcolor(12); write( a[i,j]:3); end; writeln; end; textcolor(7); for i:=1 to n do begin p:=p+a[i,n+1-i]; end; writeln(' summa pobochnoi diagonali= ',p); for i:=1 to n-1 do begin g:=g+a[i,i]; end; writeln(' summa glavnoi daigonali= ',g); readkey; end. Мне ничего решать не надо. Я хочу сама научиться, просто объясните, как делать(как и от чего зависит) и желательно на примерах, своих, но по теме. Только не говорите чтоб по форуму искала и факи читала. Я там была. Это так сказать основы или готовые программы в которых не могу разобраться,а мне нужна практика и принцип решения. Заранее всем огромное спасибо. Код в теги... |
![]() ![]() |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Edelana, ничего сложного нет, давайте вместе с вами посмотрим как это делается!
Цитата менять местами строку со столбцом, строку со строкой, диаогнали, пероворачивать Как было замеченно выше один из способов - использовать дополнительный массив - БУФЕР. Хотя можно было обойтись и без дополнительного. Итак, посмотрим как поменять местами две строки... Код {...} var a:array[1..N,1..N] of TTYPE; buf :=array[1..N] of TTYPE; {....} i,j,ii:integer; Begin I:=2; {вторую строку меняем ...} ii:=5 {на пятую} For j:=1 to N do Buf[j]:=a[i,j]; {копируем строку в буфер} For j:=1 to N do a[i,j]:=a[ii,j]; {переписывапем строку ii в i} For j:=1 to N do a[ii,j]:=buf[j]; {переписываем из буфера в ii} end. Думаю принцип ясен. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Edelana |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата(Oleg_Z @ 11.03.05 17:50) Edelana, ничего сложного нет, давайте вместе с вами посмотрим как это делается! .... спасибо за участие, .... Код program Z_8; uses crt; const n=10; type mas=array[1..n,1..n] of integer; var s,a:mas; g,p,i,j:integer; ..... for i:=1 to n do for j:=1 to n do begin if i=j then begin s[i,j]:=a[i,j]; a[i,j]:=a[i,n-i+1]; a[i,n-i+1]:=s[i,j]; end; end; ..... А как сделать то же самое только с типизированным файлом? Что посоветуете? Сообщение отредактировано: Edelana - 11.03.2005 18:00 |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 10:34 |