→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Очень прошу! Помогите решить крошечный фрагмент в Паскале! 
Автор Сообщение
Начинающий

Регистрация: 23.11.2008
Сообщения: 1

Репутация: 0 [ ? ]
Сообщение Очень прошу! Помогите решить крошечный фрагмент в Паскале!
Люди, пожалуйста, помогите мне! Всю программу написала, проблема осталась только с сортировкой! Скажите, в чем моя ошибка в сортировке, или напишите, как правильно сортировать. Заранее спасибо. Очень надеюсь на вашу помощь.

Задача:Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.

Текст программы:

program l;
const m=4;n=3;
type matrix=array [1..m,1..n] of integer;
vector=array[1..m] of integer;
var a:matrix;
v:vector;
kol:integer;

procedure vvod (var a:matrix);
var i,j:integer;
begin
writeln('vvod');
For i:=1 to m do
For j:=1 to n do
readln (a[i,j]);
end;

Procedure kolich (a:matrix; var kol:integer);
var i,j,f: integer;
begin
kol:= 0;
For j:=1 to n do
begin
f:=0;
for i:=1 to m do
begin
if a[i,j]=0 then f:=1;
end;
If f=0 then kol:=kol+1
end;
end;


procedure summ (a:matrix; var v:vector);
var i,j: integer;
begin
for i:=1 to m do
begin
v[i]:=0;
for j:=1 to n do
if (a[i,j])>0 then
if((a[i,j]) mod 2)=0 then v[i]:=v[i]+a[i,j];
end;
end;

procedure vyvod (a:matrix;var v:vector);
var i,j: integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
write (a[i,j]);
writeln;
end;
End;

procedure sort (a:matrix;var v:vector);
var buf_sum:integer;i,j,min,buf_a:integer;
begin
for i:=1 to m-1 do
begin
min:=1;
for j:=i+1 to n do
if v[i]<v[min] then min:=j;
buf_sum:=v[i];
v[i]:=v[min];
v[min]:=buf_sum;
for j:=1 to n do
begin
Buf_a:=a[i,j];
a[i,j]:=a[min,j];
a[min,j]:=buf_a;
end;
end;
end;

begin
vvod(a);
kolich(a,kol);
summ(a,v);
vyvod(a,v);
sort(a,v);
vyvod(a,v);
writeln ('kolichestvo stolbikov ne soderjashih nyleu ravno ', kol);
readln;
end.


23.11.2008 11:42
Профиль ICQ
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Кто сейчас на конференции

Зарегистрированные пользователи: Majestic-12 [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
© 2013 «Форум программистов Украины»