0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 31
1

Найти в заданном интервале сумму всех четных чисел и среднее арифметическое всех нечетных

31.03.2015, 20:05. Показов 5304. Ответов 7
Метки нет (Все метки)

Задать интервал целых чисел. Найти сумму всех четных чисел и среднее арифметическое всех нечетных.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2015, 20:05
Ответы с готовыми решениями:

Массивы и указатели: найти среднее арифметическое всех четных и всех нечетных элементов в массиве
Написать программу, которая находит среднее арифметическое всех четных и всех нечетных элементов в...

Массивы и указатели: найти среднее арифметическое всех четных и всех нечетных элементов в массиве
Написать программу, которая находит среднее арифметическое всех четных и всех нечетных элементов в...

Найти сумму всех четных, вводимых с клавиатуры, чисел и произведения всех нечетных
найти сумму всех четных, вводимых с клавиатуры, чисел и произведения всех нечетных.

Найти среднее арифметическое всех нечетных элементов массива, стоящих на четных местах
получить среднее арифметическое всех нечетных элементов массива стоящих на четных местах ааа...

7
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
31.03.2015, 20:24 2
вводим n,k n<k
Pascal
1
2
3
4
5
6
7
8
9
10
11
sm:=0;//сумма четных
sr:=0;//среднее нечетных
nc:=0;//их количество
for i:=n to k do
if i mod 2=0 then sm:=sm+i
else
 begin
  sr:=sr+i;
  nc:=nc+1;
 end;
sr:=sr/nc;
1
Эксперт Pascal/Delphi
2383 / 1295 / 1491
Регистрация: 29.08.2014
Сообщений: 4,651
31.03.2015, 20:28 3
Лучший ответ Сообщение было отмечено Yurch1k как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
var
   a,b:integer;
begin
  repeat
  write('введите 2 числа границы интервала:');
  readln(a,b);
  until a<b;
  writeln('сумма четных:', range(a,b).Where((i:integer)->not odd(i)).Sum);
    writeln('ср. арифм. нечетных:', range(a,b).Where((i:integer)->odd(i)).Average);
  
end.
1
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 31
31.03.2015, 20:59  [ТС] 4
Puporev,

Ваш ответ мне как-то ближе, но не могу его доработать
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program jk;
Var sm, sr, i, k, n: integer;
begin
  repeat
  write('введите 2 числа границы интервала:');
  readln(n,k);
for i:=n to k do
sm:=0;
sr:=0;
if i mod 2=0 then sm:=sm+i
else
 begin
  sr:=sr+i;
  nc:=nc+1;
  end;
  sr:=sr/nc;
 writeln('sr:',sr);
writeln('nc:',nc);
writeln('sr:',sr);
end.
переделал, но видать с ошибками получилось(
0
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
31.03.2015, 21:04 5
Лучший ответ Сообщение было отмечено Yurch1k как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Var n,k,i,sm,nc: integer;
    sr:real;
begin
  repeat
  write('введите 2 числа границы интервала:');
  readln(n,k);
  until n<k;
sm:=0;
sr:=0;
for i:=n to k do
if i mod 2=0 then sm:=sm+i
else
 begin
  sr:=sr+i;
  nc:=nc+1;
  end;
sr:=sr/nc;
writeln('Сумма четных=',sm);
writeln('Среднее нечетных=',sr:0:2);
end.
1
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 31
31.03.2015, 21:09  [ТС] 6
Спасибо большое)
0
Модератор
9524 / 4855 / 3226
Регистрация: 17.08.2012
Сообщений: 15,189
05.04.2015, 18:54 7
Оператор цикла не нужен. Ответ может быть получен с помощью формулы для суммы арифметической прогрессии и формулы для среднего арифметического арифметической прогрессии.
Замечу, что среднее арифметическое подряд идущих нечётных чисел дробной части не содержит. Это также верно и для чётных чисел.

Программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var i, j, p, q: integer;
begin
  repeat
    write('Введите 2 числа границы интервала: ');
    readln(i, j);
  until i < j;
  p := i + i mod 2;
  q := (j - j mod 2 - p) div 2;
  writeln('Сумма четных = ', (p + q) * (q + 1));
  p := i + 1 - i mod 2;
  q := j - 1 + j mod 2;
  writeln('Среднее нечетных = ', (p + q) div 2);
  readln
end.
Оптимизированный вариант:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var i, j, p, q: integer;
begin
  repeat
    write('Введите 2 числа границы интервала: ');
    readln(i, j);
  until i < j;
  p := i + i and 1;
  q := (j - j and 1 - p) div 2;
  writeln('Сумма четных = ', (p + q) * (q + 1));
  p := i + 1 - i and 1;
  q := j - 1 + j and 1;
  writeln('Среднее нечетных = ', (p + q) shr 1);
  readln
end.
Добавлено через 13 минут
Ну ладно, выпендрёжный вариант.
1
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 31
05.04.2015, 23:43  [ТС] 8
Cyborg Drone,
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2015, 23:43
Помогаю со студенческими работами здесь

Найти среднее арифметическое всех четных элементов массива стоящих на нечетных местах
найти среднее арифметическое всех четных элементов массива стоящих на нечетных местах c++

Найти среднее арифметическое, среднее геометрическое и количество всех натуральных нечетных двузначных чисел
Помогите на с++ написать программу для нахождения среднего арифметического, среднего...

Найти сумму всех четных чисел в интервале от (N1,N)
положительное число N . Сумма все четных чисел в интервале от (N1,N).Число N имеет дробную часть ....

Найти среднее арифметическое квадратов всех нечетных чисел от а до 200
Решите элементарным языком с помощью Операторов цикла 1) Найти среднее арифметическое квадратов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru