Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108

Вывести на экран произвольный пятиугольник

31.05.2015, 10:42. Показов 6011. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать программу, которая выводит на экран произвольный пятиугольник

За ранее спасибо большое!

Добавлено через 12 часов 53 минуты
Помогите пожалуйста!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2015, 10:42
Ответы с готовыми решениями:

Создать произвольный класс и вывести содержимое на экран.
Создать произвольный класс на основе базового и вывести на экран содержимое его полей. Базовый класс worker с данными: имя, должность,...

Задается произвольный текст, Вычислить среднюю длину слов текста и вывести ее на экран
Задается произвольный текст, содержащий не более 10 строк, в каждой строке не бо-лее 80 символов. Вычислить среднюю длину слов текста и...

Вывести на экран монитора пятиугольник
Вывести на экран монитора пятиугольник светло-зеленого (LightGreen) цвета таким образом, чтобы сначала отображалась одна сторона...

31
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108
14.06.2015, 12:38  [ТС]
Студворк — интернет-сервис помощи студентам
castaway, Ошибок не найдено. Как по другому можно сделать? Нужно срочно, помогите плиз
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
14.06.2015, 12:45
Цитата Сообщение от Олеся Довга Посмотреть сообщение
Ошибок не найдено.
Цитата Сообщение от castaway Посмотреть сообщение
Попробуй понавтыкать проверок на ошибки.
Проверка на ошибку, это например:
C++
1
2
HWND hwnd = GetConsoleWindow();
if ( hwnd == NULL ) ошибка
Как ты определил что ошибок не найдено?
0
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108
14.06.2015, 12:49  [ТС]
castaway, Можете написать полный вид программы как она должна выглядеть
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
14.06.2015, 12:53
Нет.
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
14.06.2015, 13:06
У меня в CodeBlocks, компилятор MinGW, ваш код работает, показывает пятиугольник, только при изменении размера окна, перерисовки нет и картинка исчезает, при прокрутке тоже. Там видать Dev-C++ , делает, что то типа этого, например после запуска окно свернуто, а смотрите, когда развернете его.
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
14.06.2015, 13:10
Кстати да. Как вариант, поставить задержку в начале программы: Sleep( 3000 ) и при запуске сразу открыть консольное окно (если оно не появилось) или просто подождать 3 секунды.
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
14.06.2015, 13:29
Можно попробовать, сделать задержку, типа Sleep( 10000), чтоб развернуть окно и увидеть результат рисования, а можно в цикле аналогичную паузу для перерисовки сделать, или по нажатию кнопки к.-л. перерисовывать по циклу. Грубо конечно. А лучше win32api приложение с окном сделать.

