Другие языки программирования и технологии

Аааааааааааааааааааа паскаль почти все сделал помогите разобраться

вычислить среднее арифметическое всех натуральных чисел на промежутке от a до b
program sum_1;
uses crt;
var i,a,b,s:longint;
begin
clrscr;
writeln('Введіть числа');
write('a=',b); read(a,b);
s:=0;
for i:=a to b do
s:=s+i;
s:=s/(b-a); вот здесь выбивает ошибку
writeln('s=',s);
end.
что не правильно ?
такое впечатление складывается, что не ты сделал, а за тебя сделали

по поводу ошибки -- у ошибки есть текст об о причине ошибки. что именно в ошибке говорится?
чему у вас равны a и b на момент вычисления s:=s/(b-a);?
Василий Сазонов
Василий Сазонов
77 184
Лучший ответ
Мне кажется что s должно быть описано как тип exstended
*** Vlad ***
*** Vlad ***
57 036
С паскалем незнаком, точно ответить не могу. Но во-первых, а если a и b - одинаковые числа введены? Тогда у нас в скобках (a-b) получается нуль и попытка делить на нуль приводит к ошибке. Правда это ошибка времени выполнения, и компилироваться программа всё равно должна.
Во-вторых, если число b меньше a, то и среднее будет отрицательным (b - a) даст отрицательный делитель, и соответственно, минусовой результат.
В-третьих, я так понимаю, все числа объявлены как длинные целые. А если к примеру, у нас сумма получилась 3 + 4 + 5 + 6 = 18, а числа соответственно 4. То среднее равно 4.5 . А при целочисленном делении должно в ответе получиться 4.
Потому несколько советов.
1. После ввода чисел определить, какое из них больше, и присвоить его b, а меньшее a.
2. Выяснить, равны ли a и b. Если равны, вывести ответ - 0.
3. Произвести дробное деление. Не знаю, как в паскале, в с++ строчка с делением выглядела бы так:
s = (double) s/(b-a);
Или
s = s/ ((double) b - a);
Как-то так.
вроде в цикле ошибка
for i:=a to b do
s:=s+i;
а если
for i:=a to b do
begin
s:=s+i;
s:=s/(b-a);
end;
writeln('s=',s);
writeln(''и мы будем управлять машинами в рельном времени по средством HMI (двойные кавычки)

end.

а нудек это двойка не тебе а твоему (ей) информатику
любая программа абсолютно начинается так
1 постановка задачи
2 математическая модель (тут ты должен проришать все уравнения со своими данными)
3 алгоритм на основании пункта 2
4 перевод на язык машины который знаеш
удачи