понедельник, 7 марта 2016 г.

Циклы и ветвления: вступление к циклам.

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

int main()
{

  float studentsProgress[10] =
  {
    3.0f, 4.2f, 3.4f, 3.9f, 4.75f,
    4.2f, 4.8f, 3.1f, 4.4f, 3.8f
  };

  return 0;
}


  Осталось найти в нем максимальное число. Да, понимаю, что глазами Вы его уже и так нашли и это "4.8f", но как обучить программу делать это за Вас? Объявим переменную "maxProgress", в которой будем хранить балл лучшего студента, и предположим, что успеваемость нулевого студента - лучшая.


int main()
{

  float studentsProgress[10] =
  {
    3.0f, 4.2f, 3.4f, 3.9f, 4.75f,
    4.2f, 4.8f, 3.1f, 4.4f, 3.8f
  };

  float maxProgress = studentsProgress[0];


  return 0;
}


  Теперь проверим, а может все-таки успеваемость первого студента выше успеваемости нулевого? Если да, то надо ее записать в переменную "maxProgress".

int main()
{

  float studentsProgress[10] =
  {
    3.0f, 4.2f, 3.4f, 3.9f, 4.75f,
    4.2f, 4.8f, 3.1f, 4.4f, 3.8f
  };

  float maxProgress = studentsProgress[0];


  if( studentsProgress[1] > maxProgress )

  {
    maxProgress = studentsProgress[1];
  }

  return 0;
}


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


#include <iostream>


int main()
{

  float studentsProgress[10] =
  {
    3.0f, 4.2f, 3.4f, 3.9f, 4.75f,
    4.2f, 4.8f, 3.1f, 4.4f, 3.8f
  };

  float maxProgress = studentsProgress[0];


  if( studentsProgress[1] > maxProgress )

  {
    maxProgress = studentsProgress[1];
  }

  // ...


  if( studentsProgress[9] > maxProgress )

  {
    maxProgress = studentsProgress[9];
  }

  std::cout << "Max progress is: ";

  std::cout << maxProgress << std::endl;
  system("pause");
  return 0;
}


  Но еще проще догадаться, что никто не пишет в коде тысячи условий сравнения. Эта проблема решается циклами.

Комментариев нет:

Отправить комментарий