![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
kirik67 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
Доброго времени суток. Такая задача: задать размер массива в ручную, элементы автоматически. строку с наименьшей сумой элементов разделить на главную диагональ.( так же добавить защиту от неправильного ввода)
program rp_1;
uses crt;
const NN=10;
MM=10;
var i,j:word;
type
Matrix=array[1..NN,1..MM] of integer;
procedure readmatr(var A:Matrix; var n,m:word);
begin
randomize;
repeat
writeln('vvedite razmer stroki=');;readln(N);
until (N>0) and (N<=NN);
repeat
writeln('vvedite razmer stolbca='); readln(M);
until (M=N) ;
for i:=1 to n do begin
for j:=1 to m do begin
A[i,j]:=Random(10)-Random(10);
end
end
end;
Procedure PrintMatr(A:Matrix; n,m:word);
var i,j:word;
begin
For i:=1 to n do begin
for j:=1 to m do write(A[i,j],' ');
writeln
end
end;
var n,m:word;
a:matrix;
ts,mts,dig:integer;
res:real;
begin
clrscr;
readmatr(a,n,m);
printmatr(a,n,m);
ts:=0;
for i:=1 to m do
ts:=ts+A[i,j];
if ts<mts then
mts:=ts;
for i:=1 to n do
begin
for j:=1 to n do
begin
if j=i then dig:=dig+A[i,j];
end;
end;
writeln('Minimalnaya_stroka=',mts,' ','Diagonal=',dig);
res:=(mts)/(dig);
Writeln('Resultat=',res:6:4);
readln;
end.
Так вот, проблема в том, что при задании одного и того же размера матрицы он выдает значения, которые были верны в первый раз. Т.е. допустим в первый раз в матрице 3х3 мин. строка=6(-2 2 6); во второй раз в матрице 3х3 мин.строка опять=6(-2 8 -8). Подскажите, в чем ошибка? |
![]() ![]() |
![]() |
Текстовая версия | 1.08.2025 19:38 |