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

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

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

 
 Ответить  Открыть новую тему 
> процедуры и двумерный массив
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


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

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

проблема в том, что процедуры для меня - новая тема, я ее еще не достаточно освоила, а задание нужно к середине недели

for i:=1 to n do
for k:=1 to n-1 do
if j:=1 to n-k do
if a[i,j]<a[i,j+1] then
begin
t:=a[i,j];
a[i,j]:=a[i,j+1];
a[i,j+1]:=t;
end;



b:=0;
for i:=1 to n do
for j:=1 to i do
a[i,j]:=b;


больше ничего не могу...

проблема в том, что я не разберусь, какие параметры должны быть входными-выходными

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Вожак стада
***

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

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


 
procedure obnulenie;
begin
b:=0;
for i:=1 to n do
for j:=1 to i do
a[i,j]:=b;
end;



 
procedure n1;
var t:{тип}
begin
for i:=1 to n do
for k:=1 to n-1 do
if j:=1 to n-k do
if a[i,j]<a[i,j+1] then
begin
t:=a[i,j];
a[i,j]:=a[i,j+1];
a[i,j+1]:=t;
end;
end;



--------------------
Админ наш,
Иже еси на серверах!
Да святится имя Твое,
Да приидет Unix Твой,
Да будет воля Твоя,
Как на земле , так и на небе.
Пинг наш насущный дай нам на сей день;
И прости нам счета наши, как и мы оставляем их должникам нашим;
И не введи нас во искушение виндовое,
Но избавь нас от лукавого Билли.
И да пребудет с нами сила твоя великая,
Во имя Отца-админа, Сына-Пингвина, и духа мастдайного. Админь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






mamont001, и... ?

А матрицу что, глобально описывать? Тогда смысл в процедурах какой? Никакого...

18192123, пробуй так:
Type TMatrix = array[1 .. 10, 1 .. 10] of integer;
Procedure Obnulenie(Var mx: TMatrix); { Внутри процедуры работать с этой переменной }
begin
...
end;


То же самое - с сортировкой...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


uses crt;
const n=10;
type vect=array[1..n] of real;
matr=array[1..n] of vect;
var
a:matr;
i,j,t:integer;
k:real;
procedure sortirovka(var x:matr; a,b,m,l:integer;var c:real);
var y:matr;
begin
for a:=1 to m do
for l:=1 to m-1 do
for b:=1 to m-l do
if y[a,b]<y[a,b+1] then
begin
c:=y[a,b];
y[a,b]:=y[a,b+1];
y[a,b+1]:=c;
end
end;
procedure obnylenie(var x:matr; a,b,m:integer; var c:real);
var y:matr;
begin
c:=0;
for a:=1 to m do
for j:=1 to a do
y[a,b]:=c;
end;
begin
clrscr;
writeln ('vvedite massiv');
for i:=1 to n do
for j:=1 to n do read (a[i,j]);
sortirovka(a,i,j,n,t,k);
for i:=1 to n do
for j:=1 to n do writeln (a[i,j]:4 :1,' ');
obnylenie(a,i,j,n,k);
for i:=1 to n do
for j:=1 to n do writeln (a[i,j]:4 :1,' ');
readkey;
end.


помогите с этим разобраться

М
Новости не читаем? Просил же не пользоваться тегами PASCОDE... Есть замена.



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






В процедуру сортировки зачем передаешь A, B, C? Лучше описать их локально внутри процедуры, иначе я повторяю - нет смысла делать процедуры, и заставлять их работать с глобальными переменными...

Второе: ты должна работать с той же самой матрицей, которую передаешь в процедуру. Иначе потом, когда тебе понадобится отсортировать не одну, а 2 матрицы, ты начнешь спрашивать, почему тебе для этого придется написать такую же процедуру два раза (чтобы матрица Y после второй сортировки не затерла первую...)

Насчет самой сортировки пузырьком - смотри в FAQ-е, надоело уже исправлять одну и ту же ошибку!

procedure sortirovka(var y: matr; m: integer);
var
a, b, L: integer;
c: real;
begin
for a:=1 to m do
for l:=1 to m-1 do
for b:=1 to m-l do
if y[a,b]<y[a,b+1] then begin
c:=y[a,b];
y[a,b]:=y[a,b+1];
y[a,b+1]:=c;
end
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


Цитата(volvo @ 5.11.2006 18:49) *

В процедуру сортировки зачем передаешь A, B, C? Лучше описать их локально внутри процедуры, иначе я повторяю - нет смысла делать процедуры, и заставлять их работать с глобальными переменными...

Второе: ты должна работать с той же самой матрицей, которую передаешь в процедуру. Иначе потом, когда тебе понадобится отсортировать не одну, а 2 матрицы, ты начнешь спрашивать, почему тебе для этого придется написать такую же процедуру два раза (чтобы матрица Y после второй сортировки не затерла первую...)

Насчет самой сортировки пузырьком - смотри в FAQ-е, надоело уже исправлять одну и ту же ошибку!

procedure sortirovka(var y: matr; m: integer);
var
a, b, L: integer;
c: real;
begin
for a:=1 to m do
for l:=1 to m-1 do
for b:=1 to m-l do
if y[a,b]<y[a,b+1] then begin
c:=y[a,b];
y[a,b]:=y[a,b+1];
y[a,b+1]:=c;
end
end;


а как мне вывести массив после сортировки и массив после обнуления с учетом процедур?


М
Не надо делать такие большие цитаты, когда это не необходимо. Уважай других участников форума. klem4.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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