Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 16.10.2017
Сообщений: 77

Приложение которое вычисляет корень и инверсия знака

03.12.2018, 18:52. Показов 637. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
// Project27.cpp : Defines the entry point for the application.
//
 
#include "stdafx.h"
#include "Project27.h"
 
#define MAX_LOADSTRING 100
 
#include <windows.h> 
#include <tchar.h> 
 
// Функция оконной процедуры 
// Эта функция обрабатывает многочисленные сообщения, 
// которые приложение получает от операционной системы. 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
// szWindowClass: имя приложения 
static TCHAR szWindowClass[] = _T("win32app");
// szTitle: текст, который появляется в строке заголовка 
static TCHAR szTitle[] = _T("Lab_6_");
 
char log[50];
char pass1[50];
char pass2[50];
 
HWND TEXT_BOX_LOG;
HWND TEXT_BOX_PASS1;
HWND TEXT_BOX_PASS2;
 
HINSTANCE hInst;
 
// WinMain: начальная точка входа 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    // Cтруктура класса окна типа WNDCLASSEX. 
    // Эта структура содержит информацию об окне, 
    WNDCLASSEX wcex;
    wcex.cbSize = sizeof(WNDCLASSEX); // Размер, в байтах, этой структуры 
    wcex.style = CS_HREDRAW | CS_VREDRAW; // Стили класса (CS_HREDRAW | CS_VREDRAW - изменение размера окна по горизонтали и вертикали) 
    wcex.lpfnWndProc = WndProc; // Указатель на оконную процедуру 
    wcex.cbClsExtra = 0; // Количество дополнительных байтов выделяемые следующим структурам окна класса 
    wcex.cbWndExtra = 0; // Количество дополнительных байтов выделить следующей инстанции окна 
    wcex.hInstance = hInstance; // Дескриптор экземпляра, который содержит оконную процедуру для класса 
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 0);
    wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = szWindowClass;
    wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
 
    // Зарегиструем класс 
    // Воспользуемся функцией RegisterClassEx и 
    // передадим структуру класса окна в качестве аргумента. 
    // Проверка регистрации 
    if (!RegisterClassEx(&wcex)) {
        MessageBox(NULL, _T("Call to RegisterClassEx failed!"), _T("Win32 Guided Tour"), NULL);
        return 1;
    }
 
    hInst = hInstance;
    // Создадим окно. Воспользуемся функцией CreateWindow. 
    HWND hWnd = CreateWindow(
        szWindowClass,
        szTitle, // Заголовок окна 
        WS_OVERLAPPEDWINDOW, // тип окна 
        CW_USEDEFAULT, CW_USEDEFAULT, // ширина и высота 
        400, 400,
        NULL, // родитель этого окна 
        NULL, // это приложение не имеет строки меню 
        hInstance, // первый параметр 
        NULL
    );
    // Проверка создания окна 
    if (!hWnd) {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);
        return 1;
    }
 
    // Отобразить окно. 
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
 
    // Цикл обработки сообщений. 
    // Когда приложение получает сообщение, этот цикл пересылает его функции WndProc для обработки. 
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
};
// Функция: WndProc(HWND, UINT, WPARAM, LPARAM) 
// 
// Назначение: обрабатывает сообщения для главного окна. 
// 
#define button1 1 
#define button2 2 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    PAINTSTRUCT ps;
    HDC hdc;
    switch (message) {
    case WM_CREATE: {
        // Заглавие в форме 
        CreateWindow(
            TEXT("STATIC"), TEXT("Нужно число"),
            WS_VISIBLE | WS_CHILD,
            80, 50, 200, 30,
            hWnd, (HMENU)3, NULL, NULL
        );
        // Надпись (Login:) 
        CreateWindow(
            TEXT("STATIC"), TEXT("Число:"),
            WS_VISIBLE | WS_CHILD,
            50, 100, 200, 30,
            hWnd, (HMENU)4, NULL, NULL
        );
        
        // Кнопка 1 
        CreateWindow(
            TEXT("button"), TEXT("Корень"),
            WS_VISIBLE | WS_CHILD,
            50, 300, 150, 30,
            hWnd, (HMENU)button1, NULL, NULL
        );
        // Кнопка 2 
        CreateWindow(
            TEXT("button"), TEXT("Инверсия"),
            WS_VISIBLE | WS_CHILD,
            220, 300, 150, 30,
            hWnd, (HMENU)button2, NULL, NULL
        );
        // Поле для ввода числа 
        TEXT_BOX_LOG = CreateWindow(
            TEXT("edit"), TEXT(""),
            WS_VISIBLE | WS_CHILD | WS_BORDER,
            120, 100, 225, 22,
            hWnd, (HMENU)7, NULL, NULL
        );
        
        break; }
                    // Комманды 
    case WM_COMMAND: {
        // Считывание строк 
        bool tmp = true; // переменная для проверки корректности ввода пароля 
        int gwtstat1;
 
        gwtstat1 = GetWindowText(TEXT_BOX_LOG, (LPWSTR)&log[0], 50); // Считывание числа
 
 
        switch (LOWORD(wParam)) {
        case button1: {
            if (gwtstat1 >= 0)
            {   //int result = sqrt(number);
                MessageBox(0, L"Результат", L"Notification", MB_OK | MB_ICONINFORMATION);
                break;
            }
            MessageBox(0, L"Ошибка", L"Notification", MB_OK | MB_ICONINFORMATION);
            break; }
        case button2:
        {
            //int result = number * (-1);
            MessageBox(0, L"Результат", L"Notification", MB_OK | MB_ICONINFORMATION);
            break; }
        } }
                     break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
        break;
    }
    return 0;
}
Реализовать проверку отрицательного значения при вычислении корня. Инверсия - смена знака. но у меня загвозка в том что в строке 158 и строка 166 я написал формулы но как их вывести ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2018, 18:52
Ответы с готовыми решениями:

