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

Форум программистов: 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 сообщение ] 


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

Зарегистрированные пользователи: нет зарегистрированных пользователей


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

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