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

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

31.05.2015, 10:42. Показов 6205. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru