Серыйпрайм
11.04.2023 02:00

Нужно составить программу к этому заданию в Паскаль

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
мод8
15.08.2021 00:24
О типах x и n неизвестно ничего, но по сложившейся традиции резонно предположить, что n - целое, x - вещественное. Представленная программа написана именно в таком понимании типов переменных.

var
  i,n:integer;
  x,p:double;
begin
  Write('Введите основание (x) и показатель степени (n): ');
  Read(x,n);
  if x=0 then p:=0
  else begin
    p:=1;
    for i:=1 to Abs(n) do p:=p*x;
    if n<0 then p:=1/p
  end;
  Writeln(x,'^',n,'=',p)
end.

Тестовые решения:

Введите основание (x) и показатель степени (n): 2 30
2^30=1073741824

Введите основание (x) и показатель степени (n): -3.35 9
-3.35^9=-53137.7624927636

Введите основание (x) и показатель степени (n): 18.3 -4
18.3^-4=8.9165251950717E-06
0,0(0 оценок)
Ответ:
Gulnazzikon
07.12.2021 16:21
Под локальным максимумом, скорее всего, имеется в виду число, большее чем оба его соседа, за исключением случая, когда соседом справа является 0. В таком случае достаточно однократно пройтись по всем числам, запоминая минимальное из расстояний между новым и предыдущим обнаруженными максимумами.
Программа (язык Pascal ABC.Net)
var i1,i2,i3:integer;
    i:integer;
    curr,minr,lastmax:integer;
begin
  readln(i1,i2);
  i:=2;
  minr:=1000000;
  repeat
    readln(i3);
    if (i2>i1) and (i2>i3) and (i3<>0) then begin
      curr:=i-lastmax;
      if curr<minr then minr:=curr;
      lastmax:=i;
    end;
   
    i1:=i2;
    i2:=i3;
    i+=1;
  until i2=0;
  if minr=1000000 then writeln(0) else writeln(minr); {стоило бы добавить булевую переменную в качестве флага - был ли хоть один max, но вряд ли расстояние между ними превысит миллион :-}
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота