Многие компьютерные программы работают, когда все данные, необходимые для программы, вводятся в начале программы. После этого все данные обрабатываются на основе проблемы или проблем, которые программа пытается решить, а затем выводятся результаты обработки. Этот процесс, который иногда называют массовой обработкой, описывается шаблоном программы Input-Process-Output, и в этой статье я объясню, как реализовать этот шаблон.

Шаблон ввода-процесса-вывода

Вот псевдокод для этого шаблона:

Введите все данные.
Обработайте все данные.
Выведите результаты обработки.

Опять же, этот шаблон описывает массовую обработку, при которой все данные вводятся до начала какой-либо обработки. Не все проблемы можно решить таким образом, но многие могут, поэтому важно понимать, как работает этот шаблон.

Теперь давайте рассмотрим несколько задач, которые можно решить с помощью шаблона.

Извлечение цифр из числа

Интересная задача, в которой программист может использовать оператор модуля, — это извлечение цифр. Чтобы извлечь последнюю цифру из числа, возьмите модуль числа 10, и результатом будет последняя цифра в числе. Например, 123 % 10 равно 3. Затем выполните целочисленное деление числа на 10, чтобы удалить последнюю цифру, и продолжайте эти шаги, пока не останется цифр.

Вот программа, которая извлекает четыре цифры из числа:

int main()
{
  int number, digit4, digit3, digit2, digit1;
  // Input
  cout << "Number? ";
  cin >> number;
  // Process
  digit4 = number % 10;
  number /= 10;
  digit3 = number % 10;
  number /= 10;
  digit2 = number % 10;
  number /= 10;
  digit1 = number % 10;
  // Output
  cout << digit1 << " " << digit2 << " " << digit3 
       << " " << digit4 << endl;
  return 0;
}

Вот результат одного запуска этой программы:

Число? 1689
1 6 8 9

Вычисление средней оценки

В следующем примере вычисляется средняя оценка по 5 результатам тестов, введенным пользователем. Вот программа:

int main()
{
  const int NUM_GRADES = 5;
  int grade1, grade2, grade3, grade4, grade5, total = 0;
  double average;
  // Input
  cout << "Enter first grade: ";
  cin >> grade1;
  cout << "Enter second grade: ";
  cin >> grade2;
  cout << "Enter third grade: ";
  cin >> grade3;
  cout << "Enter fourth grade: ";
  cin >> grade4;
  cout << "Enter fifth grade: ";
  cin >> grade5;
  // Process
  total = grade1 + grade2 + grade3 + grade4 + grade5;
  average = static_cast<double>(total) / NUM_GRADES;
  // Output
  cout << "The average grade: " << average << endl;
  return 0;
}

Вот результат одного запуска этой программы:

Перейдите в первый класс: 82
Перейдите во второй класс: 76
Перейдите в третий класс: 84
Перейдите в четвертый класс: 71
Перейдите в пятый класс: 93
Средний балл: 81,2

Последние мысли

Это была короткая статья, но вы должны понимать использование шаблона Input-Process-Output из этих двух примеров. Начинающие программисты могут прекрасно использовать этот шаблон в качестве организационного принципа для запуска программы. По мере накопления опыта вы обнаружите, что многие программы немного меняют порядок шаблона или даже выполняют несколько итераций шаблона по мере сбора, обработки и вывода данных.

Спасибо за чтение и, пожалуйста, ответьте на эту статью или напишите мне с вашими комментариями и предложениями.