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

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

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

> Сортировка матрицы, в чём ошибка?
MyNameIs
сообщение 19.12.2006 22:03
Сообщение #1


Новичок
*

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

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


Не пойму, в чём ошибка при сортировке матрицы. Читаю из файла матрицу, всё ок. Но после сортировки на местах элементов появляются числа типа 15358. Помогите unsure.gif

procedure k1(n:integer;x:mat;k2:string;var z:mat);
var i,j,l,k,t:integer;
b:array [1..10] of integer;
begin
if (k2='>') then begin
k:=0;
for i:=1 to n do
for j:=1 to n do begin
k:=k+1;
b[k]:=x[i,j];
end;
for l:=k downto 2 do
for i:=1 to k-1 do
if (b[i+1]>b[i]) then begin
t:=b[i];b[i]:=b[i+1];b[i+1]:=t;
end;
k:=0;
For i:=1 to n do
for j:=1 to n do begin
k:=k+1;x[i,j]:=b[k];
end;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 14)
мисс_граффити
сообщение 19.12.2006 22:10
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


ты что делаешь?
у тебя запрет на изменение х.
какой нафиг
x[i,j]:=b[k];
?

Сообщение отредактировано: мисс_граффити - 19.12.2006 22:12


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
MyNameIs
сообщение 19.12.2006 22:14
Сообщение #3


Новичок
*

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

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


Так, и как это обойти?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.12.2006 22:29
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


procedure k1(n:integer;x:mat;k2:string;var z:mat); 

либо писать var x: mat, либо результат записывать в непонятно для чего предназначенную z (второе - если хочешь сохранить в неприкосновенности исходный массив)


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
MyNameIs
сообщение 19.12.2006 22:38
Сообщение #5


Новичок
*

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

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


Цитата(MyNameIs @ 19.12.2006 22:03) *

Не пойму, в чём ошибка при сортировке матрицы. Читаю из файла матрицу, всё ок. Но после сортировки на местах элементов появляются числа типа 15358. Помогите unsure.gif

procedure k1(n:integer;x:mat;k2:string;var z:mat);
var i,j,l,k,t:integer;
b:array [1..10] of integer;
begin
if (k2='>') then begin
k:=0;
for i:=1 to n do
for j:=1 to n do begin
k:=k+1;
b[k]:=x[i,j];
end;
for l:=k downto 2 do
for i:=1 to k-1 do
if (b[i+1]>b[i]) then begin
t:=b[i];b[i]:=b[i+1];b[i+1]:=t;
end;
k:=0;
For i:=1 to n do
for j:=1 to n do begin
k:=k+1;x[i,j]:=b[k];
end;
for i:=1 to n do
for j:=1 to n do
z[i,j]:=x[i,j];
end;



Всё равно ругается unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.12.2006 22:42
Сообщение #6


Гость






Цитата
Всё равно ругается
Где, и (главное) - как ругается, покажи...
 К началу страницы 
+ Ответить 
MyNameIs
сообщение 19.12.2006 22:52
Сообщение #7


Новичок
*

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

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


1 2 3 4 5
2 2 2 2 2
0 0 0 1 5
4 4 4 4 4
8 5 0 0 3

моя матрица, читается из файла.

вот что получается-

3 1 5 4 4
4 4 4 8 5
0 12 24932 4 3
15873 0 0 0 0
0 0 0 0 0

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.12.2006 23:35
Сообщение #8


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


For i:=1 to n do
for j:=1 to n do begin
k:=k+1;x[i,j]:=b[k];
end;
for i:=1 to n do
for j:=1 to n do
z[i,j]:=x[i,j];

зачем???
For i:=1 to n do
for j:=1 to n do begin
k:=k+1;z[i,j]:=b[k];
end;


покажи, как вызываешь эту процедуру.
то есть текст программы полностью приведи.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
MyNameIs
сообщение 19.12.2006 23:40
Сообщение #9


Новичок
*

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

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



это из юнита.

