|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.11.2008, 00:19 | #1 |
Регистрация: 26.11.2008
Сообщений: 2
|
Скажите, в чем моя ошибка в сортировке, или напишите, как правильно сортировать. язык Паскаль.
Люди, пожалуйста, помогите мне! Всю программу написала, проблема осталась только с сортировкой! Скажите, в чем моя ошибка в сортировке, или напишите, как правильно сортировать. Заранее спасибо. Очень надеюсь на вашу помощь.
Задача:Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. Текст программы: 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:integ er; 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сменить язык в Паскаль 7.0 ??? раньше работало, сейчас не работает! | koir | Помощь студентам | 2 | 19.06.2008 21:32 |
Ошибка в сортировке | Veiron | Общие вопросы Delphi | 14 | 21.01.2008 21:35 |
Паскаль. Напишите программу,удваивающую каждый символ в заданном тексте | Yola | Помощь студентам | 2 | 19.11.2007 17:31 |