Есть ответ 👍

Напишите программу которая из n случайных чисел находио и выводит четырехзначные числа и их произведения у которых квадрат первой цифры меньше квадрата последней цифры числа .числа из диапозона от 500 до 5000

178
211
Посмотреть ответы 3

Ответы на вопрос:

amir1290
4,8(64 оценок)

Program long;   uses crt;   const n=5;   type vec=array [1..n] of integer;   var a, b, c: vec;         i,j,k, col: integer;         pro: longint;         a1, a2: integer; begin   clrscr;   randomize;   col: =1;   pro: =1;   writeln ('massiv a: ');   for i: =1 to n do     begin         a[i]: =500+random(2000);         write(a[i]: 6);         if a[i] > 1000 then               begin                   b[col]: =a[i]; col: =col+1;               end;     end;   writeln;   col: =col-1;   writeln;   writeln ('massiv b: ');   for i: =1 to col do     writeln(b[i]);   writeln;   k: =1;   for i: =1 to n do     begin             a2: =b[i] mod 10;             a1: =b[i] div 1000;             if sqr(a1)< sqr(a2) then                     begin                           c[k]: =b[i];                           k: =k+1;                     end;     end;   for i: =1 to k-1 do         pro: =pro*c[i];   writeln ('pro=',pro); readln; end.

Целочисленная арифметика хороша тем, что вычисления в ней точны. но взамен она требует для представления чисел достаточного большого количества байт и не случайно от переменных типа byte и integer, которые в памяти занимали 1 и 2 байта соответственно, создатели трансляторов с языка паскаль пришли к четырехбайтному longint, а впоследствии и к восьмибайтному int64. максимальное число, которое можно представить в longint, равно 2 147 483 647, а в int64 оно равно 9 223 372 036 854 775 807. много ли это в применении к нашей ? нам надо найти и вывести произведение четырехзначных чисел, значение которых не превышает 5000. допустим, что все они равны 5000 и тогда количество членов в таком произведении может быть оценено при несложного расчета. итак, мы можем получить произведение максимум пяти таких чисел. а если использовать longint - вообще всего два числа: но это по верхнему пределу. по нижнему, при значении, равном 1000, эти оценки увеличиваются до 6 и 3 чисел соответственно (достаточно количество разрядов в максимально представимом числе разделить на 3). что показывают эти расчеты? всего лишь непригодность стандартной целочисленной арифметики языка паскаль (а также других традиционных алгоритмических языков) для решения поставленной в общем случае. беда еще и в том, что большинство трансляторов строят программу так, что в ней переполнение разрядной сетки (т.е. выход числа за отведенный ему диапазон представления) по умолчанию не контролируется. другими словами, есть риск получить совершенно неверный результат и даже не подозревать об этом! на может прийти арифметика с плавающей точкой, пригодная для отображения действительно огромных чисел. но у неё есть свой недостаток - она неточна. в языке паскаль тип double может оперировать числами до приблизительно , а вот количество точных цифр при этом составит 15-16. но даже такая точность выше, чем дает стандартный тип longint. на основании всего вышеизложенного и с учетом того, что тип int64 реализован далеко не во всех версиях языка паскаль,  можно принять следующий алгоритм: 1. получаем искомые числа, генерируя не более, скажем, 50 элементов. я считаю, что для любого разумного решения такого количества чисел будет достаточно (мы просто не будем допускать, чтобы к превышало 50). 2. нелепый критерий отбора чисел (квадрат первой цифры меньше квадрата последней цифры числа) заменим разумным. ведь цифра - суть однозначное число, а если квадрат одного числа меньше квадрата второго, то и сами числа находятся в таком же соотношении, поэтому зачем возводить в квадрат? . итак, критерием отбора будет "первая цифра меньше последней цифры числа". 3. находим произведение элементов массива в представлении double. var   i,n,k: integer;   p: double; begin   randomize;   write('введите количество чисел к (1..50): '); readln(k);   if (k< 1) or (k> 50) then write('неверное к')   else begin       p: =1;       writeln('отобранные случайные числа на интервале [1000; 5000]');       for i: =1 to k do       begin           n: =random(4501)+500; { диапазон [500; 5000] }           if n> =1000 then               if (n div 1000)< (n mod 10) then               begin write(n: 5); p: =p*n end;       end;       writeln;       if p> 1 then writeln('произведение отобранных чисел равно ',p)       else writeln('к сожалению, отобранных чисел нет')   end  end. тестовые решения: введите количество чисел к (1..50): 15 отобранные случайные числа на интервале [500; 5000]   3208 4925 1279 2528 1637 4979 3536 4416 2116 3655 произведение отобранных чисел равно 5.02832546192399e+34 введите количество чисел к (1..50): 3 отобранные случайные числа на интервале [500; 5000]   3385 1177 произведение отобранных чисел равно 3984145 введите количество чисел к (1..50): 1 отобранные случайные числа на интервале [500; 5000]   3838 произведение отобранных чисел равно 3838 введите количество чисел к (1..50): 1 отобранные случайные числа на интервале [500; 5000] к сожалению, отобранных чисел нет
NEON2006
4,5(90 оценок)

//pascalabc.net 3.2 begin var x: =readinteger ('введите x: '); write ('y=', sqr(1-x*x+5*sqr(x*x)) ); end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS