Форум программистов, компьютерный форум CyberForum.ru

Задача с выводом в командную строку - C++

Восстановить пароль Регистрация
 
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
05.02.2013, 16:38     Задача с выводом в командную строку #1
Попросили помочь с решением задачек по С++. По одной из них возникло недопонимание. Условие задачи:

"Написать функцию, которая выводит на середину экрана созвездие Большой Медведицы (необходимо использовать 7 символов *)."

Задача для командной строки. Недопонимание на счёт вывода на середину экрана... Т.е. как бы не изменял размеры командной строки, медвидеца всегда должна быть в середине командной строки? Так можно сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alli_Lupin
178 / 164 / 14
Регистрация: 29.01.2013
Сообщений: 1,271
05.02.2013, 17:04     Задача с выводом в командную строку #2
можно, но сильно сомневаюсь, что вам надо сделать именно это, ибо задачка нетривиальная и тянет как минимум на курсовую
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
05.02.2013, 17:24     Задача с выводом в командную строку #3
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
задачка нетривиальная и тянет как минимум на курсовую
На "курсовую" 9-го класса максимум. Только в C++ стандартных функций для таких целей нет. Вот, например, для Windows.
Alli_Lupin
178 / 164 / 14
Регистрация: 29.01.2013
Сообщений: 1,271
05.02.2013, 17:30     Задача с выводом в командную строку #4
Somebody, видимо, мы поразному видим решение этой задачи. я планировал через WinAPI, а вы?
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
05.02.2013, 17:40     Задача с выводом в командную строку #5
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
я планировал через WinAPI, а вы?
Я тоже.
Alli_Lupin
05.02.2013, 17:44
  #6

Не по теме:

Somebody, вы действительно считаете, что снятие параметров с консольного окна и перестроение картинки в консоли - задача школьного уровня? (не новичка в программировании, а именно школьника)

Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1670
Регистрация: 12.02.2012
Сообщений: 17,129
05.02.2013, 17:53     Задача с выводом в командную строку #7
Зачем winApi? Рассмотрим экран, как массив символов 80*25. Чистим экран, в нужные позиции выводим звездочки. Все.
Alli_Lupin
178 / 164 / 14
Регистрация: 29.01.2013
Сообщений: 1,271
05.02.2013, 17:55     Задача с выводом в командную строку #8
Цитата Сообщение от Catstail Посмотреть сообщение
Зачем winApi? Рассмотрим экран, как массив символов 80*25. Чистим экран, в нужные позиции выводим звездочки. Все.
именно это, мне кажется, и требуется
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
05.02.2013, 18:00     Задача с выводом в командную строку #9

Не по теме:

Цитата Сообщение от Alli_Lupin Посмотреть сообщение
Somebody, вы действительно считаете, что снятие параметров с консольного окна и перестроение картинки в консоли - задача школьного уровня? (не новичка в программировании, а именно школьника)
Может быть и нет... Просто у нас в школе с информатикой и программированием всё было хорошо, так что у меня понятия "новичок в программировании" и "школьник" воспринимаются как нечто общее.



Добавлено через 44 секунды
Цитата Сообщение от Catstail Посмотреть сообщение
Рассмотрим экран, как массив символов 80*25.
Так по условию размер окна вроде может изменяться.
Alli_Lupin
178 / 164 / 14
Регистрация: 29.01.2013
Сообщений: 1,271
05.02.2013, 18:02     Задача с выводом в командную строку #10
Fooly, требуется описание ситуации: это ДЗ, лабораторная, курсовая? Школа, Колледж, ВУЗ?
Catstail
Модератор
 Аватар для Catstail