procedure k1(n:integer;x:mat;k2:string;var z:mat);
var i,j,l,k,t:integer;
b:array [1..10] of integer;
begin
if (k2='>') then begin
k:=0;
for i:=1 to n do
for j:=1 to n do begin
k:=k+1;
b[k]:=x[i,j];
end;
for l:=k downto 2 do
for i:=1 to k-1 do
if (b[i+1]>b[i]) then begin
t:=b[i];b[i]:=b[i+1];b[i+1]:=t;
end;
k:=0;
For i:=1 to n do
for j:=1 to n do begin
k:=k+1;x[i,j]:=b[k];
end;
end;
if (k2='<') then begin
k:=0;
for i:=1 to n do
for j:=1 to n do begin
k:=k+1;
b[k]:=x[i,j];
end;
for l:=k downto 2 do
for i:=1 to k-1 do
if (b[i+1]<b[i]) then begin
t:=b[i];b[i]:=b[i+1];b[i+1]:=t;
end;
k:=0;
For i:=1 to n do
for j:=1 to n do begin
k:=k+1;x[i,j]:=b[k];
end;
end;
for i:=1 to n do
for j:=1 to n do
z[i,j]:=x[i,j];
end;



это сама прога

program Modul;
uses crt,D11D;
var A,B,C,A1,B1,C1,T,T1:mat;
i,j,n,n11,s,v:integer;
ab,ac,ad:string;
l:string;

begin
clrscr;
write('ђ §¬Ґа­®бвм ¬ ваЁжл = ');readln(n11);
ab:=('dk.dat');
ac:=('dk1.dat');
ad:=('dk2.dat');
vvod (ab,n11,n11,A);
vvod (ac,n11,n11,B);
vvod (ad,n11,n11,C);
l:='>';
{k1(n11,A,l,A1);
k1(n11,B,l,B1);
k1(n11,C,l,C1);}

sum(n11,A1,B1,T1);
sum(n11,T1,C1,T);
writeln('summarnaia Matrica');
Vivod(n11,n11,T);
readkey;
clrscr;
writeln('Matrica1');
{k1(n11,A,l,A1);}
Vivod(n11,n11,A1);
readkey;
clrscr;
writeln('Matrica2');
{k1(n11,B,l,B1);}
Vivod(n11,n11,B1);
readkey;
clrscr;
writeln('Matrica3');
{k1(n11,C,l,C1);}
Vivod(n11,n11,C1);
readkey;

end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.12.2006 23:49
Сообщение #10


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


как описан тип mat?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
MyNameIs
сообщение 19.12.2006 23:55
Сообщение #11


Новичок
*

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

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


Цитата(мисс_граффити @ 19.12.2006 23:49) *

как описан тип mat?


Описан в модуле
type mat=array [1..10,1..10] of integer;


Сообщение отредактировано: MyNameIs - 19.12.2006 23:55
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.12.2006 23:57
Сообщение #12


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


а как ты пытаешься его запихнуть в b:array [1..10] of integer;?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
MyNameIs
сообщение 20.12.2006 0:00
Сообщение #13


Новичок
*

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

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


Цитата(мисс_граффити @ 19.12.2006 23:57) *

а как ты пытаешься его запихнуть в b:array [1..10] of integer;?



Напиши плиз, как ты бы это сделала, а то мнещас ещё лабу по ссылкам делать, рисовать птичку, и в цикле графику.
Б Эррэй вроде для пузырька нужен, нет? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 20.12.2006 0:01
Сообщение #14


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


я просто не могу понять, как сунуть 100 элементов в 10 ячеек


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
MyNameIs
сообщение 20.12.2006 0:07
Сообщение #15


Новичок
*

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

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


Цитата(мисс_граффити @ 20.12.2006 0:01) *

я просто не могу понять, как сунуть 100 элементов в 10 ячеек


Так, значит надо запихать 100 элементов в массив, там его пузырём а потом обратно в матрицу. Массив просто чтоль поменять?


Цитата(MyNameIs @ 20.12.2006 0:05) *

Так, значит надо запихать 100 элементов в массив, там его пузырём а потом обратно в матрицу. Массив просто чтоль поменять?



Блин, с меня конфетка good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 22.06.2025 11:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"