Написати програму обчислення заштрихованої площини фігури, згідно з варіантом .
Вихідні дані:
Теоритичні відомості:
В С ++ існує три логічні операції:
Логічні операції утворюють складне (складене) умова з декількох простих (два або більше) умов. Ці операції спрощують структуру програмного коду в кілька разів. Так, можна обійтися і без них, але тоді кількість іфов збільшується в кілька разів, в залежності від умови. У наступній таблиці коротко охарактеризовані всі логічні операції в мові програмування С ++, для побудови логічних умов.
Таблиця 1 - Логічні операції С ++
Операції Позначення Умова Короткий опис
І && a == 3 && b> 4 Складений умова істинно, якщо істинні обидва простих умови
АБО || a == 3 || b> 4 Складений умова істинно, якщо істинно, хоча б одне з простих умов
НЕ! ! (A == 3) Умова істинно, якщо a не дорівнює 3
#include <iostream>//бібліотека
#define PI 3.14159268; // число pi для зручності обчислень
using namespace std;
int main()
{
setlocale(LC_ALL, "rus");//мова на якій буде программа
cout << "\n\tШевельок,Тахмазова 11-Мi клас\n";//назва програми
cout << "\n\tВарiант 7 \n";
cout << "\n\tЛабораторна робота. №3\n";
double a, b, c, d, f, S, S1, S2, S3, S4, S5;//змінні
S1 = S2 = S = 0;
printf("\n\tОбчислимо площу фiгури. \n\n");
printf("\n\tВведiть параметр a = ");//введення параметру а
cin >> a;
printf("\n\tВведiть параметр b = ");//введення параметру b
cin >> b;
printf("\n\tВведiть параметр c = ");//введення параметру c
cin >> c;
printf("\n\tВведiть параметр d = ");//введення параметру d
cin >> d;
printf("\n\tВведiть параметр f = ");//введення параметру f
cin >> f;
S1 = (d / 0.5)*PI;//площа фігура колеса
S2 = a*b;//площа кузова
S3 = 0.5*b*(a - c - b);//площа передньої частини, яка утворює трикутник
S4 = f*b;//площа верхньої частини машини
S5 = b*b;//площа вікна
S = S1 + S2 + S3 + S4 - S5;//загальна площа фігури
printf("\n\n\tПлоща фiгури S=%4.2f кв.од.", S);//вивід результату
cout << endl << endl << "\t";
system("pause");
return 0;
}
// ProgramDlg.cpp : файл реализации#include "stdafx.h"#include "Program.h"#include "ProgramDlg.h"#include "afxdialogex.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// диалоговое окно CProgramDlgCProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/) : CDialog(IDD_PROGRAM_DIALOG, pParent) , A(18.0) , B(4.0) , C(9.0) , D(4.0) , F(6.0){ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CProgramDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); c[0] = 0xFF00FF; c[1] = 0xFFA500; c[2] = 0xFFFF; c[3] = 0x0C7800; c[4] = 0x005690; c[5] = 0xFFFF0000; c[6] = 0xCC00AA; c[7] = 0xAA5600; c[8] = 0xAAAA; c[9] = 0x00CC00; c[10] = 0x090056; c[11] = 0xF0F0F0; fg = true; SetWindowTextW(L"\n\tЛабораторна робота №3. Варiант 7 Шевельок, Тахмазова 11-Мi клас"); DDX_Text(pDX, IDC_EDIT1, A); DDX_Text(pDX, IDC_EDIT2, B); DDX_Text(pDX, IDC_EDIT3, C); DDX_Text(pDX, IDC_EDIT4, D); DDX_Text(pDX, IDC_EDIT5, F);}BEGIN_MESSAGE_MAP(CProgramDlg, CDialog) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, &CProgramDlg::OnBnClickedButton1)END_MESSAGE_MAP()// обработчики сообщений CProgramDlgBOOL CProgramDlg::OnInitDialog(){ CDialog::OnInitDialog(); // Задает значок для этого диалогового окна. Среда делает это автоматически, // если главное окно приложения не является диалоговым SetIcon(m_hIcon, TRUE); // Крупный значок SetIcon(m_hIcon, FALSE); // Мелкий значок // TODO: добавьте дополнительную инициализацию return TRUE; // возврат значения TRUE, если фокус не передан элементу управления}// При добавлении кнопки свертывания в диалоговое окно нужно воспользоваться приведенным ниже кодом,// чтобы нарисовать значок. Для приложений MFC, использующих модель документов или представлений,// это автоматически выполняется рабочей областью.void CProgramDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this); // контекст устройства для рисования SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // Выравнивание значка по центру клиентского прямоугольника int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Нарисуйте значок dc.DrawIcon(x, y, m_hIcon); } else { CClientDC dc(this); GetClientRect(&rc); //dc.FillSolidRect(&rc, RGB(255, 255, 255)); hbk = (HFONT)::GetStockObject(SYSTEM_FONT); hNew = CreateFont(44, 0, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Penta"); hold = (HFONT)SelectObject(dc, hNew); SetTextColor(dc, c[5]); dc.TextOutW(75, 80, t, t.GetLength()); w.left = rc.left; w.right = rc.right; w.top = rc.top + 200; w.bottom = rc.bottom; //dc.FillSolidRect(&w, RGB(0, 0, 0)); hold = (HFONT)SelectObject(dc, hbk); CDialog::OnPaint(); }}// Система вызывает эту функцию для получения отображения курсора при перемещении// свернутого окна.HCURSOR CProgramDlg::OnQueryDragIcon(){ return static_cast<HCURSOR>(m_hIcon);}void CProgramDlg::OnBnClickedButton1(){ // TODO: Add your control notification handler code here double a, b, c, d, f, s;//змінні UpdateData(true); a = A; b = B; c = C; d = D; f = F; UpdateData(false); s = 0; s = (D / 0.5)*pi + A*B + 0.5*B*(A - C - B) + F*B - B*B;//загальна площа фігури ms.Format(L"\n\n\tПлоща фiгури S=%4.2f кв.од.", s); MessageBox(ms);//вивід результату}