Найти наибольшее значении в строке матрицы, если на побочной диагонали число простое - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Есть квадратная матрица, найти наибольшее значении в строке если на побочной диагонали число простое. Собственно нужна помощь в нахождении максимума, сам бы сделал но уже голова пухнет, кому не лень решить простую задачку, прошу помочь.
Листинг программы
  1. const N=20;
  2. var a:array[1..N,1..N] of byte; {Обьявление переменных,типа матрицы}
  3. kd,r,i,j,max:integer; {kd-кол-во дилителей,r-делители}
  4. dlin:byte ; {dlin-размер квадратной матрицы}
  5. begin {Заполнение матрицы}
  6. randomize;
  7. write('Введите размер матрицы: ');
  8. readln(dlin);
  9. begin
  10. for I := 1 to dlin do
  11. begin
  12. for j := 1 to dlin do
  13. begin A[i,j]:=random(100)+2;
  14. write(A[i,j]:4);
  15. end;
  16. writeln;
  17. end;
  18. {Вывод простого числа из побочной диагонали}
  19. begin
  20. for i := 1 to dlin do
  21. begin
  22. kd:=0;
  23. Max:=0;
  24. j := A[i, (dlin - i + 1)];
  25. for r := 1 to j do {Делим наше число из побочной диагонали на интервал от 1 до j(самого себя)}
  26. if (j mod r=0) then inc(kd); {Если число поделилось увиличиваем кол-во делителей на 1}
  27. if kd=2 then write(j:4); {Если кол-во делителей строго равно 2 то это простое число}
  28. end;
  29. end;
  30.  
  31. end;
  32.  
  33. end.

Решение задачи: «Найти наибольшее значении в строке матрицы, если на побочной диагонали число простое»

textual
Листинг программы
  1. const N=20;
  2. var a:array[1..N,1..N] of byte;
  3.     dlin,kd,r,i,j,max,k:integer;
  4. begin
  5. randomize;
  6. write('Введите размер матрицы: ');
  7. readln(dlin);
  8. for I := 1 to dlin do
  9.  begin
  10.   for j := 1 to dlin do
  11.    begin
  12.     A[i,j]:=random(100)+2;
  13.     write(A[i,j]:4);
  14.    end;
  15.   writeln;
  16.  end;
  17. k:=0;
  18. for i:= 1 to dlin do
  19.  begin
  20.   kd:=0;
  21.   j := A[i, (dlin - i + 1)];
  22.   for r := 1 to j do
  23.   if (j mod r=0) then  inc(kd);
  24.   if kd=2 then
  25.    begin
  26.     k:=1;
  27.     Max:=A[i,1];
  28.     for j:=2 to dlin do
  29.     if A[i,j]>Max then Max:=A[i,j];
  30.     writeln('Строка ',i,' Max=',Max);
  31.    end;
  32.  end;
  33. if k=0 then write('На побочной диагонали нет простых чисел')
  34. end.

Объяснение кода листинга программы

  1. Объявлены переменные: N, a, dlin, kd, r, i, j, max, k.
  2. Вводится размер матрицы.
  3. Заполняются элементы матрицы случайными числами.
  4. Выводится на экран заполненная матрица.
  5. Инициализируется счётчик k=0.
  6. В каждой строке матрицы проверяется, является ли число на побочной диагонали простым.
  7. Если на побочной диагонали найдено простое число, то находится максимальное значение в строке.
  8. Выводится на экран строка с максимальным значением.
  9. Если во всех строках не найдено простых чисел, выводится сообщение На побочной диагонали нет простых чисел.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы