Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
1

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

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

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

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

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

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

C использованием циклов for вывести фигуру звездочками с цифрами
Доброго времени суток! Уважаемые знатоки, помогите пожалуйста решить задачку: при вложенных циклов...

Даны круг и полоса. Нужно выяснить, лежит ли круг в этой полосе
Даны круг и полоса. Нужно выяснить, лежит ли круг в этой полосе. Input Со стандартного устройства...

14
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 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";
}
2
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";
}
Я ввожу радиус круга, а в консоли выводиться круг (звёздочками по контуру).
0
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2010, 23:52 4
Лучший ответ Сообщение было отмечено Croessmah как решение

Решение

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;
  }
}
1
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;
  }
}
конечно спасибо, но слишком много звёздочек. Надо чтобы они просто по контуру были
0
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
06.12.2010, 23:59 6
кароче, сразу задание надо было нормально ставить
может кто приделает, а то лень
1
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
07.12.2010, 00:02  [ТС] 7
Цитата Сообщение от alex_x_x Посмотреть сообщение
кароче, сразу задание надо было нормально ставить
может кто приделает, а то лень
В цитате было указано - ПО КОНТУРУ
0
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
07.12.2010, 00:08 8
Лучший ответ Сообщение было отмечено Croessmah как решение

Решение

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";
  }
}
2
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-ю строчку (подробнее если можно). Спасибо.
0
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 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 просто прикрутка, чтобы два раза цикл не писать
1
kowandser
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 50
07.12.2010, 00:25  [ТС] 11
Цитата Сообщение от kowandser Посмотреть сообщение
static_cast<int>
Для чего ето?
0
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
07.12.2010, 00:29 12
преобразование к инту
1
artprooo
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 2
28.02.2013, 18:17 13
блин это не круг ты пробывал ввести R=50

Добавлено через 12 минут
блин и это круг как бутто ДЦПешник какойто рисовал
0
Croessmah
++Ͻ
15233 / 8623 / 1640
Регистрация: 27.09.2012
Сообщений: 21,227
Записей в блоге: 2
Завершенные тесты: 1
01.03.2013, 09:52 14
Цитата Сообщение от artprooo Посмотреть сообщение
блин это не круг ты пробывал ввести R=50
блин, это ширины консоли не хватает. Буфер расширить не пробовали?
Цитата Сообщение от artprooo Посмотреть сообщение
блин и это круг как бутто ДЦПешник какойто рисовал
Тоже самое будет, если деревянный дом из кирпичей собирать. пробовали так делать?
Это же символы в консоли, а не точки в Paint.
Нужен более точный круг - учитывайте при выводе соотношение метрики шрифта.
0
alex_x_x
бжни
2456 / 1663 / 134
Регистрация: 14.05.2009
Сообщений: 7,162
01.03.2013, 14:57 15
Цитата Сообщение от Croessmah Посмотреть сообщение
учитывайте при выводе соотношение метрики шрифта.
да, думаю это изза соотношения ширина/высота символа моноширинного шрифта
вообще лень смотреть, теме третий год
0
01.03.2013, 14:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2013, 14:57

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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