Добавлено через 17 минут
Что то типа
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
#include <windows.h>
#include <conio.h>
#include <stdio.h>
int main()
{
    HWND hwnd;
    char Title[1024];
    GetConsoleTitle(Title, 1024); // Узнаем имя окна
// или GetModuleFileName(NULL,Title, sizeof(Title));
 
 
// printf("fdfd\n");
 
    hwnd=FindWindow(NULL, Title); // Узнаем hwnd окна
    int x[5]= {0,100,200,150,50}; // x координаты вершин
    int y[5]= {25,0,25,50,50}; // y координаты вершин
    do
    {
        system("cls");
        printf("press for refrash");
        HDC hdc=GetDC(hwnd);  // Получаем контекст для рисования
        HPEN p1,p2=CreatePen(PS_SOLID,2,RGB(255,0,0)); // Создаем красное перо
        p1=(HPEN)SelectObject(hdc,p2);    // Заносим красное перо в контекст рисования
 
        MoveToEx(hdc,x[4],y[4],NULL); // ставим перо в последнюю точку
        for(int i=0; i<5; i++)
            LineTo(hdc,x[i],y[i]); // Проводим линии
        SelectObject(hdc,p1); // Возвращаем старое перо
        ReleaseDC(hwnd,hdc);  // Освобождаем контекст рисования
        DeleteObject(p2);     // Удаляем созданное перо
        if (getch()==32) break;/// по пробелу выйти
 
    }
    while(1);
 
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108
14.06.2015, 15:03  [ТС]
chedman, не получилось, выводит ошибку
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
14.06.2015, 19:35
Попробуй запустить не чере Dev-C++, а отдельно полученный exe.
0
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 108
15.06.2015, 10:09  [ТС]
chedman, Ошибка не пропала
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
15.06.2015, 11:14
Какая версия компилятора, может в параметрах линковки, что то лишнее, у меня линкуется с libgdi32.a , а компилятор MinGW 4.8.1 .

Добавлено через 4 минуты
Есть подозрение, что conio.h криво реализована в используемом вами компиляторе. Можно попробовать:
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
#include <windows.h>
//#include <conio.h>
#include <stdio.h>
int main()
{
    HWND hwnd;
    char Title[1024];
    GetConsoleTitle(Title, 1024); // Узнаем имя окна
// или GetModuleFileName(NULL,Title, sizeof(Title));
 
 
// printf("fdfd\n");
 
    hwnd=FindWindow(NULL, Title); // Узнаем hwnd окна
    int x[5]= {0,100,200,150,50}; // x координаты вершин
    int y[5]= {25,0,25,50,50}; // y координаты вершин
 
    do
    {
        system("cls");
        printf("press for refrash");
        HDC hdc=GetDC(hwnd);  // Получаем контекст для рисования
        HPEN p1,p2=CreatePen(PS_SOLID,2,RGB(255,0,0)); // Создаем красное перо
        p1=(HPEN)SelectObject(hdc,p2);    // Заносим красное перо в контекст рисования
 
        MoveToEx(hdc,x[4],y[4],NULL); // ставим перо в последнюю точку
        for(int i=0; i<5; i++)
            LineTo(hdc,x[i],y[i]); // Проводим линии
        SelectObject(hdc,p1); // Возвращаем старое перо
        ReleaseDC(hwnd,hdc);  // Освобождаем контекст рисования
        DeleteObject(p2);     // Удаляем созданное перо
        if (getc(stdin)==32) break;/// по пробелу выйти
 
    }
    while(1);
 
    getc(stdin);
    return 0;
}
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
16.06.2015, 07:02
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#define _WIN32_WINNT 0x0500 
 
int main()
{
    HDC hDC = GetDC( GetConsoleWindow( ) );
    HPEN Pen = CreatePen( PS_SOLID, 2, RGB(255, 255, 255));
    SelectObject( hDC, Pen );
    MoveToEx( hDC, 0, 85, NULL );  
       
     POINT poly[6] = {
        {10,30},
        {270,50},
        {390,250},
        {165,360},
        {45,335},
        {10,30}
     };
 
Polyline(hDC, poly , 6);
system("PAUSE"); 
     
}
Миниатюры
Вывести на экран произвольный пятиугольник   Вывести на экран произвольный пятиугольник  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.06.2015, 07:02

Вывести на экран монитора пятиугольник и закрасить его
Вывести на экран монитора пятиугольник и закрасить его светло-зелёным (LightGreen) цветом с заполнением редкими точками (WideDotFill), цвет...

Вывести на экран монитора правильный пятиугольник зеленого цвета
1. Очистить экран монитора и при необходимости установить желаемый цвет фона. 2. Вывести один или несколько графических элементов...

Вывести на экран монитора правильный пятиугольник зеленого цвета
Вывести на экран монитора правильный пятиугольник зеленого цвета, описав вокруг него светлосиний круг ,цвет фона экрана установить...

Вывести на экран монитора пятиугольник желтогоцвета и шестиугольник светло-красного цвета
Вывести на экран монитора пятиугольник желтого (Yellow) цвета и шестиугольник светло-красного (LightRed) цвета таким образом, чтобы они...

Вывести на экран монитора пятиугольник желтого (Yellow) цвета и шестиугольник светло-красного (LightRed)...
Помогите пожалуйста написать такую программу: Вывести на экран монитора пятиугольник желтого (Yellow) цвета и шестиугольник...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru