Решите плиз в For; While; Repeat;

0 голосов
49 просмотров

Решите плиз в For; While; Repeat;


image

Информатика (65 баллов) | 49 просмотров
0

Вы забыли указать язык программирования. Либо не понимаете, что эти три вида циклов есть во многих языках.

Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
  var a := 3;
  var p: real := 1;
  for var x := 1 to 5 do p *= a * sqr(x) / sqrt(x + 5);
  Writeln(p)
end.

// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
  var a := 3;
  var p: real := 1;
  var x:=1;
  while x<=5 do begin<br>    p *= a * sqr(x) / sqrt(x + 5);
    Inc(x)
    end;
  Writeln(p)
end.

// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
  var a := 3;
  var p: real := 1;
  var x:=1;
  repeat
    p *= a * sqr(x) / sqrt(x + 5);
    Inc(x)
  until x>5;
  Writeln(p)
end.

Тестовое решение:
20122.311710423

(142k баллов)
0

зачем кажды раз писать var? его пишут 1 раз, во вторых в паскале нет функции p*= там надо писать p:=p*a*sqr(x)/sqrt(x+5), а второе функция sqr выполняется дольше чем x*x и занимает на 3 символа больше, код не оптимальный, можно ускорить, и в начале программы нельзя присвоить значение, это можно сделать только константой, след-но: это не компилиться, не оптимально

0

Если в ВАШЕМ Паскале чего-то нет, то это не значит, что его вообще нет ни в одной версии. А версия, в которой все это есть и проверено - она указана.

0

"Функция sqr выполняется дольше чем x*x и занимает на 3 символа больше, код не оптимальный" - это даже не смешно. PascalABC.NET начиная со второй версии - полноценный компилятор оптимизацией кода. Рассуждать о том, что операция выполняется дольше лишь потому, что в исходном тексте программы написано больше символов - это показывать свою полную безграмотность в вопросе.