Отсортировать массив, найти его элементы, являющиеся квадратами четных чисел (и их количество) - PascalABC.NET

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

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

Даны натуральные числа n, a1......an где n<=3000. Отсортировать последовательность a1.....an в порядке возрастания, найти элементы ak последовательности, являющимся квадратами четных чисел, и определить их количество. Помогите пожалуйста Сортировать надо методом пузырька.
Допишите пожалуйста
Листинг программы
  1. var
  2. A:array[1..3000] of integer;
  3. N,i,k,tmp:integer;
  4. begin
  5. Repeat
  6. write('N=');
  7. readln(n);
  8. if (n<=0) or (n>3000) then writeln('Исходные данные неверны');
  9. until(n>0) and (n<=3000);
  10. write('Исходный массив:');
  11. For i:=1 to n do
  12. begin
  13. A[i]:= random(100);
  14. write(A[i]);
  15. if i<n then write(',')
  16. else write (',');
  17. end;
  18. For i:=2 to n do
  19. For j:=n downto i do
  20. If A[j]>A[j-1] then
  21. begin
  22. tmp:=A[j-1];
  23. A[j-1]:=A[j];
  24. A[j]:=tmp;
  25. end;
  26. writeln('Порядок возрастания');
  27. for i:=1 to n do begin
  28. write(A[i]);
  29. if i<n then write (',')
  30. else write(',');
  31. end;
  32. End.

Решение задачи: «Отсортировать массив, найти его элементы, являющиеся квадратами четных чисел (и их количество)»

textual
Листинг программы
  1. var
  2.   A: array[1..3000] of integer;
  3.   N, i, j, k, tmp: integer;
  4.  
  5. begin
  6.   repeat
  7.     write('N=');
  8.     readln(n);
  9.     if (n <= 0) or (n > 3000) then writeln('Исходные данные неверны');
  10.   until(n > 0) and (n <= 3000);
  11.   write('Исходный массив:');
  12.  
  13.   for i := 1 to n do
  14.   begin
  15.     A[i] := random(100);
  16.     write(A[i]);
  17.     if i < n then write(',');
  18.   end;
  19.   writeln;
  20.  
  21.   for i := 2 to n do
  22.     for j := n downto i do
  23.       if A[j] < A[j - 1] then
  24.       begin
  25.         tmp := A[j - 1];
  26.         A[j - 1] := A[j];
  27.         A[j] := tmp;
  28.       end;
  29.   k := 0;
  30.   write('Порядок возрастания: ');
  31.   for i := 1 to n do
  32.   begin
  33.     write(A[i]);
  34.     if (A[i] <> 0) and (frac(sqrt(A[i]) / 2) = 0) or (A[i] = 1) then inc(k);
  35.     if i < n then write(',');
  36.   end;
  37.   writeln;
  38.   Writeln('Колличество квадратов четных чисел = ', k);
  39. end.

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

  1. Ввод числа N от 1 до 3000
  2. Инициализация массива A[1..3000] случайными целыми числами от 0 до 99
  3. Вывод исходного массива A на экран
  4. Сортировка массива A методом пузырька
  5. Проход по отсортированному массиву A и подсчет количества квадратов четных чисел (с помощью переменной k)
  6. Вывод отсортированного массива A на экран
  7. Вывод количества квадратов четных чисел на экран

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


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

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

15   голосов , оценка 3.933 из 5

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

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

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