21493 / 10246 / 1670
Регистрация: 12.02.2012
Сообщений: 17,129
05.02.2013, 18:58     Задача с выводом в командную строку #11
Цитата Сообщение от Somebody Посмотреть сообщение
Так по условию размер окна вроде может изменяться.
- но меньше он вряд ли будет...
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
05.02.2013, 20:57     Задача с выводом в командную строку #12
Цитата Сообщение от Catstail Посмотреть сообщение
- но меньше он вряд ли будет...
Так вывести надо в центре, а центр может в разных местах, в зависимости от размера.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
06.02.2013, 10:14     Задача с выводом в командную строку #13
Цитата Сообщение от Somebody Посмотреть сообщение
Так вывести надо в центре, а центр может в разных местах, в зависимости от размера.
Ну так есть же GetConsoleScreenBufferInfo (в windows)
пересчитываем координаты и всё.

Добавлено через 2 минуты
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
ибо задачка нетривиальная и тянет как минимум на курсовую
каким образом? Из-за двух, трех формул, две из которых bufx/2 и bufy/2 ?
Fooly
 Аватар для Fooly
21 / 17 / 1
Регистрация: 26.03.2012
Сообщений: 147
06.02.2013, 10:47  [ТС]     Задача с выводом в командную строку #14
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
Fooly, требуется описание ситуации: это ДЗ, лабораторная, курсовая? Школа, Колледж, ВУЗ?
Задачка из ВУЗа.

На счёт изменения экрана - возможно я ошибаюсь. Условие я вначале написал, и вероятно, что я просто сам напридумывал и усложнил задачу. Вообще в задачках условия непонятные, т.е у меня возникает много вопросов, спросить и учточнить не получилось.
Просто осуществить вывод в середину экрана труда большого не составило, думаю так хватит =) Если же не понравится задача преподу и окажется, что надо подкорректировать под изменения размеров командной строки, тогда уже разбираться буду. Спасибо всем =)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2013, 11:16     Задача с выводом в командную строку
Еще ссылки по теме:

C++ Запуск Gnu через командную строку
Считать из файла и вывести в командную строку C++
C++ Как используя командную строку ввести символьную строку?

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
06.02.2013, 11:16     Задача с выводом в командную строку #15
Криворукий код:
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
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <cstdlib>
#include <ctime>
int main(){
    srand(time(NULL));
    RECT rw;
    GetWindowRect(GetConsoleWindow(),&rw);
    MoveWindow(GetConsoleWindow(),0,0,rw.right-rw.left,rw.bottom-rw.top,true);
    HANDLE hConsoleOut=GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO csbf;    
    COORD newcoord;
    SMALL_RECT sr;
    CONSOLE_CURSOR_INFO cci;
    cci.bVisible=false;
    cci.dwSize=1;
    newcoord=GetLargestConsoleWindowSize(hConsoleOut);
    SetConsoleScreenBufferSize(hConsoleOut,newcoord);
    int minx=80;
    int maxx=newcoord.X;
    int miny=25;
    int maxy=newcoord.Y;
    DWORD count;
    SetConsoleCursorInfo(hConsoleOut,&cci);
    int i=0;
    while(i<10){
        GetConsoleScreenBufferInfo(hConsoleOut,&csbf);
        csbf.dwCursorPosition.X=(csbf.srWindow.Right-csbf.srWindow.Left)/2;
        csbf.dwCursorPosition.Y=(csbf.srWindow.Bottom-csbf.srWindow.Top)/2;
        SetConsoleCursorPosition(hConsoleOut,csbf.dwCursorPosition);
        WriteConsole(hConsoleOut,"*",(DWORD)1,&count,NULL);
        Sleep(1000);
        newcoord.X=rand()%(maxx-minx)+minx;
        newcoord.Y=rand()%(maxy-miny)+miny;     
        sr.Top=sr.Left=0;
        sr.Bottom=newcoord.Y;
        sr.Right=newcoord.X;
        SetConsoleWindowInfo(hConsoleOut,true,&sr);
        SetConsoleCursorPosition(hConsoleOut,csbf.dwCursorPosition);
        WriteConsole(hConsoleOut," ",(DWORD)1,&count,NULL);
        ++i;
    }
    return 0;
}
Yandex
Объявления
06.02.2013, 11:16     Задача с выводом в командную строку
Ответ Создать тему
Опции темы

Текущее время: 02:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru