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

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

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

> Все о матрице, Все о матрице
сообщение
Сообщение #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.


Мне ничего решать не надо. Я хочу сама научиться, просто объясните, как делать(как и от чего зависит) и желательно на примерах, своих, но по теме.
Только не говорите чтоб по форуму искала и факи читала. Я там была. Это так сказать основы или готовые программы в которых не могу разобраться,а мне нужна практика и принцип решения.

Заранее всем огромное спасибо.
Код в теги...
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Ищущий истину
******

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

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


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.


Думаю принцип ясен.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Женский

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


Цитата(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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Edelana   Все о матрице   11.03.2005 17:56
volvo   Тогда, извините, не совсем понятно, что от нас т…   11.03.2005 18:10
Guest   я не очень понимаю как менять местами строку со с…   11.03.2005 18:54
hiv   Думаю здесь проблема не в матрицах и их диагоналях…   11.03.2005 20:52
Altair   Edelana, ничего сложного нет, давайте вместе с вам…   11.03.2005 21:50
Edelana   спасибо за участие, .... program Z_8; uses crt; …   11.03.2005 21:59
hiv   Так можно, но зачем использовать целый массив s, е…   11.03.2005 22:16
volvo   Edelana hiv Можно маленький вопрос? зачем здесь во…   11.03.2005 22:26
hiv   :yes: Прошу прощения у всех! :yes: Лоханулся…   11.03.2005 22:33
Edelana   j:=2; jj:=5; for i:=1 to n do buf:=a[i,j]; for i:…   11.03.2005 23:16
volvo   Вот именно это hiv и попытался объяснить :) зачем…   11.03.2005 23:27
Edelana   а как на счет задачи от 07:16 PM ? то есть как т…   11.03.2005 23:31
volvo   Я бы делал вот так: const  size_y = 4; …   12.03.2005 0:05
volvo   Ну конечно в процедуре вывода... Дело не в том, чт…   12.03.2005 2:35
Edelana   а как работать с матрицами в файлах? как выше или …   12.03.2005 3:02
volvo   А с матрицами в файлах работать не нужно. Нужно ма…   12.03.2005 3:20


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

 





- Текстовая версия 7.09.2025 12:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name