Найпростіші операції і оператори мови С++

Автор: Пользователь скрыл имя, 10 Октября 2011 в 22:55, лабораторная работа

Краткое описание

Цель:

закрепить знания о простейших операциях и операторах языка С++, в частности операторах if, if … else, switch, cin, cout, >>, <<
разработать приложение в соответствии с заданием
Задание на лабораторную работу:

Задание:

разработать алгоритм для решения поставленной задачи
разработать программу для решения поставленной задачи
проверить работоспособность программы на тестовых данных

Файлы: 1 файл

lab3.doc

— 168.50 Кб (Скачать)

Міністерство  освіти і науки  України

Національний  технічний університет

«Харківський  політехнічний інститут» 

Кафедра «Автоматизовані системи управління» 
 

Звіт  до лабораторної роботи №3

на тему:

«Найпростіші операції і оператори мови С++» 
 
 
 
 
 
 
 

                                              Виконав:

                                              Студент групи ІФ-31г

                                              Копил М. О. 

                                              Перевірив

                                              ас. каф. АСУ Аркатов  Д.Б.

                                              ас. каф. АСУ Пікалова В.В. 
 
 

Харків 2011 
 

Цель:

  • закрепить знания о простейших операциях и операторах языка С++, в частности операторах if, if … else, switch, cin, cout, >>, <<
  • разработать приложение в соответствии с заданием

Задание на лабораторную работу:

Задание:

  1. разработать алгоритм для решения поставленной задачи
  2. разработать программу для решения поставленной задачи
  3. проверить работоспособность программы на тестовых данных

Задача:

Для действительных х и у, определяющих координату точки A(x,y) в декартовых координатах, определить значение SPO.

Вариант 5

 

Ход выполнения работы:

  1. Был разработан алгоритм, который изображен ниже 

     
     

 

     

  1. Был написан  следующий программный код, обеспечивающий решение задания:

// lab3.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <iostream>

#include <math.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

      float x,y,r,spo; //объявление переменных

      float dlina_OA;

      int zona=0;   //1=red, 2=blue, 3=yellow; 

      /*ввод x,y -координаты точки

        и радиус круга R

      */

      cout <<"x=";

      cin >>x; 

      cout <<"y="

      cin >>y;

      cout <<"R="

      cin >>r;

      // подсчитаем длину отрезка OA 

      dlina_OA=sqrt(((x-r)*(x-r))+((y+r)*(y+r)));  

      //Находится  ли точка за кругом

      if (dlina_OA > r)

      {

            //есть два  варианта

            //1: в белом

            //2: в жёлтом

            if (((x>0)&&(x<r))&&((y<0)&&(y>-r))) 

            {

                  zona=4; //в белом

            }

            else

            {

                  zona=3; //в жёлтом    

            }; 

      }

      else //считаем, если точка в круге 

      {

            //если внутри  ромба, то в белой зоне

            if (((x>y+r)&&(x<y+3*r)&&(x>-r-y)&&(x<r-y))&&((y<x-r)&&(y>x-3*r)&&(y>-r- 

                                                            x)&&(y<r-x)))

            {

                  zona=4;

            };

            //считаем,если  в красной зоне

            if ((x>y+r)&&(x<y+3*r))

            {

                  if (y>r-x)

                  {

                        zona=1;

                  };

                  if (y<-r-x)

                  {

                        zona=1;

                  };        

            };  

            //Если в  синей зоне

            if ((x>-r-y)&&(x<r-y))

            {

                  if (y>x-r)

                  {    

                        zona=2;

                  };

                  if (y<x-3*r)

                  {

                        zona=2;    

                  };

            };

      }; 

      //подсчитуем spo по формуле, в зависимости  от зоны, где находится точка

      switch (zona)

      {

            case 1:{spo=(x+10)/(x+y); break;}; //красный

            case 2:{spo=(x+1)/y; break;};      //синий

            case 3:{spo=x/(y-x); break;};      //желтый

            default: spo=x*y;

      };

      //вывод  spo

      cout <<"spo="

      cout <<spo<<"; "

      return 0; //конец программы

}

  1. Была сделана проверка работоспособности программы на тестовых данных:
    1. Жёлтая зона x=3, y=2, r=3, получен результат spo=-3;
    2. Белая зона x=3, y=-2, r=3, получен результат spo=-6;
    3. Красная зона x=4.5, y=-1, r=3, получен результат spo=4.14286;
    4. Синяя зона x=1.2, y=-1.5, r=3, получен результат spo=-1.46667.
 

    Выводы  по проделанной работе:

      В ходе выполнения лабораторной работы я закрепил знания о простейших операциях и операторах языка С++, в частности if, if ... else, switch, cin, cout, разработал приложение в соответствии с заданием и произвел его тестирование  на разных входных данных. 

Информация о работе Найпростіші операції і оператори мови С++