Объяснение:
Выполнение команд в линейном алгоритме идет линейно, то есть друг за другом в заданном порядке и однократно.
Пример линейного алгоритма:
Начало
Сделать уроки
Пойти гулять
Вернуться домой
Поесть ужин
Посмотреть телевизор
Лечь спать
Конец
В данном случае это план того, что я буду делать после того, как вернусь из школы и пообедаю.
Пример линейного алгоритма для ГРИС «Стрелочка»:
НАЧАЛО
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
ШАГ
ШАГ
ШАГ
ПОВОРОТ
ПОВОРОТ
ПРЫЖОК
ПРЫЖОК
ПРЫЖОК
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
ШАГ
ШАГ
ПОВОРОТ
ПОВОРОТ
ПОВОРОТ
ШАГ
ШАГ
ШАГ
КОНЕЦ
16 символов
Объяснение:
I = К * i, где
I - информационный объём сообщения (документа)
К - количество символов в сообщении (документе)
i - информационный вес символа (количество бит, которым кодируется 1 символ)
N = 2^i, где
N - мощность алфавита (количество символов в алфавите)
i - информационный вес символа (количество бит или байт, которым кодируется 1 символ)
Дано:
K = 10 страниц * 305 символов = 3050 символов
I = 1 525 байт = 12 200 бит
Найти:
N
I = К * i
i = I / K
i = 12 200 / 3050 = 4 бит
N = 2^4 = 16 символов
1 байт = 8 бит
Поделитесь своими знаниями, ответьте на вопрос:
Напишите программу, которая генерирует целочисленный массив, состоящий из 40 элементов в диапазоне от 0 до 120, подсчитывает количество элементов равных 30, подсчитывает сумму всех элементов массива, подсчитывает среднее арифметическое, находит максимальный элемент массива и его номер, минимальный элемент и его номер. все результаты выводит на экран. с amax и imax. 9 класс,
PascalABC.NET
1. Короткое, внешне изящное, но крайне неэффективное решение, поскольку массив просматривается ПЯТЬ раз.
begin
var a := ArrRandom(40, 0, 120);
a.Println;
Println('Элементов, равных 30:', a.Count(p -> p = 30));
Println('Сумма элементов:', a.Sum);
Println('Среднее арифметическое элементов:', a.Average);
var (imax, imin) := (a.IndexMax, a.IndexMin);
Println('Максимальный элемент №', imax + 1, '=', a[imax]);
Println('Минимальный элемент №', imin + 1, '=', a[imin])
end.
2. Более длинное решение, но с ОДНИМ просмотром массива и поэтому эффективное.
begin
var a := ArrRandom(40, 0, 120);
a.Println;
var (k, s, imax, imin) := (0, 0, 0, 0);
for var i := 0 to a.High do
begin
if a[i] = 30 then
Inc(k);
s += a[i];
if a[i] > a[imax] then
imax := i
else if a[i] < a[imin] then
imin := i
end;
Println('Элементов, равных 30:', k);
Println('Сумма элементов:', s);
Println('Среднее арифметическое элементов:', s / 40);
Println('Максимальный элемент №', imax + 1, '=', a[imax]);
Println('Минимальный элемент №', imin + 1, '=', a[imin])
end.