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

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

Войти
Регистрация
Восстановить пароль
 
 
MURADDDD
1 / 1 / 0
Регистрация: 20.11.2013
Сообщений: 40
#1

Изобразите на экране пирамиду из символов 'X - C++

30.11.2013, 18:00. Просмотров 2589. Ответов 24
Метки нет (Все метки)

При помощи цикла for изобразите на экране пирамиду из символов 'X'. Верхняя часть пирамиды должна выглядеть следующим образом:
х
ххх
ххххх
ххххххх
ххххххххх
Вся пирамида должна быть высотой не 5 линий, как изображено здесь, а 20 линий. Одним из способов ее построения может служить использование двух вложенных циклов, из которых внутренний будет заниматься печатанием символов 'X' и пробелов, а другой осуществлять переход на одну строку вниз.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 18:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изобразите на экране пирамиду из символов 'X (C++):

Считывание уже выведенных символов на экране консоли - C++
Привет всем тем, кто любит пушистых зверушек, да и всем остальным тоже. Ну да ладно, Допустим на экран выведена некоторая...

Изобразите скатывание шарика - C++
Изобразите скатывание шарика по кривой, заданной уравнением y = (x-1)2 + ex на интервале . Как только шарик достигает конца кривой, он...

Изобразите на экране закрашенную пятиконечную звезду - Pascal
1. Изобразите на экране закрашенную пятиконечную звезду в центре экрана и заставьте её увеличиваться до размеров экрана, а затем по нажатию...

Изобразить на экране пирамиду - Turbo Pascal
Всем привет, задали задачу. Сделать надо через uses crt; Условие задачи: Изобразите на экране пирамиду сбоку, состоящую из...

Циклический алгоритм. Изобразите на экране тараканьи бега - Turbo Pascal
Изобразите на экране тараканьи бега(или авторалли, или конные соревнования, или большие гонки или что-нибудь, подобное). Соревнующихся...

Изобразите на экране движение бильярдного шара после столкновения со стенкой - PascalABC.NET
Изобразите на экране движение шара по бильярду без луз.Используйте правило:угол отражения равен углу падения.Начальное направление движения...

24
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
30.11.2013, 18:47 #2
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
 
int main()
{
  for (int i = 1; i <= 20; ++i)
  {
    std::cout << std::string(i, 'X') << std::endl;
  }
  return 0;
}
1
MURADDDD
1 / 1 / 0
Регистрация: 20.11.2013
Сообщений: 40
30.11.2013, 19:09  [ТС] #3
Спасибо, можете разъяснить очень подробно строку 8? Почти ничего не понял
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
30.11.2013, 19:15 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
int main()
{
  for (int i = 1; i <= 20; ++i)
  {
    std::string str(i, 'X'); // создаем переменную-строку длинной i все символы которой - X
    std::cout << str << std::endl; // печатаем строку str на экран и затем переходим на новую строку (<< std::endl)
  }
  return 0;
}
1
MURADDDD
1 / 1 / 0
Регистрация: 20.11.2013
Сообщений: 40
30.11.2013, 19:32  [ТС] #5
понянто

Добавлено через 4 минуты
нигде не могу найти информацию о стд:: стринг? ссылку не подскажете?
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
30.11.2013, 19:44 #6
http://yandex.ru/yandsearch?text=std%3A%3Astring&lr=213
0
mpol
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 23
07.07.2014, 16:55 #7
Всем привет. Сижу ломаю себе голову над этим примером. Наткнулся на него в книге Р. Лафоре "Объектно ориентированное программирование". Так вот, если делать его так как написано в задании, то у меня возникает вопрос, как его сделать?
В задании написано: "при помощи цикла FOR изобразите пирамиду ......... Одним из способов ее построения может служить использование ДВУХ вложенных циклов, из которых внутренний будет заниматься печатанием символов 'Х' и пробелов, а другой осуществлять переход на одну строку вниз."

Как с одним циклом реализовать понятно, а вот как с двумя???

Подскажите пожалуйста. Это не срочно и не на экзамен, так, для себя. Просто интересно.

