навчитися використовувати умовний оператор для організації розгалужених процесів.
Розібрати приклади, та модифікувати ix, згідно зі завданням. Виконати два індивідуальних завдання з обчислення значення шматково-безперервної функції, згідно зі своїм варіантом.
Теоретичні відомості
Умовний оператор мас дві форми:
if (вираз умова) оператор-1; else onератор_2 - повна
if (вираз умова) onератор 1; - скорочена
У разі істинності (тобто при ненульовому значенні) виразу-умови виконується тільки оператор_1, при нульовому значенні виразу-умови виконуeться тільки оператор_2, вираз умова уявляє собою: арифметичний вираз, відношення або логічний вираз. Onератор_1 і оператор_2 у операторі if можуть бути як окремими, так і складовими операторами .
#include <iostream>#include <math.h>#define M_E 2.71828182845904523536 // e#define M_PI 3.14159265358979323846 //PIusing namespace std;int main(){ setlocale(LC_ALL, "rus"); cout << "\n\tШевельок,Тахмазова 11-Мi клас\n";//назва програми cout << "\n\tВарiант 7 \n"; cout << "\n\tЛабораторна робота. №5 Завдання 1 \n";//назва програми double z, x, y, a, b, c, d, f; z = 0; printf("\n\t sin(x*x)"); printf("\n\tZ=-------------------"); printf("\n\t b*sqrt(x*x + y*y) \n"); printf("\n\tЯкщо :"); printf("\n\tx = b - e ^(a / 2.4)\ty = 1.5x + log(2a)\n"); cout << "\n\tПараметр a = ";//введення параметру а=1.25 cin >> a; cout << "\n\tПараметр b = ";//введення параметру b= 4.7 cin >> b; x = b - pow(M_E, a / 2.4); y = 1.5*x + log(2 * a); if (x <= 1) { z = sin(x*x); } else if (x >1) { z = b*sqrt(x*x + y*y); } printf("\n\tРезультат: Z=%4.2f \n\n", z); cout << endl << endl << "\t"; system("pause"); return 0;}// ProgramDlg.cpp : файл реализации//#include "stdafx.h"#include "Program.h"#include "ProgramDlg.h"#include "afxdialogex.h"#define M_E 2.71828182845904523536 // e#ifdef _DEBUG#define new DEBUG_NEW#endif// диалоговое окно CProgramDlgCProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/) : CDialog(IDD_PROGRAM_DIALOG, pParent) , A() , B(){ 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Лабораторна робота №5. Завдання 1.Варiант 7 Шевельок,Тахмазова 11-Мi клас"); DDX_Text(pDX, IDC_EDIT1, A); DDX_Text(pDX, IDC_EDIT2, B);}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 { CDialog::OnPaint(); }}// Система вызывает эту функцию для получения отображения курсора при перемещении// свернутого окна.HCURSOR CProgramDlg::OnQueryDragIcon(){ return static_cast<HCURSOR>(m_hIcon);}void CProgramDlg::OnBnClickedButton1(){ double a, b, z;//змінні UpdateData(true); a = A; b = B; UpdateData(false); z = 0; x = b - pow(M_E, a / 2.4); y = 1.5*x + log(2 * a); if (x <= 1) { z = sin(x*x); } else if (x >1) { z = b*sqrt(x*x + y*y); } ms.Format(L"\n\n\tВiдповiдь: %4.2f ", z); MessageBox(ms);//вивід результату // TODO: Add your control notification handler code here}#include <iostream>using namespace std;int main(){ setlocale(LC_ALL, "rus"); cout << "\n\tШевельок,Тахмазова 11-Мi клас\n";//назва програми cout << "\n\tВарiант 7 \n"; cout << "\n\tЛабораторна робота. №5 Завдання 2 \n";//назва програми double a, b,x; x = 0; printf("\n\t [ 5a+b, якщо a>b "); printf("\n\tX= | -125, якщо a=b"); printf("\n\t [ (a-5)/b, якщо a<b\n"); cout << "\n\tВведiть параметр a="; cin >> a; cout << "\n\tВведiть параметр b="; cin >> b; if (a>b) { x=5*a+b; } else if (a < b) { x = (a - 5) / b; } else { x=-125; } printf("\n\tРезультат: X=%4.2f \n\n", x); 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() , B(){ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CProgramDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); fg = true; SetWindowTextW(L"\n\tЛабораторна робота №5. Завдання 2.Варiант 7 Шевельок,Тахмазова 11-Мi клас"); DDX_Text(pDX, IDC_EDIT2, A); DDX_Text(pDX, IDC_EDIT1, B);}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 { 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, x;//змінні UpdateData(true); a = A; b = B; UpdateData(false); x = 0; if (a>b) { x = 5 * a + b; } else if (a < b) { x = (a - 5) / b; } else { x = -125; } ms.Format(L"\n\n\tВiдповiдь: %4.2f ", x); MessageBox(ms);//вивід результату}