оретические исследования нашего соотечественника Андрея Андреевича Маркова (младшего) (1903-1979), выполненные в середине века, показали, что в общем случае алгоритмы должны содержать предписания двух видов:
1) предписания, направленные на непосредственное преобразование информации (функциональные операторы);
2) предписания, определяющие дальнейшее направление действий (логические операторы).
ример 1. Словесное описание алгоритма нахождения наибольшего общего делителя (НОД) пары натуральных чисел (алгоритм Евклида).
Чтобы найти НОД двух чисел, составьте таблицу из двух столбцов и назовите столбцы X и У. Запишите первое из заданных чисел в столбец X, а второе — в столбец У. Если данные числа не равны, замените большее из них на результат вычитания из большего числа меньшего. Повторяйте такие замены до тех пор, пока числа не окажутся равными, после чего число из столбца X считайте искомым результатом.
Построчная запись. Это запись на естественном языке, но с соблюдением некоторых дополнительных правил:
Выражение rand() % 41 рандомно принимает любое возможное значение остатка при делении на 41 ( от нуля до 40-а), следовательно -30+ rand()%41 рандомно принимает значение от -30-и до 10-и. Выбираем 50 таких рандомных чисел и храним их в массиве а, заодно в переменной s очередное число, если оно положительное а в переменной count считаем количество положительных чисел. s/count будет средней арифметической всех положительных чисел промежутка.
Объяснение:
оретические исследования нашего соотечественника Андрея Андреевича Маркова (младшего) (1903-1979), выполненные в середине века, показали, что в общем случае алгоритмы должны содержать предписания двух видов:
1) предписания, направленные на непосредственное преобразование информации (функциональные операторы);
2) предписания, определяющие дальнейшее направление действий (логические операторы).
ример 1. Словесное описание алгоритма нахождения наибольшего общего делителя (НОД) пары натуральных чисел (алгоритм Евклида).
Чтобы найти НОД двух чисел, составьте таблицу из двух столбцов и назовите столбцы X и У. Запишите первое из заданных чисел в столбец X, а второе — в столбец У. Если данные числа не равны, замените большее из них на результат вычитания из большего числа меньшего. Повторяйте такие замены до тех пор, пока числа не окажутся равными, после чего число из столбца X считайте искомым результатом.
Построчная запись. Это запись на естественном языке, но с соблюдением некоторых дополнительных правил:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
double a[50], s = 0, count = 0;
srand(time(NULL));
for (int i = 0; i < 50; i++)
{
a[i] = -30 + rand() % 41;
if(a[i]>0)
{
s += a[i];
count++;
}
}
cout << s / count << endl;
system("pause");
return 0;
}
Выражение rand() % 41 рандомно принимает любое возможное значение остатка при делении на 41 ( от нуля до 40-а), следовательно -30+ rand()%41 рандомно принимает значение от -30-и до 10-и. Выбираем 50 таких рандомных чисел и храним их в массиве а, заодно в переменной s очередное число, если оно положительное а в переменной count считаем количество положительных чисел. s/count будет средней арифметической всех положительных чисел промежутка.