Юзер вводит N вещественных чисел. Число N не определено зараннее.
Выход из цыкла при нуле или 100. В цикле сумма всех целых пложительных чисел
Все делать через цыкл while.
Исправьте код программы плиз:
program zadacha4_2;
uses crt;
var s,n,t:integer;
begin
clrscr;
s:=0;
writeln('Программа для обработки чисел!');
writeln('--------------------------------------------------');
write('Введите числo:'); readln(n);
while (n0) and (n100) do begin
write('Введите числo:'); readln(n);
end;
if n mod 2=1 then s:=s+n;
Writeln ('Сумма =',s);
Writeln ('--------------------------------------------------');
Writeln ('Для завершения работы нажмите любую клавишу!');
Readkey;
End.
Другие языки программирования и технологии
Помогите с задачей паскаль!
Действительное число в компьютере может быть равно 0, но 100 — никогда!
Поэтому второе условие в условии должно быть не равенство 100, а приближение к нему.
Чтобы это проверить, можно сравнить абсолютную величину разницы со 100 и какой-то константой, меньше которой (по идее) числа не должны вводиться.
К примеру:
Abs(100 - N) < 0.00001
Теперь разбор твоей писанины:
— во-первых − лучше писать через цикл repeat … until
— во-вторых − у тебя вся работа программы происходит только с последним введённым числом, т. е. с 0 или 100
Так что твоя программа, хоть и работает, но ни чего не считает!
— ну и в-третьих − проверка на положительность чисел — далеко не остаток от деления на 2!
Поэтому второе условие в условии должно быть не равенство 100, а приближение к нему.
Чтобы это проверить, можно сравнить абсолютную величину разницы со 100 и какой-то константой, меньше которой (по идее) числа не должны вводиться.
К примеру:
Abs(100 - N) < 0.00001
Теперь разбор твоей писанины:
— во-первых − лучше писать через цикл repeat … until
— во-вторых − у тебя вся работа программы происходит только с последним введённым числом, т. е. с 0 или 100
Так что твоя программа, хоть и работает, но ни чего не считает!
— ну и в-третьих − проверка на положительность чисел — далеко не остаток от деления на 2!
У вас цикл завершается раньше, чем начинает считатся сумма. Плюс считается, что суммируются четные, а не целые-положительные.
тебе к училке по матешке надо идти она знает
n - это же integer. Тебе надо определить, целое число или нет. А нецелые ты даже ввести не сможешь, потому что считываешь n, которое integer. А в условии сказано - юзер вводит вещественные числа.
Определи n:real;
И s тогда тоже real.
Как определить, целое n или нет? if (n - trunk(n))>0, то нецелое. Дальше сам.
Определи n:real;
И s тогда тоже real.
Как определить, целое n или нет? if (n - trunk(n))>0, то нецелое. Дальше сам.
end надо поставить после if n mod 2=1 then s:=s+n;
Похожие вопросы
- Помогите решить задачу Паскаль
- помогите решить задачу паскаль срочно нужно ответ напишите
- Помогите решить задачу паскаль (за вознаграждение)
- Помогите решить задачу ПАСКАЛЬ!!!
- Помогите решить задачу на Турбо паскале
- ПОМОГИТЕ С ЗАДАЧАМИ В ПАСКАЛЕ
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- ПОМОГИТЕ НАПИСАТЬ ЗАДАЧИ НА ПАСКАЛЕ
- Помогите написать задачи в паскале!!!!