Это как я сделал:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
    char ch('X');
    int j=60,l=0;
    for (int i=0;i<20;i++){
            cout<<setw(j/2)<<setfill(' ')<<' '<<setw(l)<<setfill(ch);
        j-=2,l+=2;
        cout<<"\n";
    };
    return 0;
}
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
07.07.2014, 17:12 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от mpol Посмотреть сообщение
а вот как с двумя?
С двумя легче:
C++
1
2
3
4
5
6
7
8
#include <iostream>
int main(){
    for(int i = 1; i <= 20; ++i) {
        for(int j = 0; j < i; ++j)
            cout << 'X';
        cout << '\n';
    }
}
0
kikycode
0 / 0 / 1
Регистрация: 08.07.2014
Сообщений: 5
08.07.2014, 03:47 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<conio.h>
using namespace std;
int main(void)
{
   setlocale(LC_ALL, "rus");
   cout<<"Введите символ:"<<endl;
   char a[20];
   cin>>a;
   cout<<"Введите кол-во строк:"<<endl;
   int b;
   cin>>b;
   cout<<endl;
   for(int i=1; i<=b; i++)
   {
       for(int j=1; j<=i; j++)
       {
           cout<<a;
       }
   cout<<endl;
   }
   getch();
}
Вот моя реализация
0
mpol
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 23
08.07.2014, 10:19 #10
Это все замечательно, но в задании указано, что нужны еще и пробелы во вложенном цикле вместе с Х, которые будут формировать пирамиду, и в нем не указано как она будет располагаться (как она будет выравниваться), по правому краю или по левому. А внешний цикл должен выводить символ перевода строки.
Просто указано как она должна выглядеть, приблизительно так:
х
ххх
ххххх
ххххххх
ххххххххх

Так вот, как указать внешний цикл с переводом строки понятно, а вот что делать с внутренним? Что бы он выводил определенное количество пробелов, затем печатал "Х", затем переходил во внешний цикл, переводил все на новую строку, затем передавал управление внутреннему циклу, который в свою очередь печатал, отсчитывая нужное количество пробелов и символов "Х" и т.д.
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
08.07.2014, 10:31 #11
Цитата Сообщение от mpol Посмотреть сообщение
Так вот, как указать внешний цикл с переводом строки понятно, а вот что делать с внутренним? Что бы он выводил определенное количество пробелов, затем печатал "Х",
А кто мешает сначала напечатать сколько надо пробелов одним циклом, а затем сколько надо иксов вторым? Я как-то не могу понять, в чём вообще проблема и что вызывает вопросы?
0
mpol
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 23
08.07.2014, 15:29 #12
Цитата Сообщение от Nick Alte Посмотреть сообщение
А кто мешает сначала напечатать сколько надо пробелов одним циклом, а затем сколько надо иксов вторым? Я как-то не могу понять, в чём вообще проблема и что вызывает вопросы?
Да как бы никто не мешает.

Вопрос только в том, что бы сделать именно так как требуется в задании. А если делать по другому, то вариантов есть много.
Просто хочу разобраться как сделать именно по заданию. Вот и все.
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
08.07.2014, 19:10 #13
Цитата Сообщение от mpol Посмотреть сообщение
именно так как требуется в задании
Это тоже просто: вставить во внутренний цикл условие, которое выбирает, печатать пробел или икс в зависимости от текущей позиции. Однако ж выполнять задание, настолько рьяно, с точностью до буквы, придерживаясь довольно-таки туманных сопровождающих рекомендаций, странно.
0
mpol
1 / 1 / 0
Регистрация: 23.10.2013
Сообщений: 23
08.07.2014, 23:33 #14
Ну почему же странно.
Можно смухлевать и сделать немного по другому. Сделать так что бы пирамида получилась, так как у меня, более простой вариант, а вот сделать именно так как в задании, как по мне более сложно. Во всяком случае для меня. Потому и хочу разобраться. Ведь решить более простым способом не означает что этот способ лучше. Да и задание давалось бы по другому и в нем не указывалось бы, что его нужно решить именно так. Указывалось бы просто, что нужно вывести на экран пирамиду из символов, неважно как вы это решите. А тут конкретное указание, решите так, подумайте.
Как то так. Но это мое мнение, у вас оно может быть другим.
0
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
09.07.2014, 00:03 #15
Я не понял пирамида нужна или треугольник с прямым углом?
Вот пирамида, если тема актуальна:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main()
{
    int n;
    std::cout << "Type n: "; std::cin >> n;
    for(int i = 0 ; i < n; i++)
    {
        for(int j = n; j >= 0; j--)
        {
            if(j <= i) std::cout << 'X';
            std::cout << ' ';
        }
        std::cout << std::endl;
    }
    
    return 0;
}
1
09.07.2014, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2014, 00:03
Привет! Вот еще темы с ответами:

Изобразите на экране прямую, вращающуюся в плоскости экрана вокруг одной из своих точек. - Turbo Pascal
вообщем вот такое задание:Изобразите на экране прямую, вращающуюся в плоскости экрана вокруг одной из своих точек. Цвет прямой должен...

Вывести пирамиду символов - Pascal ABC
Вывести пирамиду символов,как показано на рисунке.Глубину пирамиды -число строк,опеределяемых последним символом в последней...

Построить пирамиду из символов - Java SE
Привет всем, надо построить пирамиду из символов &quot;^&quot;. Написал метод, где не могу додумать зависимость ширины пирамиды, от её высоты и...

Нарисовать пирамиду из решеток похожую на пирамиду - C (СИ)
Задача: нужно нарисовать пирамиду из решеток похожую на пирамиду , на которую взбирается Марио в конце каждого уровня в игре. Типа такой ...


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

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

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