Приложение которое вычисляет по формуле
Напишите программу, которая вычисляет W=\sqrt{x{}^{2}+b}-\frac{b{}^{2}sin{}^{3}\left(x+a \right)}{x} ...

Приложение которое вычисляет по формуле
Напишите программу, которая вычисляет S = 1 + x +\frac{x^2}{2}+\frac{x^3}{3}+\frac{x^4}{4} , где x = 0.335

Создайте приложение, которое по заданному натуральному числу N вычисляет N!
Создайте приложение, которое по заданному натуральному числу N вычисляет N!. C#

6
2628 / 1640 / 266
Регистрация: 19.02.2010
Сообщений: 4,351
03.12.2018, 19:17
Заводите текстовый буфер (массив, строку), заполняйте его значениями с помощью wsprintf, затем подсовывайте эту строку МессаджБоксу.
Т.е. всего-то - три строки добавочных выходит (одна - объявление массива, и две с вызовами wsprintf), плюс две строки откорректировать надо.
0
1 / 1 / 0
Регистрация: 16.10.2017
Сообщений: 77
03.12.2018, 20:04  [ТС]
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Заводите текстовый буфер (массив, строку), заполняйте его значениями с помощью wsprintf, затем подсовывайте эту строку МессаджБоксу.
Т.е. всего-то - три строки добавочных выходит (одна - объявление массива, и две с вызовами wsprintf), плюс две строки откорректировать надо.
можете наглядный пример ?
0
2628 / 1640 / 266
Регистрация: 19.02.2010
Сообщений: 4,351
03.12.2018, 20:21
Тут, например Wsprintf функция в MessageBox
0
1 / 1 / 0
Регистрация: 16.10.2017
Сообщений: 77
03.12.2018, 21:26  [ТС]
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Заводите текстовый буфер (массив, строку), заполняйте его значениями с помощью wsprintf, затем подсовывайте эту строку МессаджБоксу.
Т.е. всего-то - три строки добавочных выходит (одна - объявление массива, и две с вызовами wsprintf), плюс две строки откорректировать надо.
первая мой лаба по Win32 api

