Размер шрифта: A AA Изображения Выключить Включить Цвет сайта Ц Ц Ц Х
Бесплатный конструктор сайтов - uCoz
Пятница, 17.05.2024, 06:07
Приветствую Вас Гость | RSS

Сайт учителя информатики  и ИКТ Шинкаренко Евгения Александровича

Реклама
Оцените сайт
Оцените мой сайт
Всего ответов: 837
Программирование
Какой язык программирования выбрать для подготовки к ЕГЭ
Всего ответов: 804

Решение задачи №2.

Задача №2.
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. Гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.


Паскаль
Бейсик
Си
Естественный язык
const
N=30;
var
a: array [1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);

end.
N=30
DIM A(N) AS INTEGER
DIM I, X, Y AS INTEGER
DIM S AS SINGLE
FOR I = 1 TO N
INPUT A(I)
NEXT I

END
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, x, y;
float s;
for (i=0; i<N; i++)
scanf("%d", &a[i]);

}
Объявляем целочисленные переменные
I, X, Y.
Объявляем вещественную переменную
S.
В цикле от 1 до 30 вводим элементы
массива A с 1-го по 30-й.


В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, записанном на естественном языке, с учетом синтаксиса и особенностей используемого вами языка программирования.

Решение задачи №2.

Паскаль
Бейсик
Си
Естественный язык
x:=0;
y:=0;
for i:=1 to N do
if (a[i] mod 2=1) then begin
x:=x+a[i];
y:=y+1;
end;
s:=x/y;
writeln(s);
X = 0
Y = 0
FOR I = 1 TO N
IF A(I) MOD 2 = 1 THEN
X = X + A(I)
Y = Y + 1
ENDIF
NEXT I
S = X / Y
PRINT S
x=0;
y=0;
for (i=0; i<N; i++)
if (a[i]%2==1)
{ x=x+a[i];
y++;
}
s=(float)x/y;
printf("%f", s);
Записываем в переменные X и Y начальное
значение, равное нулю. В цикле от первого
элемента до тридцатого находим остаток от
деления элемента исходного массива на два.
Если этот остаток равен единице, то
увеличиваем счетчик суммы X на значение
текущего элемента массива, а счетчик
количества Y на 1. Переходим к следующему
элементу.
После цикла производим деление счетчика
суммы X на счетчик количества Y и
записываем результат в переменную S.
Выводим значение переменной S.
Алгоритм решения
Зададим цикл от 1 до 30 в котором будем определять является ли элемент массива четным или нечетным с помощью функции mod (получение остатка от деления), если выражение a[i] mod 2 =1, то элемент массива нечетный.
Далее нам надо подсчитать в этом же цикле сумму нечетных элементов массива и их количество. Для этого используем переменные X (будет подсчитывать сумму нечетных элементов) и Y(будет подсчитывать количество нечетных элементов), начальные значения данным переменным задаем 0. Если элемент массива нечетных переменная X вырастает на величину элемента массива, а переменная Y на единицу.
После прохода цикла переменные X и Y имеют величину суммы нечетных элементов массива и количества данных элементов. Осталось найти среднее арифметическое, среднее арифметическое будет присвоено переменной S, делим X на Y, выводим результат.
Возврат к списку задач

Реклама
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Счетчик яндекс
Яндекс.Метрика