Лидеры рейтинга

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

1061

Россия, пос. Теплоозёрск, ЕАО


ID: 226425

Konstantin Shvetski

Модератор

314

Россия, Северодвинск


ID: 401284

Михаил Александров

Советник

278

Россия, Санкт-Петербург


ID: 137394

Megaloman

Мастер-Эксперт

158

Беларусь, Гомель


ID: 400669

epimkin

Профессионал

105


ID: 404002

sglisitsyn

6-й класс

42


ID: 242862

Hunter7007

Мастер-Эксперт

30

Россия, Омск


8.10.3

30.10.2021

JS: 2.10.3
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-12-04 11:45:59-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 201291

Раздел:  Pascal / Delphi / Lazarus
Автор вопроса: angel. (Посетитель)
Дата: 25.07.2021, 00:45 Консультация закрыта
Поступило ответов: 1

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Что здесь не так?

Код [Pascal]
uses crt;
var n,i,f,v,s,s2:integer;
    p:real;
begin
clrscr;
repeat
write('Enter the natural n>2 n=');
readln(n);
f:=n+1;
for v:=1 to n do
f:=f*v;
until n>2;
s:=0;
s2:=0;
for i:=3 to n do
s:=s+i-2;
p:=s/(f*n)-s2;
writeln('In the loop for P=',p:0:5);
i:=3;
s:=0;
while i<=n do
 begin
  s:=s+i-2;
  i:=i+1;
 end;
p:=s/(f*n)-s2;
writeln('In the loop while P=',p:0:5);
f:=n+1;
for v:=1 to n do
f:=f*v;
i:=3;
s:=0;
repeat
s:=s+i-2;
i:=i+1;
until i>n;
p:=s/(f*n)-s2;
writeln('In the loop repeat P=',p:0:5);
readln
end.


Последнее редактирование 25.07.2021, 17:12 Зенченко Константин Николаевич (Старший модератор)

-----
Прикрепленные файлы:

Ответ # 281516 от puporev
Можно так.
Код [Pascal]
uses crt;
var n,i:integer;
    s,s1,f,p:real; {при больших n может быть выход за пределы целых типов}
begin
clrscr;
repeat
write('Enter the natural n>2 n=');
readln(n);
until n>2;
{цикл for}
s:=0;
s1:=0;
f:=1;
for i:=0 to n+1 do
 begin
  if i>=3 then s:=s+(i-2);
  if i<=n then s1:=s1+i;
  if i>1 then f:=f*i;
 end;
p:=s/f/n-s1;
writeln('Pfor=',p:0:5);
{цикл while}
s:=0;
s1:=0;
f:=1;
i:=0;
while i<=n+1 do
 begin
  if i>=3 then s:=s+(i-2);
  if i<=n then s1:=s1+i;
  if i>1 then f:=f*i;
  i:=i+1;
 end;
p:=s/f/n-s1;
writeln('Pwhile=',p:0:5);
{цикл repeat until}
s:=0;
s1:=0;
f:=1;
i:=0;
repeat
if i>=3 then s:=s+(i-2);
if i<=n then s1:=s1+i;
if i>1 then f:=f*i;
i:=i+1;
until i>n+1;
p:=s/f/n-s1;
writeln('Prepeat=',p:0:5);
readln
end.

puporev

Профессор
25.07.2021, 03:28
5
Мини-форум консультации # 201291

q_id

angel.

Посетитель

ID: 405237

1

= общий =    25.07.2021, 09:45
puporev:

Спасибо за ответ, Но при данных рачатах получается отрицательная сумма не соответствующая действительности. Допустим при n 5 по данным расчетам выходит -14,997,а если считать без программы должно быть 0,00027.Допустим если n = 5 то выражение которое на картинке равно 3-2/(5+1)получается 6 находим факториал данного числа это 720 его умножаем на 5=3600,сумма 2 всегда равна 0 потому что там 0.тоесть получаться выражение 1/3600-0=0.00083(это ответ с онлайн канкулятора).а если просто считать то 0,00027,Даже если найти сумму с 1 то будет 3.то выходит сумма 0.00083.Помогите написать правильно. Мне кажется что i равно 0 в факториале не верно?Я начинающий могу ошибаться.

q_id

puporev

Профессор

ID: 401888

2

= общий =    25.07.2021, 09:54

При n=5 Калькулятор:(1+2+3)/720/5-(1+2+3+4+5)= -14.99833
Программа:-14.99722

q_id

puporev

Профессор

ID: 401888

3

= общий =    25.07.2021, 09:56

сумма 2 всегда равна 0

Это не правда при n=5 s2=0+1+2+3+4+5=15

q_id

angel.

Посетитель

ID: 405237

4

= общий =    25.07.2021, 10:04

Поняла спасибо)Я видимо перепутала считается по n а не по i.Спасибо Вам огромное!!

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 244

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 43

Gluck

9-й класс

Рейтинг: 42

Вадим Исаев ака sir Henry

Мастер-Эксперт

Рейтинг: 2

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0