Добавлено через 24 минуты
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Тут, например Wsprintf функция в MessageBox
так и не понял как реализовать wsprintf(buf, "%d", GetDeviceCaps(hdc, PLANES));
MessageBox(NULL, buf, " ", 0); что значит buf . GetDeviceCaps(hdc,PLANES))

Добавлено через 39 минут
Цитата Сообщение от Vladled Посмотреть сообщение
первая мой лаба по Win32 api

Добавлено через 24 минуты

так и не понял как реализовать wsprintf(buf, "%d", GetDeviceCaps(hdc, PLANES));
MessageBox(NULL, buf, " ", 0); что значит buf . GetDeviceCaps(hdc,PLANES))

char buf[16];
int result = number * (-1);
wsprintf(buf, "%d", GetDeviceCaps(hdc,result ));
MessageBox(NULL, buf, " ", 0);и в massagebox 0 что значит ?

Добавлено через 51 секунду
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Тут, например Wsprintf функция в MessageBox
нуждаюсь в помощи с объяснением если вам не сложно
0
 Аватар для Alikberov
131 / 116 / 25
Регистрация: 03.05.2017
Сообщений: 337
Записей в блоге: 1
04.12.2018, 06:22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
// Project27.cpp : Defines the entry point for the application.
//
 
#include "stdafx.h"
#include "Project27.h"
 
#define MAX_LOADSTRING 100
 
#include <windows.h> 
#include <tchar.h> 
 
// Функция оконной процедуры 
// Эта функция обрабатывает многочисленные сообщения, 
// которые приложение получает от операционной системы. 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
// szWindowClass: имя приложения 
static TCHAR szWindowClass[] = _T("win32app");
// szTitle: текст, который появляется в строке заголовка 
static TCHAR szTitle[] = _T("Lab_6_");
 
char log[50];
char pass1[50];
char pass2[50];
 
HWND TEXT_BOX_LOG;
HWND TEXT_BOX_PASS1;
HWND TEXT_BOX_PASS2;
 
HINSTANCE hInst;
 
