Максуд22861827
09.05.2020 01:31

Запишите программу на языке Паскаль для:​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
валентинка20
07.05.2023 03:03
Перепишем программу в виде, удобном для анализа алгоритма.
var
  a,b,t,N:integer;
function F(x:integer):integer;
begin
  F:=16*(6-x)*(6-x)-450;
end;
begin
  a:=-20; b:=20;
  N:=0;
  for t:=-20 to 20 do
    if (F(t)>=0) then N:=N+1;
  Write(N)
end.

Переменные a и b получают начальные значения, но дальше не используются, поэтому их рассматривать не нужно.
Все переменные в программе объявлены целочисленными, поэтому анализируем алгоритм также в целых числах.
Переменная t последовательно принимает значения от -20 до 20, следовательно, можно записать, что t ∈ [-20;20]
Для каждого t вычисляется значение некоторой функции F(t) и подсчитывается N - количество случаев, когда значение F(t) неотрицательно. Найденное N затем выводится. Ставится задача определить значение N.
Проанализируем функцию F(t). После простого преобразования получаем
F(t)=16(6-t)²-450
Теперь надо найти решение неравенства F(t)≥0.
\displaystyle 16(6-t)^2-450\geqslant 0; \ (6-t)^2\geqslant \frac{450}{16} ; \ |6-t|\geqslant \sqrt{ \frac{450}{16} }
Поскольку решение выполнятся в целых числах, то значение в правой части неравенства достаточно записать с точностью один знак после запятой.
\displaystyle |6-t|\geqslant \sqrt{ \frac{450}{16}}; \ |6-t|\geqslant 5.3 \\ \begin {cases} 6-t\geqslant 5.3 \\ t-6 \ \textgreater \ 5.3 \end {cases} \to \quad \begin {cases} t\leqslant 0.7 \\ t11.3 \end {cases}
На интервале [-20;20] первому условию удовлетворит 21 точка, второму условию удовлетворят 9 точек. Всего получится 21+9=30 точек.
ответ: Будет выведено число 30
0,0(0 оценок)
Ответ:
mahamde
23.04.2022 23:39

//Массив b сделан таким большим из-за возможности, что в массиве a будут все положительные, а разместить надо на чётных. Есть возможность сделать через динамический массив.

const  

 n=40;

var

 a:array [1..n] of integer;

 b:array [0..2*n-1] of integer;

 i,j,sum:integer;

begin

 randomize;

 sum:=0;

 j:=0;

 for i:=1 to n do

   begin

     a[i]:=random(21)-10;

     if a[i]>0 then

       begin

         b[j]:=a[i];

         j:=j+2;

         sum:=sum+sqr(a[i]);

       end;

     write(a[i]:4);

   end;

 writeln;

 writeln;

 for i:=0 to 2*n-1 do

   write(b[i]:4);

 writeln;

 writeln('Sum: ',sum);  

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота