Вывести из массива числа, которые находятся в степени 2 и 3 - Turbo Pascal

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

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

Дан массив размером N. Нужно вывести из массива числа которые находиться в степени 2 и 3; _____________________ N = 6 X = {

4

, 6,

9

, 7, 2, 3 } Ответ. 4 , 9 ____________________ N = 8 X = { 2, 1, 6, 7,

16

,

36

,

8

,

9

} Ответ. 16 , 36, 8, 9

Решение задачи: «Вывести из массива числа, которые находятся в степени 2 и 3»

textual
Листинг программы
  1. const m = 100;
  2. var i, j, n, q, c: longint;
  3.     x: array [1..m] of longint;
  4.     f, t: boolean;
  5. begin
  6.   repeat
  7.     write('n в диапазоне [1..', m, '];  n = ');
  8.     readln(n)
  9.   until n in [1..100];
  10.   writeln('Введите числа:');
  11.   for i := 1 to n do
  12.     begin
  13.       write('x[', i, '] = ');
  14.       readln(x[i])
  15.     end;
  16.   f := false;
  17.   writeln('Полные квадраты и полные кубы:');
  18.   for i := 1 to n do
  19.     begin
  20.       q := 0;
  21.       c := 0;
  22.       if x[i] > 0
  23.         then begin
  24.           q := trunc(sqrt(x[i]));
  25.           c := trunc(exp(ln(x[i] / 3)))
  26.         end
  27.         else if x[i] < 0
  28.           then c := trunc(-exp(ln(-x[i] / 3)));
  29.       writeln(x[i], ' ', q, ' ', ' ', c);
  30.       t := false;
  31.       for j := 0 to 1 do t := t or (sqr(q + j) = x[i]) or (sqr(c + j) * (c + j) = x[i]);
  32.       f := f or t;
  33.       if t then writeln(x[i], ' ')
  34.     end;
  35.   if not f then write('Не найдены');
  36.   readln
  37. end.

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

  1. Объявляются переменные: m, i, j, n, q, c: longint; var f, t: boolean;
  2. Создается массив x[1..m] of longint;
  3. Выводится сообщение для ввода чисел от 1 до m;
  4. Числа вводятся пользователем, каждое число выводится в отдельной строке;
  5. Записывается значение каждого числа в массив x[i];
  6. Переменная f устанавливается в false;
  7. Выводится сообщение для ввода чисел, которые являются полными квадратами и полными кубами;
  8. Числа вводятся пользователем, каждое число выводится в отдельной строке;
  9. Для каждого числа i выполняется цикл:
    • вычисляется квадратный корень числа x[i] и записывается в переменную q;
    • вычисляется экспонента числа x[i] / 3 и записывается в переменную c;
    • проверяется, является ли число x[i] положительным; если нет, то вычисляется отрицательная экспонента числа -x[i] / 3 и записывается в переменную c;
    • выводится число x[i], его квадратный корень q, его куб c;
    • переменная t устанавливается в true;
    • для каждого j от 0 до 1 выполняется проверка: если sqr(q + j) = x[i], или sqr(c + j) * (c + j) = x[i], то устанавливается значение переменной t в true;
    • если значение переменной t равно true, то выводится число x[i];
  10. Если значение переменной f равно false, выводится сообщение Не найдены.
  11. Выводится сообщение Введено чисел:, и выводится количество введенных чисел.
  12. Выводится сообщение Полные квадраты и полные кубы:, и выводится количество введенных чисел.
  13. Выводится сообщение Не найдены, и выводится количество введенных чисел.
  14. Выводится сообщение Введено чисел:, и выводится количество введенных чисел.
  15. Выводится сообщение Полные квадраты и полные кубы:, и выводится количество введенных чисел.
  16. Выводится сообщение Не найдены, и выводится количество введенных чисел.
  17. Выводится сообщение Введено чисел:, и выводится количество введенных чисел.
  18. Выводится сообщение Полные квадраты и полные кубы:, и выводится количество введенных чисел.
  19. Выводится сообщение Не найдены, и выводится количество введенных чисел.
  20. Выводится сообщение Введено чисел:, и выводится количество введенных чисел.

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


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

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

8   голосов , оценка 4.125 из 5

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

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

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