1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
есть ошибка в условии "If Simple_number", пытался исправить, но видимо неверно. помогите исправить)
Const Nmax=100; Type IndexType=1..Nmax; Matrix=Array[IndexType,IndexType] of Longint; Function Simple_number(A:Longint): Boolean; Var d,b : Word; Begin A:=Abs(A); If A<2 then begin Simple_number:=False; Exit; End; Simple_number:=True; b:= trunc(sqrt(A)); For d:=2 to b do begin If (A mod d)=0 then begin Simple_number:=False; break; End; End; End; Function exist_3(A:Longint): Boolean; Var q,p :Longint; Begin A:=Abs(A); q:=A; exist_3:=False; While q>0 do begin p:=q mod 10; If p=3 then begin exist_3:=True; Exit; End; q:=q div 10; End; End; Procedure Change(Var A:Matrix; n:IndexType); Var i,j :IndexType; max :Longint;
Begin max:=low(Longint); j:=1; While j<=n do begin For i:=1 to n do begin If A[i,j]>max then max:=A[i,j]; End; A[j,j]:=max; inc(j); End; End; Procedure Out(A:Matrix; n:IndexType); Var i,j :IndexType; Begin Writeln; For i:=1 to n do begin For j:=1 to n do write(A[i,j]); Write(#10#13,#10#13); End; End;
Var A :Matrix; i,j,n,m :Integer; count :Word; Begin Repeat Write('Vvedite parametri matrici(n<100)'); Read(n); m:=n; Writeln('Matrix:'); Until (n>=1) and (n<=Nmax); For i:=1 to n do begin For j:=1 to n do Read(A[i,j]); End; count:=0; For j:=1 to n do begin For i:=1 to n do Simple_number(A[i,j]); If Simple_number(A[i,j]) then begin exist_3(A[i,j]); If exist_3(A[i,j]) then inc(count); End; End; If (count=m) and (exist_3(A[i,j])) then begin Change(A,n); end; for i:=1 to n do begin for j:=1 to n do write(a[i,j]:5); writeln; end; readln; End.
у меня как раз эти идеи были, но в выложенном коде подправил то что есть, чтоб (может быть) автору было понятнее, а если он потом хочет упростить, то пусть делает уже сам