• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Задача на Паскаль

Christian

Новые
Регистрация
20 Май 2012
Сообщения
12
Реакции
0
Баллы
0
Задача на Паскаль

Разработать программу создания текстового файла, который содержит матрицу случайных чисел заданного размера из указанного диапазона целых чисел и находит простые числа.
 
Разработать программу создания текстового файла, который содержит матрицу случайных чисел заданного размера из указанного диапазона целых чисел и находит простые числа.
Есть, сэр! Разработал, сэр!
Код:
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.
Разрешите быть свободным, сэр?
 
Владимир, а у меня тоже вопрос, а нельзя ли было использовать одну постоянную Mmax, и в массиве Nmax обозначить как Mmax-1 ?
 
Владимир, а у меня тоже вопрос, а нельзя ли было использовать одну постоянную Mmax, и в массиве Nmax обозначить как Mmax-1 ?
А зачем жестко связывать максимально допустимое число строк и столбцов друг с другом? Это независимые параметры и определяются они отдельными независимыми константами. Кстати, у меня они выбраны такими исходя из того, чтобы матрица влезла в экран в DOS VGA моде, а другие пользователи могут и существенно расширить диапазон, причем независимо для строк и столбцов. Например, задать 40 строк и 28 столбцов. Если экран позволяет.
 
Назад
Сверху