// WinMain: начальная точка входа 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    // Cтруктура класса окна типа WNDCLASSEX. 
    // Эта структура содержит информацию об окне, 
    WNDCLASSEX wcex;
    wcex.cbSize = sizeof(WNDCLASSEX); // Размер, в байтах, этой структуры 
    wcex.style = CS_HREDRAW | CS_VREDRAW; // Стили класса (CS_HREDRAW | CS_VREDRAW - изменение размера окна по горизонтали и вертикали) 
    wcex.lpfnWndProc = WndProc; // Указатель на оконную процедуру 
    wcex.cbClsExtra = 0; // Количество дополнительных байтов выделяемые следующим структурам окна класса 
    wcex.cbWndExtra = 0; // Количество дополнительных байтов выделить следующей инстанции окна 
    wcex.hInstance = hInstance; // Дескриптор экземпляра, который содержит оконную процедуру для класса 
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 0);
    wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = szWindowClass;
    wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
 
    // Зарегиструем класс 
    // Воспользуемся функцией RegisterClassEx и 
    // передадим структуру класса окна в качестве аргумента. 
    // Проверка регистрации 
    if (!RegisterClassEx(&wcex)) {
        MessageBox(NULL, _T("Call to RegisterClassEx failed!"), _T("Win32 Guided Tour"), NULL);
        return 1;
    }
 
    hInst = hInstance;
    // Создадим окно. Воспользуемся функцией CreateWindow. 
    HWND hWnd = CreateWindow(
        szWindowClass,
        szTitle, // Заголовок окна 
        WS_OVERLAPPEDWINDOW, // тип окна 
        CW_USEDEFAULT, CW_USEDEFAULT, // ширина и высота 
        400, 400,
        NULL, // родитель этого окна 
        NULL, // это приложение не имеет строки меню 
        hInstance, // первый параметр 
        NULL
    );
    // Проверка создания окна 
    if (!hWnd) {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);
        return 1;
    }
 
    // Отобразить окно. 
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
 
    // Цикл обработки сообщений. 
    // Когда приложение получает сообщение, этот цикл пересылает его функции WndProc для обработки. 
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
};
// Функция: WndProc(HWND, UINT, WPARAM, LPARAM) 
// 
// Назначение: обрабатывает сообщения для главного окна. 
// 
#define button1 1 
#define button2 2 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    TCHAR   szBuf[4096];
    PAINTSTRUCT ps;
    HDC hdc;
    switch (message) {
    case WM_CREATE: {
        // Заглавие в форме 
        CreateWindow(
            TEXT("STATIC"), TEXT("Нужно число"),
            WS_VISIBLE | WS_CHILD,
            80, 50, 200, 30,
            hWnd, (HMENU)3, NULL, NULL
        );
        // Надпись (Login:) 
        CreateWindow(
            TEXT("STATIC"), TEXT("Число:"),
            WS_VISIBLE | WS_CHILD,
            50, 100, 200, 30,
            hWnd, (HMENU)4, NULL, NULL
        );
        
        // Кнопка 1 
        CreateWindow(
            TEXT("button"), TEXT("Корень"),
            WS_VISIBLE | WS_CHILD,
            50, 300, 150, 30,
            hWnd, (HMENU)button1, NULL, NULL
        );
        // Кнопка 2 
        CreateWindow(
            TEXT("button"), TEXT("Инверсия"),
            WS_VISIBLE | WS_CHILD,
            220, 300, 150, 30,
            hWnd, (HMENU)button2, NULL, NULL
        );
        // Поле для ввода числа 
        TEXT_BOX_LOG = CreateWindow(
            TEXT("edit"), TEXT(""),
            WS_VISIBLE | WS_CHILD | WS_BORDER,
            120, 100, 225, 22,
            hWnd, (HMENU)7, NULL, NULL
        );
        
        break; }
                    // Комманды 
    case WM_COMMAND: {
        // Считывание строк 
        bool tmp = true; // переменная для проверки корректности ввода пароля 
        int gwtstat1;
 
        gwtstat1 = GetWindowText(TEXT_BOX_LOG, (LPWSTR)&log[0], 50); // Считывание числа
 
 
        switch (LOWORD(wParam)) {
        case button1: {
            if (gwtstat1 >= 0)
            {   //int result = sqrt(number);
                wsprintf(szBuf, "Результат = %d", sqrt(number);
                MessageBox(0, szBuf, L"Notification", MB_OK | MB_ICONINFORMATION);
                break;
            }
            MessageBox(0, L"Ошибка", L"Notification", MB_OK | MB_ICONINFORMATION);
            break; }
        case button2:
        {
            //int result = number * (-1);
            wsprintf(szBuf, "Результат = %d", -number);
            MessageBox(0, szBuf, L"Notification", MB_OK | MB_ICONINFORMATION);
            break; }
        } }
                     break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
        break;
    }
    return 0;
}
0
2628 / 1640 / 266
Регистрация: 19.02.2010
Сообщений: 4,351
04.12.2018, 14:24
Alikberov, в одном месте неправильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2018, 14:24
Помогаю со студенческими работами здесь

Создать приложение в Delphi, которое вычисляет среднее значение произведения чисел a, b и c
помогите,пожалуйста....

Разработать консольное приложение, которое , вычисляет значение функции, заданной в виде графика
Разработать консольное приложение, которое по введенному значению аргумента, вычисляет значение функции, заданной в виде графика. Значение...

Разработать консольное приложение, которое по введенному значению аргумента, вычисляет значение функции
Разработать консольное приложение, которое по введенному значению аргумента, вычисляет значение функции, заданной в виде графика. Значение...

Разработать приложение, которое по заданным катетам прямоугольного треугольника вычисляет периметр и площадь треугольник
Разработать приложение, которое по заданным катетам прямоугольного треугольника вычисляет периметр и площадь треугольник а) Создать...

Найти корень уравнения методом последовательных итераций.Второй корень вычисляет неверно
Задание:Написать программу для вычисления методом последовательных итераций уравнения x=Aexp(-x). Параметр А вводится пользователем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru