Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Задача на Паскаль (http://www.tehnari.ru/f41/t73525/)

Christian 20.05.2012 02:10

Задача на Паскаль
 
Разработать программу создания текстового файла, который содержит матрицу случайных чисел заданного размера из указанного диапазона целых чисел и находит простые числа.

Vladimir_S 20.05.2012 12:14

Цитата:

Сообщение от Christian (Сообщение 734967)
Разработать программу создания текстового файла, который содержит матрицу случайных чисел заданного размера из указанного диапазона целых чисел и находит простые числа.

Есть, сэр! Разработал, сэр!
Код:

Const
 Mmax=10;
 Nmax=9;
 Lmin=0;
 Lmax=64000;
Var
 A:Array[1..Mmax,1..Nmax] of Word;
 M,N,i,j,Npr:Byte;
 L,L1,L2:Word;
 f:Text;

Function Prime(V:Word):boolean;
var
 k:Word;
 b:Boolean;
begin
 b:=false;
 If V>3 then
  begin
  k:=V div 2;
  Repeat
    If (V mod k)=0 then b:=Not(b);
    Dec(k);
  Until b or (k=1);
  end;
 Prime:=Not(b);
end;

Begin
 Write('Number of lines (<',Mmax+1,') = ');
 Readln(M);
 Write('Number of columns (<',Nmax+1,') = ');
 Readln(N);
 Write('Lower element value limit (>',Lmin,') = ');
 Readln(L1);
 Write('Upper element value limit (<',Lmax,') = ');
 Readln(L2);
 Assign(f,'XXX.txt');
 Rewrite(f);
 Randomize;
 For i:=1 to M do
  begin
  For j:=1 to N do
    begin
    A[i,j]:=L1+Random(L2-L1);
    Write(f,A[i,j]:8);
    end;
  Writeln(f);
  end;
 Writeln(f);
 Writeln(f,'Primes:');
 Npr:=0;
 For i:=1 to M do
  For j:=1 to N do
  If Prime(A[i,j]) then
    begin
    Inc(Npr);
    Write(f,A[i,j]:8);
    If (Npr mod N)=0 then Writeln(f);
    end;
 If Npr=0 then Writeln(f, 'No!');
 Close(f);
End.

Разрешите быть свободным, сэр?

Daniellos 20.05.2012 12:38

Владимир, а у меня тоже вопрос, а нельзя ли было использовать одну постоянную Mmax, и в массиве Nmax обозначить как Mmax-1 ?

Vladimir_S 20.05.2012 13:02

Цитата:

Сообщение от Daniellos (Сообщение 735047)
Владимир, а у меня тоже вопрос, а нельзя ли было использовать одну постоянную Mmax, и в массиве Nmax обозначить как Mmax-1 ?

А зачем жестко связывать максимально допустимое число строк и столбцов друг с другом? Это независимые параметры и определяются они отдельными независимыми константами. Кстати, у меня они выбраны такими исходя из того, чтобы матрица влезла в экран в DOS VGA моде, а другие пользователи могут и существенно расширить диапазон, причем независимо для строк и столбцов. Например, задать 40 строк и 28 столбцов. Если экран позволяет.

Christian 20.05.2012 18:01

хорошая работа mr. Vladimir_S ) очень помогли!
если будет время то посмотрите пожалуйста еще эту задачу:
http://www.tehnari.ru/f41/t73562/


Часовой пояс GMT +4, время: 01:14.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.