Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ наибольшее из простых чисел

Автор: spektr 22.12.2006 22:01

Задача:в какждой строке матрицы 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.все не так не ответ (это последняя задача в семестре надо сдать до пузичных каолик)

Автор: мисс_граффити 23.12.2006 0:15

у меня тоже к тебе 2 вопроса:
1) почему программа обрывается на полуслове?
2) массив может быть заполнен только положительными числами?

Автор: spektr 23.12.2006 0:41

1.напал ступор от осознания того ,что все что я делаю бред.
2.да,т.к простые числа положительны.

Автор: volvo 23.12.2006 0:43

Цитата
напал ступор от осознания того ,что все что я делаю бред.
С чего вдруг такое осознание? Ты полностью программу напиши, потом посмотрим, бред это или не совсем... По куску, который приведен ничего сказать нельзя...

Автор: spektr 24.12.2006 17:23

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.




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


Автор: мисс_граффити 24.12.2006 18:12

может, не

  A[i,j]:=pr;

а наоборот?

Автор: spektr 24.12.2006 18:45

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

почему так
а не
12
30

Автор: мисс_граффити 24.12.2006 19:00

так лучше?

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 24.12.2006 19:18

dance.gif спасибо тебе, give_rose.gif give_rose.gif give_rose.gif