Задача «Найти среднее значение, минимальный и максимальный элемент массива»

Постановка задачи

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

Далее мы построим алгоритм решения этой простой задачи методами структурного программирования, предложим его реализацию на языке C#, зададим пару вопросов, касающихся смысла задачи, на которые вы постарайтесь ответить.

Решение

Используя принципы структурного программирования выделим в методе static void Main(string[] args) блоки: Ввод данных, Средний возраст, Минимальный и максимальный возраст, Итоги (вывод результатов).

1) При вводе данных сначала задается число участников n и создается массив a (Age — возраст) из n элементов целого типа: int[] a = new int[n];
Затем поочередно вводим с подсказкой возраст каждого человека.

2) Средний возраст находим, предварительно обнулив сумматор m, путем суммирования (в цикле for{ } ) возрастов участников и делением полученной суммы на их число.

3) В другом цикле находим одновременно минимальный и максимальный элементы: до цикла предполагаем, что минимальный и максимальный возраст у первого участника (элемент a[0]), затем в цикле от 1 до (n-1) проверяем условия и изменяем их при необходимости.

4) Вывод результатов — последовательность операторов Console.WriteLine();

Примечание: Отметим, что мы используем всего только три основные конструкции: последовательность, цикл, условие. Циклы вложены в последовательность, условные операторы вложены в цикл. Блоки разделены строками комментариев.

Программная реализация:

// Средний, минимальный и максимальный возраст в группе
using System;
namespace среднее_значение_минимальный_и_максимальный_элементы
{
 class Program
 {
  static void Main(string[] args)
  {
   // Ввод данных
   int n;
   Console.Write("Численность группы = ");
   n = Convert.ToInt32(Console.ReadLine());
   int[] a = new int[n];
   for (int i = 0; i < n; i++)
   {
     Console.Write("Возраст {0}-го человека: ", i+1);
     a[i] = Convert.ToInt32(Console.ReadLine());
   }
   // Средний возраст
   double m = 0;
   for (int i = 0; i < n; i++)
      m = m + a[i];
   m = m / n;
   // Минимальный и максимальный возраст
   int min, max;
   min = a[0];
   max = a[0];
   for (int i = 1; i < n; i++)
   {
     if (a[i] < min)
        min = a[i]; 
     if (a[i] > max)
        max = a[i];
   }
   // Итоги
   Console.Write("ИТОГИ:\nВсего опрошено {0}\n", n);
   Console.WriteLine("средний возраст = {0}", m);
   Console.WriteLine("Минимальный возраст = {0}", min);
   Console.WriteLine("Максимальный возраст = {0}", max);
   Console.ReadKey();
  }
 }
}

Результат:
39

Вопросы на «засыпку»

Подумайте, что будет делать эта программа, если введем возраст более 200 лет или -1 год? Как можно защититься от ошибок ввода?

Рассмотрим следующую типичную задачу — Сортировка массивов.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о

0 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x