Помощь в написании студенческих работ
Антистрессовый сервис

Текст программы. 
Проектирование циклических алгоритмов с заданным числом повторений и уравнением с условием

РефератПомощь в написанииУзнать стоимостьмоей работы

LineTo (hdc, X0 + modX * x, Y0 — modY * (4 * exp (-fabs (x)) — 1)); B = a + (a — b) * functionE (a) / (functionE (a) — functionE (b)); Printf («Введите количество разбиений: «); Rectangle (hdc, 10 + i * 10, 10 + 10 * j, 90 + i * 10, 90 + 10 * j); Rectangle (hdc, 10 + i * 10, 10 + 10 * j, 90 + i * 10, 90 + 10 * j); MoveToEx (hdc, X0 + modX * -1, Y0 — modY * cos (-1), NULL); SetConsoleTextAttribute… Читать ещё >

Текст программы. Проектирование циклических алгоритмов с заданным числом повторений и уравнением с условием (реферат, курсовая, диплом, контрольная)

Файлы исходного кода РГР.cpp.

#include «stdafx.h» .

extern HANDLE hStdOut;

extern CONSOLE_SCREEN_BUFFER_INFO csbInfo;

extern SMALL_RECT consolRect;

int main () {.

setlocale (LC_ALL, «RUS»);

SetConsoleTitle (L" РГР вариант 3. Гергерт Андрей Владимирович, ИВТ-163″);

hStdOut = GetStdHandle (STD_OUTPUT_HANDLE);

GetConsoleScreenBufferInfo (hStdOut, &csbInfo);

consolRect = csbInfo. srWindow;

cls ();

drawMenu ();

}.

void Exit () {.

exit (0);

}.

AuthorInfo.cpp.

#include «stdafx.h» .

extern HANDLE hStdOut;

void drawInfo () {.

system («cls»);

SetConsoleTextAttribute (hStdOut, 47);

printf («Автор программы: Гергерт Андрей Владимирович «);

SetConsoleTextAttribute (hStdOut, 79);

printf («Группа: ИВТ-163 «);

SetConsoleTextAttribute (hStdOut, 160);

printf («Вариант: 3 «);

SetConsoleTextAttribute (hStdOut, 158);

}.

definedIntegral.cpp.

#include «stdafx.h» .

void computeIntegral () {.

system («cls»);

double a, b;

lint slices;

printf («Введите левую границу: «);

scanf («%lf», &a);

printf («Введите правую границу: «);

scanf («%lf», &b);

printf («Введите количество разбиений: «);

scanf («%ld», &slices);

printf («Интеграл равен: %.6lf (метод трапеций) %.6lf (метод прямоугольников) «, compute (a, b, slices), compute2(a, b, slices));

}.

double compute (double a, double b, lint slices) {.

double sum = 0, x = a, dx = fabs (b — a) / slices;

while (x < b) {.

sum += (functionI (x + dx) + functionI (x)) * dx / 2;

x += dx;

}.

return sum;

}.

double compute2(double a, double b, lint slices) {.

double sum = 0, x = a, dx = (b — a) / slices;

while (x < b) {.

sum += functionI (x — dx / 2);

x += dx;

}.

sum *= dx;

return sum;

}.

double functionI (double x) {.

return 1 / sqrt (2 + pow (x, 3));

}.

drawMenu.cpp.

#include «stdafx.h» .

#define KEY_ARROW_UP 72.

#define KEY_ARROW_DOWN 80.

#define KEY_ENTER 13.

#define KEY_ESC 27.

#define MAIN_X 5.

#define MAIN_Y 6.

typedef void (*FUN) (void);

typedef struct {.

int x, y;

char *str;

FUN f;

} ITEM;

HANDLE hStdOut;

CONSOLE_SCREEN_BUFFER_INFO csbInfo;

SMALL_RECT consolRect;

COORD curspos = { 0,1 };

WORD workWindowAttributes = 158;

WORD inactiveItemAttributes = 31;

WORD activeItemAttributes = 160;

ITEM menu[numMenu] = {.

{ MAIN_X, MAIN_Y, «ПОСТРОЕНИЕ ТАБЛИЦЫ ЗАДАННЫХ ФУНКЦИЙ «, doTable},.

{ MAIN_X, MAIN_Y + 2," РЕШЕНИЕ НЕЛИНЕЙНОГО УРАВНЕНИЯ «, solveEquation},.

{ MAIN_X, MAIN_Y + 4," ВЫЧИСЛЕНИЕ ОПРЕДЕЛЁННОГО ИНТЕГРАЛА «, computeIntegral},.

{ MAIN_X, MAIN_Y + 6," ПОСТРОЕНИЕ ГРАФИКОВ ЗАДАННЫХ ФУНКЦИЙ", drawGraph},.

{ MAIN_X, MAIN_Y + 8," ИНФОРМАЦИЯ ОБ АВТОРЕ «, drawInfo},.

{ MAIN_X, MAIN_Y + 10," ГРАФИЧЕСКАЯ ЗАСТАВКА «, drawScreensaver},.

{ MAIN_X, MAIN_Y + 12," ВЫХОД (доступно на нажатию ESC) «, Exit}.

};

void getCursorPos (){.

GetConsoleScreenBufferInfo (hStdOut, &csbInfo);

curspos = csbInfo. dwCursorPosition;

}.

void showCursor (bool visible) {.

CONSOLE_CURSOR_INFO ccInfo;

ccInfo.bVisible = visible;

ccInfo.dwSize = 20;

SetConsoleCursorInfo (hStdOut, &ccInfo);

}.

void gotoXY (int x, int y) {.

COORD cursorPos = { x, y };

SetConsoleCursorPosition (hStdOut, cursorPos);

}.

void cls () {.

system («cls»);

}.

void drawMenu () {.

menuItems sel = TABLE;

prepare (sel);

itemMenu (sel, true);

fflush (stdin);

int iKey = 67;

while (true) {.

if (_kbhit ()) {.

iKey = _getch ();

switch (iKey) {.

case KEY_ARROW_DOWN:

if (sel < numMenu — 1) {.

itemMenu (sel, false);

sel = (menuItems)(sel + 1);

itemMenu (sel, true);

} else {.

itemMenu (sel, false);

sel = TABLE;

itemMenu (sel, true);

}.

showCursor (false);

break;

case KEY_ARROW_UP:

if (sel > 0) {.

itemMenu (sel, false);

sel = (menuItems)(sel — 1);

itemMenu (sel, true);

}.

else {.

itemMenu (sel, false);

sel = EXIT;

itemMenu (sel, true);

}.

showCursor (false);

break;

case KEY_ENTER:

gotoXY (curspos.X, curspos. Y);

SetConsoleTextAttribute (hStdOut, workWindowAttributes);

showCursor (true);

switch (sel) {.

case TABLE:

doTable ();

break;

case EQUATION:

solveEquation ();

break;

case INTEGRAL:

computeIntegral ();

break;

case GRAPH:

drawGraph ();

break;

case AUTHOR:

drawInfo ();

break;

case SCREENSAVER:

drawScreensaver ();

break;

default:

Exit ();

}.

cout << «Нажмите любую клавишу для выхода в меню» << endl;

getch ();

prepare (sel);

getCursorPos ();

fflush (stdin);

gotoXY (menu[sel]. x, menu[sel]. y);

showCursor (false);

break;

case KEY_ESC:

gotoXY (0, 0);

cls ();

Exit ();

}.

}.

}.

}.

void itemMenu (int sel, bool activate) {.

WORD itemAttributes;

if (activate) itemAttributes = activeItemAttributes;

else itemAttributes = inactiveItemAttributes;

gotoXY (menu[sel]. x, menu[sel]. y);

SetConsoleTextAttribute (hStdOut, itemAttributes);

cout << menu[sel]. str;

}.

void prepare (menuItems sel) {.

SetConsoleTextAttribute (hStdOut, 0);

cls ();

SetConsoleTextAttribute (hStdOut, inactiveItemAttributes);

for (int i = 0; i < numMenu; i++) {.

gotoXY (menu[i]. x, menu[i]. y);

cout << menu[i]. str;

}.

itemMenu (sel, true);

}.

equation.cpp.

#include «stdafx.h» .

#define precision 0.001.

void solveEquation () {.

system («cls»);

printf («Корни уравнения «5*x-exp (x)-2*x*sqrt (x)=0» с точностью %lf= x1 = %.5lf (метод бисекции) x2 = %.5lf (метод хорд) «, precision, solve (0.1, 0.8), solve2(1, 2));

}.

double solve (double a, double b) {.

double c;

while ((b — a) > 2 * precision) {.

c = (a + b) / 2;

if (functionE© == 0).

break;

else if (functionE (a)*functionE© < 0).

b = c;

else.

a = c;

}.

return c;

}.

double solve2(double a, double b) {.

while (fabs (b — a) > precision).

{.

a = b — (b — a) * functionE (b) / (functionE (b) — functionE (a));

b = a + (a — b) * functionE (a) / (functionE (a) — functionE (b));

}.

return b;

}.

double functionE (double x) {.

return 5 * x — exp (x) — 2 * x * sqrt (x);

}.

Graphics.cpp.

#include «stdafx.h» .

#define modX 75.

#define modY 50.

#define X0 100.

#define Y0 200.

HDC hdc;

extern HANDLE hStdOut;

extern CONSOLE_SCREEN_BUFFER_INFO csbInfo;

void drawGraph () {.

hdc = GetDC (GetConsoleWindow ());

GetConsoleScreenBufferInfo (hStdOut, &csbInfo);

system («cls»);

drawAxis ();

drawF1();

drawF2();

ReleaseDC (NULL, hdc);

}.

void drawAxis () {.

COLORREF whitePen = RGB (255, 255, 255);

HPEN axis = CreatePen (PS_SOLID, 2, whitePen);

SelectObject (hdc, axis);

MoveToEx (hdc, X0 — modX, Y0, NULL);

LineTo (hdc, X0 + 7 * modX, Y0);

MoveToEx (hdc, X0, Y0 — 4 * modY, NULL);

LineTo (hdc, X0, Y0 + 8 * modY);

DeleteObject (axis);

TextOutA (hdc, X0 + 7 * modX — 8, Y0 + 3, «x», 1);

TextOutA (hdc, X0 + 3, Y0 — 4 * modY + 24, «y», 1);

}.

void drawF1() {.

COLORREF penColor = RGB (0, 255, 0);

HPEN pen = CreatePen (PS_SOLID, 3, penColor);

SelectObject (hdc, pen);

MoveToEx (hdc, X0 + modX * -1, Y0 — modY * (4 * exp (-fabs (-1)) — 1), NULL);

for (double x = -1.0; x < 5 + 0.001; x += 0.01f) {.

LineTo (hdc, X0 + modX * x, Y0 — modY * (4 * exp (-fabs (x)) — 1));

}.

DeleteObject (pen);

SetBkColor (hdc, RGB (0, 255, 0));

TextOutA (hdc, X0 + 5 * modX, Y0 + modY, «F1(x) = 4 * exp (-|x|) — 1», 25);

}.

void drawF2() {.

COLORREF penColor2 = RGB (255, 0, 0);

HPEN pen2 = CreatePen (PS_SOLID, 3, penColor2);

SelectObject (hdc, pen2);

MoveToEx (hdc, X0 + modX * -1, Y0 — modY * cos (-1), NULL);

for (double x = -1.0; x < 5 + 0.001; x += 0.01f) {.

LineTo (hdc, X0 + modX * x, Y0 — modY * cos (x));

}.

DeleteObject (pen2);

SetBkColor (hdc, RGB (255, 0, 0));

TextOutA (hdc, X0 + 5 * modX, Y0 — modY / 1.5, «F2(x) = cos x», 13);

}.

Screensaver.cpp.

#include «stdafx.h» .

extern HDC hdc;

extern HANDLE hStdOut;

extern CONSOLE_SCREEN_BUFFER_INFO csbInfo;

void drawScreensaver () {.

GetConsoleScreenBufferInfo (hStdOut, &csbInfo);

system («cls»);

draw ();

}.

void draw () {.

srand (time (NULL));

int iKey = 0, i, j;

hdc = GetDC (GetConsoleWindow ());

COLORREF color;

while (iKey ≠ 27) {.

i = 0;

while (i < 50) {.

j = 0;

while (j < 30) {.

color = RGB (rand () % 256, rand () % 256, rand () % 256);

SelectObject (hdc, CreatePen (PS_DASHDOTDOT, 3, color));

Rectangle (hdc, 10 + i * 10, 10 + 10 * j, 90 + i * 10, 90 + 10 * j);

Sleep (150);

if (_kbhit ()) {.

iKey = _getch ();

if (iKey == 27).

goto END;

}.

j += 10;

}.

i += 15;

}.

END:Sleep (500);

SetConsoleTextAttribute (hStdOut, rand () % 256);

cls ();

}.

ReleaseDC (NULL, hdc);

SetConsoleTextAttribute (hStdOut, 158);

cls ();

}.

table.cpp.

#include «stdafx.h» .

extern HDC hdc;

extern HANDLE hStdOut;

extern CONSOLE_SCREEN_BUFFER_INFO csbInfo;

void drawScreensaver () {.

GetConsoleScreenBufferInfo (hStdOut, &csbInfo);

system («cls»);

draw ();

}.

void draw () {.

srand (time (NULL));

int iKey = 0, i, j;

hdc = GetDC (GetConsoleWindow ());

COLORREF color;

while (iKey ≠ 27) {.

i = 0;

while (i < 50) {.

j = 0;

while (j < 30) {.

color = RGB (rand () % 256, rand () % 256, rand () % 256);

SelectObject (hdc, CreatePen (PS_DASHDOTDOT, 3, color));

Rectangle (hdc, 10 + i * 10, 10 + 10 * j, 90 + i * 10, 90 + 10 * j);

Sleep (150);

if (_kbhit ()) {.

iKey = _getch ();

if (iKey == 27).

goto END;

}.

j += 10;

}.

i += 15;

}.

END:Sleep (500);

SetConsoleTextAttribute (hStdOut, rand () % 256);

cls ();

}.

ReleaseDC (NULL, hdc);

SetConsoleTextAttribute (hStdOut, 158);

cls ();

}.

Заголовочные файлы РГР.h.

#pragma once.

#ifndef RGR_H.

#define RGR_H.

int main (void);

void Exit (void);

#endif.

AuthorInfo.h.

#pragma once.

#ifndef AUTHORINFO_H.

#define AUTHORINFO_H.

void drawInfo (void);

#endif.

definedIntegral.h.

#pragma once.

#ifndef DEFINEDINTEGRAL_H.

#define DEFINEDINTEGRAL_H.

void computeIntegral (void);

double compute (double, double, lint);

double compute2(double, double, lint);

double functionI (double);

#endif.

drawMenu.h.

#pragma once.

#ifndef DRAWMENU_H_.

#define DRAWMENU_H_.

const int numMenu = 7;

enum menuItems { TABLE, EQUATION, INTEGRAL, GRAPH, AUTHOR, SCREENSAVER, EXIT };

void drawMenu (void);

void gotoXY (int, int);

void itemMenu (int, bool);

void cls (void);

void getCursorPos (void);

void showCursor (bool);

void prepare (menuItems);

#endif.

equation.h.

#pragma once.

#ifndef EQUATION_H_.

#define EQUATION_H_.

void solveEquation (void);

double solve (double, double);

double solve2(double, double);

double functionE (double);

#endif.

Graphics.h.

#pragma once.

#ifndef GRAPHICS_H.

#define GRAPHICS_H.

void drawGraph (void);

void drawAxis (void);

void drawF1(void);

void drawF2(void);

#endif.

screensaver.h.

#pragma once.

#ifndef SCREENSAVER_H_.

#define SCREENSAVER_H_.

void drawScreensaver (void);

void draw (void);

#endif.

stdafx.h.

#pragma once.

// libraries.

#include «targetver.h» .

#include.

#include.

#include.

#include.

#include.

#include.

#include.

using namespace std;

typedef unsigned int uint;

typedef long int lint;

// own headers.

#include «table.h» .

#include «equation.h» .

#include «definedIntegral.h» .

#include «drawMenu.h» .

#include «РГР.h» .

#include «Graphics.h» .

#include «AuthorInfo.h» .

#include «screensaver.h» .

table.h.

#pragma once.

#ifndef TABLE_H.

#define TABLE_H.

#define N 15.

void doTable (void);

void generateMassive (void);

void drawMassive (double [3][N][N]);

int getMinNumber (double[3][N][N], int);

int getMaxNumber (double[3][N][N], int);

#endif.

Показать весь текст
Заполнить форму текущей работой