Программы линейной структуры. Простейшие программы циклической структуры. Разветвления, циклы и разветвления. Простейшие алгоритмы обработки массивов, страница 11

#include <conio.h>

int main(int argc, char* argv[])

{

  int N;

  float Num, max;

  clrscr();

  cout<< "Введите количество чисел N ->";

  cin>>N;

  cout<<" Введите 1-ое число ->";

  cin>>max;

   for (int i=2; i<=N; i++)

     {

       cout << "Введите следующее число ->" ;

       cin>>Num;

       if (max<Num) max=Num;

     }

   cout<<"Максимальное число "<<max<<endl;

   getch();

  return 0;

}

Обобщением разветвления является множественный выбор. При его программировании используется оператор switch.

       Пример. Составить программу, суммирующую штрафное время команд при игре в хоккей.

При очередном удалении нужно вводить в ЭВМ  коман­ду, игрок которой удален, и время, на которое он удален. Так как название команды состоит из нескольких символов, то для облегче­ния ввода их можно закодировать. Например, цифрами 1 и 2. Код команды и время удаления будем вводить различными операторами ввода. Для окончания ввода будем использовать значение того же типа, что и код команды (в нашем случае число, например 0; см. программу 3.2).

     Список   используемых   переменных. 

Исходные   данные:   Кod — код команды, Тime — время удаления.

       Результат:  Q1,  Q2 — суммарное  время  удалений в   командах.

Программа 3.2

#include <iostream.h>

#include <conio.h>

int main(int argc, char* argv[])

{

  int Kod;

  float Time, Q1=0, Q2=0;

  clrscr();

  cout<< "Введите номер команды -1 или 2."<<endl;

  cout<<" Для выхода из программы - 0"<<endl;

  cin>>Kod;

   while (Kod != 0)

     {

       cout << "Введите штрафное время ->" ;

       cin>>Time;

       switch (Kod)

        {

          case 1: Q1=Q1+Time;break;

          case 2: Q2=Q2+Time; break;

          default: cout<< "Введен неправильный номер команды! Повторите ввод."<<endl;

        }

       cout<< "Введите номер команды -1 или 2."<<endl;

       cout<<" Для выхода из программы - 0"<<endl;

       cin>>Kod;

     }

   cout<<"Игра окончена"<<endl;

   cout<<"Суммарное штрафное время команд "<<endl;

   cout<<"1 - "<<Q1<<"мин 2- "<<Q2<<"мин "<<endl;

   getch();

   return 0;

}

Задание I уровня. Формализовать постановку задачи (уяснить, что должна делать программа). Составить список исполь­зуемых переменных. Составить схему и программу. Выполнить программу вручную и на компьютере  для различных исходных данных.

Варианты задач  I уровня

1.  На плоскости расположена окружность радиуса R с центром в начале координат. Ввести заданные координаты точки и опре­делить, лежит ли она на окружности. Результат выводить в виде сообщения. Решить задачу при R=2 для точек с коорди­натами (0; 2), (—1,5; 0,7), (1; I), (3; 0).

  1. Определить, принадлежит ли заданная точка фигуре, пред­ставленной на рис. 6а. Решить задачу для точек с координатами (-0,5; 0,8), (0,5; 0,4).
  2. Определить, принадлежит ли точка фигуре, представленной на рис.6б. Решить задачу для точек с координатами (0,2; 0,3), (-2,5; 0,4), (1,5; -0,2).

  

        Рис. 6а                       Рис. 6б

  1. Заданы координаты двух точек. Определить, лежат ли они на одной окружности с центром в начале координат.     Задачу решить для точек с ко­ординатами (0; 2), (2; 0), (1; 3), (2; 2).
  2. Заданы площади круга Rи квадрата S. Определить, по­местится ли квадрат в круге.
  3. Для задачи 6 определить, поместится ли круг в квадрате.
  4. Напишите программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели или со­общение об ошибке, если введены неверные данные.
  5. Напишите программу, которая запрашивает у пользователя номер месяца и затем выводит соответствующее название времени года. В случае, если пользователь введет недопустимое число, программа должна вывести сообщение "Ошибка ввода данных". Ниже приведен рекомендуемый вид экрана во время работы программы.