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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
#1

Вывести в консоль круг звездочками - C++

06.12.2010, 23:02. Просмотров 2926. Ответов 14
Метки нет (Все метки)

Как создать круг и вывести его в консоли (звёздочками)?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 23:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести в консоль круг звездочками (C++):

Написать программу, которая выводит в консоль текст звездочками(С++) - C++
Напишите плиз программу для C++ чтоб выводить текст звездочками(*)

Вывести фигуру звездочками - C++
Ребята, задали задачу не могу докумекать Нужно составить програмку, которая выдает на экран такую фигуру Нули не нужны, только...

Вывести звездочками заданное изображение - C++
Напишите программу, которая выводит на экран следующее изображение. ***** * * * * * * *****

Вывести на экран круг или квадрат (по выбору пользователя) - C++
Добрый день ! Помогите написать код,чтобы выводился на экрарн круг или квадрат(по выбору пользователя) по идеи нужно реализовать сами...

Вывести китайский на консоль - C++
Добрый день! Подскажите, пожалуйста, как можно вывести китайские или японские иероглифы на консоль? setlocale(LC_ALL,"ja_JP") не...

Вывести кириллицу в консоль - C++
Как вывести русский текст в консоль, setlocale(LC_ALL, "Russian"); почему-то не работает...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2010, 23:07 #2
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
int main(){
  std::cout << "         ***        \n";
  std::cout << "       *******      \n";
  std::cout << "      *********     \n";
  std::cout << "      *********     \n";
  std::cout << "       *******      \n";
  std::cout << "         ***        \n";
}
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
06.12.2010, 23:11  [ТС] #3
Цитата Сообщение от alex_x_x Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
int main(){
  std::cout << "         ***        \n";
  std::cout << "       *******      \n";
  std::cout << "      *********     \n";
  std::cout << "      *********     \n";
  std::cout << "       *******      \n";
  std::cout << "         ***        \n";
}
Я ввожу радиус круга, а в консоли выводиться круг (звёздочками по контуру).
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2010, 23:52 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
#include <cmath>
 
int main(){
  unsigned n;
  size_t R;
  size_t N;
  double di;
  std::cout << "Enter R: ";
  std::cin >> R;
  N = 2*R;
  di = 1.0/R;
  for( int i=int(R);i>=-int(R);--i ){
    n = static_cast<int>(cos(asin(di*abs(int(i))))*R);
    for( unsigned j=0;j<=R-n;++j ) std::cout << "*";
    for( unsigned j=0;j<=2*n;++j ) std::cout << " ";
    for( unsigned j=0;j<=R-n;++j ) std::cout << "*";
    std::cout << std::endl;
  }
}
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
06.12.2010, 23:58  [ТС] #5
Цитата Сообщение от alex_x_x Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
#include <cmath>
 
int main(){
  unsigned n;
  size_t R;
  size_t N;
  double di;
  std::cout << "Enter R: ";
  std::cin >> R;
  N = 2*R;
  di = 1.0/R;
  for( int i=int(R);i>=-int(R);--i ){
    n = static_cast<int>(cos(asin(di*abs(int(i))))*R);
    for( unsigned j=0;j<=R-n;++j ) std::cout << "*";
    for( unsigned j=0;j<=2*n;++j ) std::cout << " ";
    for( unsigned j=0;j<=R-n;++j ) std::cout << "*";
    std::cout << std::endl;
  }
}
конечно спасибо, но слишком много звёздочек. Надо чтобы они просто по контуру были
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2010, 23:59 #6
кароче, сразу задание надо было нормально ставить
может кто приделает, а то лень
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
07.12.2010, 00:02  [ТС] #7
Цитата Сообщение от alex_x_x Посмотреть сообщение
кароче, сразу задание надо было нормально ставить
может кто приделает, а то лень
В цитате было указано - ПО КОНТУРУ
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
07.12.2010, 00:08 #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
#include <cmath>
 
