Помощь - Поиск - Пользователи - Календарь
Полная версия: наибольшее из простых чисел
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
spektr
Задача:в какждой строке матрицы A(N,N) определите наибольшее простое число,если в строке нет простых чисел выдайте соответствующее значение.


Мой вариант:
Program natyr;
VAR
A:array [1..100,1..100] of integer;
i,j,n,k : integer;
f : boolean;
Begin
WriteLn('vvedite razmernost massiva');
readLn (n);
For i:=1 to n do
For j:=1 to n do
ReadLn (A[i,j]);
For i:=1 to n do
begin
For j:=1 to n do
Begin
F:=false
For k:=2 to A[i,j] do
If (A[i,j] mod k )=0
Then f:= true
If (f=false)
then A[i,j] {vot zdesi ostanovilas proverit kak rabotaet,a ni kak ne rabotaet,nyli vidaet}


вопрос:
1.Почему выдает нули
2.Что не так
3.все не так не ответ (это последняя задача в семестре надо сдать до пузичных каолик)
мисс_граффити
у меня тоже к тебе 2 вопроса:
1) почему программа обрывается на полуслове?
2) массив может быть заполнен только положительными числами?
spektr
1.напал ступор от осознания того ,что все что я делаю бред.
2.да,т.к простые числа положительны.
volvo
Цитата
напал ступор от осознания того ,что все что я делаю бред.
С чего вдруг такое осознание? Ты полностью программу напиши, потом посмотрим, бред это или не совсем... По куску, который приведен ничего сказать нельзя...
spektr
Program natyr;
VAR
A:array [1..100,1..100] of integer;
i,j,n,k,pr : integer;
f : boolean;
Begin
WriteLn('vvedite razmernost massiva');
readLn (n);
For i:=1 to n do
For j:=1 to n do
ReadLn (A[i,j]);
For i:=1 to n do
begin
For j:=1 to n do
Begin
F:=false;
For k:=2 to (A[i,j]-1) do
If (A[i,j] mod k )=0
Then f:= true;
If (f=false)
then
A[i,j]:=pr;
end;
end;
for i:=1 to n do
begin
writeLn;
For j:=1 to n do
write (pr);
end;
END.




программа считает что ни одно из чисел не являеться простым.

мисс_граффити
может, не
  A[i,j]:=pr;

а наоборот?
spektr
спасибо,но он все равно не то выдает,при вводе 1234 для n=2 он выдает
33
33

почему так
а не
12
30
мисс_граффити
так лучше?
Program natyr;
VAR
A:array [1..100,1..100] of integer;
i,j,n,k,pr,max : integer;
f : boolean;
Begin
max:=0;
WriteLn('vvedite razmernost massiva');
readLn (n);
For i:=1 to n do
For j:=1 to n do
ReadLn (A[i,j]);
writeln;
writeln;
For i:=1 to n do
begin
For j:=1 to n do
Begin
F:=false;
For k:=2 to (A[i,j]-1) do
If (A[i,j] mod k )=0 Then
f:= true;
If (f=false) then
pr:=A[i,j];
if pr>max then
max:=pr;
end;
writeln(max);
max:=0;
end;
{ for i:=1 to n do
begin
writeLn;
For j:=1 to n do
write (pr);
end;}
END.
spektr
dance.gif спасибо тебе, give_rose.gif give_rose.gif give_rose.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.