Что делает программа
Теперь мы может разобрать, что же делается в каждой строке программы.
//------------------------------------------------------bk21-01.cpp
#include <stdio.h>
// В текст программы включается заголовочный файл
// стандартной библиотека ввода-вывода, в котором
// содержится необходимая транслятору информация о
// функциях.
double min(double A[], int nn)
// Заголовок функции min, возвращающей в качестве
// результата вещественное число - значение мини-
// мального элемента массива. Формальные параметры-
// указатель на массив А, и размерность массива - nn.
{
double A_min;
int i;
// Локальные переменные функции, текущее минимальное
// значение элемента A_min и индекс в массиве i.
for (i=1, A_min=A[0]; i<nn; i++)
// Цикл выполняется для всех значений переменной i
// от 1 до nn-1 включительно. При этом начальное
// значение А_min устанавливается равным элементу
// массива A с индексом 0.
if (A[i] < A_min) A_min=A[i];
// В каждом шаге цикла производится сравнение теку-
// щего элемента массива A[i] и A_min. Если текущий
// элемент меньше, то его значение становится новым
// минимумом.
return (A_min);
}
// Значение A_min возвращается в качестве результата
// функции и выполнение тела функции завершается.
double B[10]={ 3.,6.,-5.,4.,12.,3.3,0.45,5.,4.,8.};
// Массив из 10 вещественных чисел, инициали-
// зированный списком начальных значений, которые
// будут установлены в нем в момент запуска про-
// граммы. Массив является глобальной переменной,
// то есть доступен для любой, следующей за ним
// функции (в данном случае main).
double C[20];
// Глобальный массив из 20 вещественных чисел.
// Начальных значений не имеет.
void main()
{
// Основная функция main, вызывается при запуске
// программы.
int i,n1;
double dd;
// Локальные переменные функции. i - теекущий индекс
// элемента массива. n1 - количество заполненных
// элементов в массиве C[]. dd - сохраняет
// результат, возвращаемый функцией min при вызове.
do
// Оператор цикла с проверкой условия продолжения
// после очередного шага цикла.
{
// Тело цикла - составной оператор,
// последовательность из двух простых операторов
cout << "Элементов массива:";
// Выражение содержит операцию вывода в объект - поток.
// Ограниченное символом ";", превращается в простой
// оператор. Выводит на экран текст подсказки.
cin >> n1;
// Вводит с клавиатуры значение целой переменной n1.
} while (n1 < 1 || n1 > 20);
// Цикл продолжается, пока введенное значение n1 не
// попадет в интервал 1..20. Условие продолжения -
// не попадает в интервал, то есть меньше 1 или
// больше 20.
for (i=0; i<n1; i++)
// Цикл повторяется для всех значений i, начиная от 0
// и заканчивая nn-1 включительно
{
// Тело цикла - составной оператор
cout << "C[" << i << "]=";
// Вывод подсказки - строка "C[...]", в угловых
// скобках значение переменной i - индекс текущего
// элемента массива.
cin >> C[i];
// Ввод значения i-го элемента массива в формате
// вещественного числа
}
dd = min(C,n1);
// Вызов функции min для массива C[] и количества
// заполненых элементов в нем - n1. Результат
// функции присваивается переменной dd.
cout << "Минимум С[]=" << dd << endl;
// Вывод строки "Минимум C[i]=..." со значением пере-
// менной dd в формате вещественного числа.
// После вывода строки производится перевод курсора
// на экране к началу следующей (символ \n в
// форматной строке).
cout << "Минимум B[]=" << min(B,10)) endl;
// Вывод строки в подобном формате для массива B[].
// Вместо промежуточной переменной непосредственно
// следует вызов функции min для массива B[] раз-
// мерностью 10 элементов (фактические параметры).
}
Надеемся, что теперь всем станет ясно, сколько нужно комментариев в программе, чтобы смысл ее был вполне понятен.