int main(){
  unsigned n;
  size_t R;
  size_t N;
  double di;
  std::cout << "Enter R: \n";
  std::cin >> R;
  N = 2*R;
  di = 1.0/R;
  for( int i=int(R);i>=-int(R);--i ){
    n = static_cast<int>(cos(asin(di*abs(int(i))))*R);
    for( unsigned j=0;j<=R-n;++j ) std::cout << " ";
    std::cout << "*";
    for( unsigned j=0;j<2*n;++j ) std::cout << " ";
    std::cout << "*\n";
  }
}
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
07.12.2010, 00:15  [ТС] #9
Цитата Сообщение от alex_x_x Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
#include <cmath>
 
int main(){
  unsigned n;
  size_t R;
  size_t N;
  double di;
  std::cout << "Enter R: \n";
  std::cin >> R;
  N = 2*R;
  di = 1.0/R;
  for( int i=int(R);i>=-int(R);--i ){
    n = static_cast<int>(cos(asin(di*abs(int(i))))*R);
    for( unsigned j=0;j<=R-n;++j ) std::cout << " ";
    std::cout << "*";
    for( unsigned j=0;j<2*n;++j ) std::cout << " ";
    std::cout << "*\n";
  }
}
Объясни, если не сложно, 15-ю строчку (подробнее если можно). Спасибо.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
07.12.2010, 00:19 #10
Цитата Сообщение от kowandser Посмотреть сообщение
n = static_cast<int>(cos(asin(di*abs(int(i))))*R);
волшебство, не меньше, ок
di * i - велечина по y, берем от него arcsin, чтобы узнать на каком углу относительно pi/2 точка окружности, берем от него cos, чтобы узнать значение точки по x
abs просто прикрутка, чтобы два раза цикл не писать
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
07.12.2010, 00:25  [ТС] #11
Цитата Сообщение от kowandser Посмотреть сообщение
static_cast<int>
Для чего ето?
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
07.12.2010, 00:29 #12
преобразование к инту
artprooo
Сообщений: n/a
28.02.2013, 18:17 #13
блин это не круг ты пробывал ввести R=50

Добавлено через 12 минут
блин и это круг как бутто ДЦПешник какойто рисовал
Croessmah
Модератор
Эксперт CЭксперт С++
13133 / 7396 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
01.03.2013, 09:52 #14
Цитата Сообщение от artprooo Посмотреть сообщение
блин это не круг ты пробывал ввести R=50
блин, это ширины консоли не хватает. Буфер расширить не пробовали?
Цитата Сообщение от artprooo Посмотреть сообщение
блин и это круг как бутто ДЦПешник какойто рисовал
Тоже самое будет, если деревянный дом из кирпичей собирать. пробовали так делать?
Это же символы в консоли, а не точки в Paint.
Нужен более точный круг - учитывайте при выводе соотношение метрики шрифта.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
01.03.2013, 14:57 #15
Цитата Сообщение от Croessmah Посмотреть сообщение
учитывайте при выводе соотношение метрики шрифта.
да, думаю это изза соотношения ширина/высота символа моноширинного шрифта
вообще лень смотреть, теме третий год
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2013, 14:57
Привет! Вот еще темы с ответами:

Вывести дерево в консоль - C++
Помогите плиз дерево консольно вывести: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; using namespace std; ...

Вывести картинку в консоль - C++
Здрасти. Как можно отобразить картинку в консоли? (.bmp .jpeg .tft)

Вывести числа из потоков в консоль - C++
Есть два отдельных потока, в которых генерируются разные числа. Как вывести эти числа в консоль в разных строках и что бы в консоль не...

ReadProcessMemory() Вывести кириллицу в консоль - C++
Здравствуйте, я получил значение &quot;0081D1BAD09ED00B&quot; из ячейки памяти с помощью функции ReadProcessMemory(); char name; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.03.2013, 14:57
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru