![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Определение столбца............. |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите пожалуйста
Вот такая задача Я нашел число нулевых элементов в каждом столбце(ch[j]) И теперь мне надо найти столбец в котором больше всего нулевых элементов.? |
![]() ![]() |
Serega18 |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сделал так:Сделал еще одну процедуру в которой из элементов измененной матрицы А формирую матрицу В и потом в F2 вывожу уже матрицу В.Так я могу сделать?
Исходный код Program S4_3_3; Uses crt; Type Matrix=array[1..4,1..5] of real; Odn=array[1..5] of real;var A,B:matrix; ch:odn; i,j,indx:integer; f1,f2:text; Procedure chislo(var A:matrix;ch:odn); var i,j:integer; Begin ch[j]:=0; For i:=1 to 4 do Begin For j:=1 to 5 do Begin IF A[i,j]=0 Then ch[j]:=ch[j]+1; end; end; end; Function min_nulls(var a:matrix):integer; var i,j:integer; min,indx,count:integer; Begin min:=5; for j:=1 to 5 do Begin count:=0; for i:=1 to 4 do if A[i,j]=0 then inc(count); If min>count then Begin min:=count; indx:=j; end; end; min_nulls:=indx; end; Procedure resort(var A:matrix;indx:integer); Var i:integer; T:real; Begin If indx<>1 then for i:=1 to 4 do Begin T:=A[i,1]; A[i,1]:=A[i,indx]; A[i,indx]:=T; end; end; Procedure ST(var A:matrix;indx:integer); Var i,j,n:integer; Begin n:=0; for i:=1 to 4 do Begin IF A[i,indx]=0 then Begin A[i,indx]:=A[5-n,indx]; A[5-n,indx]:=0; n:=n+1; end; end; end; Procedure output(A,B:matrix); Var i,j:integer; Begin for i:=1 to 4 do Begin For j:=1 to 5 do A[i,j]:=B[i,j]; end; end; Begin assign(f1,'isdan.pas'); assign(f2,'vdan.pas'); reset(f1); rewrite(f2); Begin for i:=1 to 4 do Begin For j:=1 to 5 do read(f1,A[i,j]); end; writeln(f2,B[i,j]); end; Begin clrscr; chislo(A,ch); min_nulls(A); resort(A,indx); St(A,indx); Output(A,B); readln; end; end. Сообщение отредактировано: volvo - |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата(Serega18 @ 30.05.05 16:52) Так я могу сделать? Сделать-то можешь только... Вот программа-то твоя работать если и будет, то с ошибками. Смотри: Procedure chislo(var A:matrix;ch:odn);В ней ты меняешь содержимое массива Ch, но пойми, что этих изменений ты не увидишь: чтобы их увидеть, нужно передавать массив так: Procedure chislo(var A:matrix;var ch:odn); А так как сейчас у тебя - массив не изменится... Аналогично здесь: Procedure output(A,B:matrix);Какой матрица B была до вызова Output, такой и останется (по причине, указанной выше)... |
![]() ![]() |
![]() |
Текстовая версия | 7.09.2025 15:12 |