Дмитрий Неверов
Мастер
(2150)
17 лет назад
Правильно Все правильно не будет единицы в бейсике принт идет перед некстом поэтому когда некст доходит до 1 програма завершаеться
а в паскале условие не верное поставь while i=1
должно помочь
Антон Колмаков
Профи
(583)
17 лет назад
Все правельно делаешь, лишь надо использовать ворматированный выводна экран в Basic __________","________вставь.и представить что ты берешь не 1 число а к примеру два 0 и 1 и "," ________> 0,1 все далее сам
Андрей Макарычев
Мудрец
(10416)
17 лет назад
В Паскале цикл While можно заменить на Repeat..until, будет
Var I: real;
BEGIN
i : = 0 .1 ;
repeat
write (i:4:1);
i : = i + 0 .1;
until i<1;
END.
(У вас получается, что значение становится равным 1,0 и происходит выход из цикла)
В Бэйсике для вывода результата надо использовать округление или форматированный вывод. Бэйсик работает с числами с плавающей точкой не совсем корректно: появляются хвосты N.00000...1 или (N-1).999999...999, N - значение.
На языке Basic такая программа имеет вид:
FOR i = 0.1 ТО 1 STEP 0.1
PRINT i
NEXT i
Однако в результате выполнения этой программы мы получим:
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8000001 0.9000001
На языке Pascal:
Var I: real;
BEGIN
i : = 0 .1 ;
while i <= 1 do begin
write (i:4:1);
i : = i + 0 .1
end
END.
Здесь результат такой:
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Единицы также нет! Как это объяснить?