вычислить среднее арифметическое всех натуральных чисел на промежутке от 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);?
по поводу ошибки -- у ошибки есть текст об о причине ошибки. что именно в ошибке говорится?
чему у вас равны a и b на момент вычисления s:=s/(b-a);?
Мне кажется что s должно быть описано как тип exstended
С паскалем незнаком, точно ответить не могу. Но во-первых, а если 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);
Как-то так.
Во-вторых, если число 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 перевод на язык машины который знаеш
удачи
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 перевод на язык машины который знаеш
удачи
Похожие вопросы
- Помогите разобраться с написанием программы Паскале!
- Помогите разобраться с фокусом на Паскале. В чем секрет?
- помогите разобраться в программе (Паскаль)
- Паскаль, не трудная задачка, помогите начинающему программисту!
- Прошу помочь разобраться, пояснить некоторые пункты требования ТИПОГРАФИИ.
- Помогите разобраться, Pascal!
- помогите разобраться с++
- Пожалуйста помогите разобраться с даним кодом C++. Тема : Односвязание списки
- Программирование. Помогите разобраться с направлениями (Ruby, Java, JavaScript, С++, Python, PHP, QA)
- Найдите ошибку в Паскале? Что я сделал не так? И напишите ка нужно правильно.