close

Вход

Забыли?

вход по аккаунту

?

лаба 3

код для вставкиСкачать
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
"Харківський політехнічний інститут"
Кафедра "Автоматизовані системи управління"
ЗВІТ
з лабораторної роботи №3
по курсу "Основи алгоритмізації і програмування"
ВИКОНАВ
Студент групи ІФ 33 г
Скомороха О.Г.
ПЕРЕВІРИВ
К.т.н., доц. каф. АСУ
Дукова І.О.
Харків 2013
Тема: Простейшие операции и операторы языка С++
Цель:
- закрепить знания о простейших операциях и операторах языка С++, в частности операторах if, if ... else, switch, cin, cout, >>, <<
- разработать приложение в соответствии с заданием
Задание: 1) разработать алгоритм для решения поставленной задачи
2) разработать программу для решения поставленной задачи
3) проверить работоспособность программы на тестовых данных
Задача:
Для действительных х и у, определяющих координату точки A(x,y) в декартовых координатах, определить значение SPO.
Вариант 4
Код программы :
// Лаба 3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE, "russian");
float x, y, R,SPO;
cout << "Введите х: ";
cin >> x;
cout << "Введите у: ";
cin >> y;
cout << "Введите R: ";
cin >> R;
if (abs(x + R) + abs(y + R) <= R){
cout << "Точка А с координатами: " << x << ", " << y << " находится в красной области" <<endl;
if (x + y == 0)
cout << "SPO нельзя вычислить" << endl;
else
{
SPO = (x + 10)/(x+y);
cout << "SPO= " << SPO << endl;
}
}
else if ((abs(x + R) + abs(y + R) > R) && ((x + R)*(x + R) + (y + R)*(y + R) <= R*R) && (x > -R)){
cout << "Точка А с координатами: " << x << ", " << y << " находится в желтой области" <<endl;
if (x == 0)
cout << "SPO нельзя вычислить" << endl;
else
{
SPO = (1/x) + y;
cout << "SPO= " << SPO << endl;
}
}
else if (((abs(x + R) + abs(y + R) > R) && ((x + R)*(x + R) + (y + R)*(y + R) <= R*R) && (x < -R)) || (((x + R)*(x + R) + (y + R)*(y + R) >= R*R) && (x > -R) && (x <= 0) && (y <= 0) && (y > -R))) {
cout << "Точка А с координатами: " << x << ", " << y << " находится в синей области" <<endl;
if (y == 0)
cout << "SPO нельзя вычислить" << endl;
else{
SPO = x/y;
cout << "SPO= " << SPO << endl;
}
}
else {
cout << "Вы не попали в заданые области" << endl;
SPO = x*y;
cout << "SPO= " << SPO << endl;
}
return 0;
}
Алгоритм :
Шаг 1. Вводим x, y, R . Переходим к шагу 2.
Шаг 2. Проверяем принадлежность точки А(х,у) к одной из данных зон. Если условия ((x - y <= R) && (y - x <= R) && (x + y <= -R) && (x + y >= -3*R)) выполняются, то точка А находится в красной области - переходим к шагу 6, если - нет, то переходим к шагу 3.
Шаг 3. Если условия (((x + R)*(x + R) + (y + R)*(y + R) <= R*R) && (x + y > -R) || ((x + + R)*(x + R) + (y + R)*(y + R) <= R*R)&& (x - y > R)) выполняются, то точка А находится в желтой области - переходим к шагу 7, если - нет, то переходим к шагу 4.
Шаг 4. Если условия ((((x + R)*(x + R) + (y + R)*(y + R) <= R*R) && (y - x > R) || ((x + R)*(x + + R) + (y + R)*(y + R) <= R*R) && (x + y < -3*R)) || ((x + R)*(x + R) + (y + R)*(y + R) > R*R) && (x > -R) && (y > -R) && (x < 0) && (y < 0)) выполняются, то точка А находится в синей области - переходим к шагу 8, если - нет, то переходим к шагу 5.
Шаг 5. Точка А не находится ни в одной из заданных областей. Вычисляем : SPO = x*y. Переходим к шагу 9.
Шаг 6. Вычисляем : SPO = (x + 10)/(x+y). Переходим к шагу 9. Шаг 7. Вычисляем : SPO = 1/x + y . Переходим к шагу 9.
Шаг 8. Вычисляем : SPO = х/у. Переходим к шагу 9.
Шаг 9. Конец алгоритма.
Выводы На этой лабораторной работе я закрепил знания о простейших операциях и операторах языка С++, в частности операторах if, if ... else, switch, cin, cout, >>, << .
Документ
Категория
Рефераты
Просмотров
94
Размер файла
29 Кб
Теги
лаба
1/--страниц
Пожаловаться на содержимое документа