Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №19/2008


В мир информатики
Школа программирования

Почему разные результаты

Перед вами — четыре программы, написанные на языках программирования Бейсик и Паскаль (по две на каждом языке):

1) язык Бейсик

REM Первая программа

CLS

sum = 0

FOR i = 1 TO 1000

fr = (-1) ^ (i + 1) / i

sum = sum + fr

NEXT i

PRINT sum

REM Вторая программа

CLS

sum = 0

FOR i = 1000 TO 1 STEP -1

fr = (-1) ^ (i + 1) / i

sum = sum + fr

NEXT i

PRINT sum

2) язык Паскаль

{Первая программа}

Program First;

Uses CRT;

Var i: word; fr, sum: real; koeff: -1..1;

BEGIN

Clrscr;

sum := 0;

koeff := -1;

For i := 1 Downto 1000 Do

Begin

fr := koeff * 1 / i;

sum := sum + fr;

koeff := -1 * koeff

End;

Writeln(sum)

END.

{Вторая программа}

Program Second;

Uses CRT;

Var i: word; fr, sum: real; koeff: -1..1;

BEGIN

Clrscr;

sum := 0;

koeff := -1;

For i := 1000 Downto 1 Do

Begin

fr := koeff * 1 / i;

sum := sum + fr;

koeff := -1 * koeff

End;

Writeln(sum)

END.

Первые программы на каждом из двух языков решают одну и ту же задачу, вторые — тоже.

Ответьте, пожалуйста, на вопросы:

1. Какие две задачи решаются в представленных программах?

2. Почему результаты выполнения двух программ для одного и того же языка программирования отличаются? (Проверьте это!)

TopList