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

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

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

Вывести на экран геометрическую фигуру, заполняя ее символом * - C++

19.02.2013, 21:09. Просмотров 2826. Ответов 20
Метки нет (Все метки)

помогите, пожалуйста. Разработать программу, которая выводит на экран геометрическую фигуру, заполняя ее символом *. размер фигуры определяется при вводе. Заполненный равнобедренный треугольник. Основание - n, высота n/2+1 (n-нечетное) Треугольник этот повернут высотой вниз, то есть перевернут. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2013, 21:09     Вывести на экран геометрическую фигуру, заполняя ее символом *
Посмотрите здесь:

Нарисовать любую геометрическую фигуру C++
Программа которая выводит на экран геометрическую фигуру C++
Программа которая выводит на экран геометрическую фигуру(исправить) C++
Программа которая выводит на экран геометрическую фигуру(исправить) C++
пользователь вводит 3 произвольных числа. нужно проверить, составляют ли они геометрическую прогрессию и, если составляют, вывести на экран первые 10 C++
В консоли нарисовать геометрическую фигуру C++
C++ Вывести на экран фигуру из символов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
19.02.2013, 21:47     Вывести на экран геометрическую фигуру, заполняя ее символом * #2
а что не получается?
два цикла один по высоте , второй по длине, высота расчитывается, первая длина известна, каждая последующая -2 от предыдущей, и если не секрет кто вам такое задание дал? и с какой целью
Elovic
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 14
19.02.2013, 23:45     Вывести на экран геометрическую фигуру, заполняя ее символом * #3
Держи. Сделал для 5 размеров.
C++ (Qt)
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
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main() {
    int result;
    string a="    *     ",b="   ***   ", c="  *****  ",d=" ******* ",e="*********";
    cin >> result;
    cout << "\n";
    switch(result)
    {
    case 1:
        cout << a;
        break;
    case 2: 
        cout << b << "\n" << a;
        break;
    case 3:
        cout << c << "\n" << b << "\n" << a;
        break;
    case 4:
        cout << d << "\n" << c << "\n" << b << "\n" << a;
        break;  
    case 5:
        cout << e << "\n" << d << "\n" << c << "\n" << b << "\n" << a;
        break;    
    }
    getch();
    return 0;
}
Вольдемар777
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 7
19.02.2013, 23:58  [ТС]     Вывести на экран геометрическую фигуру, заполняя ее символом * #4
сложность в том, чтобы перевернуть этот треугольник, у меня получается высотой вверх, а надо вниз. препод задал
Elovic
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 14
20.02.2013, 00:04     Вывести на экран геометрическую фигуру, заполняя ее символом * #5
C++ (Qt)
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
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main() {
    int result;
    string a="    *     ",b="   ***   ", c="  *****  ",d=" ******* ",e="*********";
    cin >> result;
    cout << "\n";
    switch(result)
    {
    case 1:
        cout << a;
        break;
    case 2: 
        cout << b << "\n" << a;
        break;
    case 3:
        cout << c << "\n" << b << "\n" << a;
        break;
    case 4:
        cout << d << "\n" << c << "\n" << b << "\n" << a;
        break;  
    case 5:
        cout << e << "\n" << d << "\n" << c << "\n" << b << "\n" << a;
        break;    
    }
    getch();
    return 0;
}
Вольдемар777
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 7
20.02.2013, 00:06  [ТС]     Вывести на экран геометрическую фигуру, заполняя ее символом * #6
Спасибо, но после копирования и вставки кода в программу при компиляции выдает ошибку и не запускается

Добавлено через 9 минут
и там немного по-другому надо. там надо ввести основание треугольника с клавиатуры, оно должно быть нечетным и любым, и он должен построиться по той формуле. У меня заработало, но при цифре более 5 не работает
Вольдемар777
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 7
20.02.2013, 00:07  [ТС]     Вывести на экран геометрическую фигуру, заполняя ее символом * #7
и там немного по-другому надо. там надо ввести основание треугольника с клавиатуры, оно должно быть нечетным и любым, и он должен построиться по той формуле. У меня заработало, но при цифре более 5 не работает
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
20.02.2013, 10:36     Вывести на экран геометрическую фигуру, заполняя ее символом * #8
и что препод добится этим хочет,как ты заметил то Elovic, предложил тебе статическую модель,я же тебе уже описал алгоритмдействия через 2 цикла и еще 1 счетчик предыдушего состояния

Добавлено через 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
#include <iostream>
 
using namespace std;
 
int main(){
    system("chcp 1251");
    int size = 0;
    int h;
    while(size%2 -1){
        cout << "Введите длину основания " << endl;
        cin >> size;
    }
 
    h = size/2 + 1;
 
    for(int i = 0; i < h; i++){
        int flag = i*2 ;
        int k;
        for(k = 0 ; k < flag/2 ; k++)
                cout << " ";
        for(int j = k ; j < size;j++)
            if(j < size - flag/2)
                cout << "*";
            else
                cout << " ";
 
        cout<<endl;
    }
    cout<<endl;
    system("pause");
    return 0;
}
готовый код но я настаиваю чтоб вы сами написали, алгоритм есть
Elovic
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 14
20.02.2013, 12:06     Вывести на экран геометрическую фигуру, заполняя ее символом * #9
Nixy, да, отличный код
Вольдемар777
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 7
20.02.2013, 19:42  [ТС]     Вывести на экран геометрическую фигуру, заполняя ее символом * #10
спасибо, но при запуске ошибку опять выдает((
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
20.02.2013, 19:54     Вывести на экран геометрическую фигуру, заполняя ее символом * #11
какого рода ошибка?
winst2008
2 / 2 / 0
Регистрация: 25.05.2012
Сообщений: 18
20.02.2013, 20:02     Вывести на экран геометрическую фигуру, заполняя ее символом * #12
Компиль не в дебаг, а в релиз
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
20.02.2013, 20:04     Вывести на экран геометрическую фигуру, заполняя ее символом * #13
какая разница, исполняймый фаил все равно , должен работать
winst2008
2 / 2 / 0
Регистрация: 25.05.2012
Сообщений: 18
20.02.2013, 20:18     Вывести на экран геометрическую фигуру, заполняя ее символом * #14
ну я вот попробовал там и там в дебаг не прошло, ошибка линковщика
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
20.02.2013, 20:27     Вывести на экран геометрическую фигуру, заполняя ее символом * #15
на какой фаил, или у вас что <iostream> нет? или пространства имен std? просто все остальные переменные на месте
Вольдемар777
0 / 0 / 0
Регистрация: 19.02.2013
Сообщений: 7
22.02.2013, 00:17  [ТС]     Вывести на экран геометрическую фигуру, заполняя ее символом * #16
Спасибо, все заработало!
aned
2 / 1 / 0
Регистрация: 27.07.2013
Сообщений: 22
27.07.2013, 16:49     Вывести на экран геометрическую фигуру, заполняя ее символом * #17
так можно получить нормальную пирамиду:

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 <conio.h>
#include <string>
using namespace std;
 
int main() {
    int result;
    string a[5]={"    *     ","   ***   ", "  *****  "," ******* ","*********"};
 
    cout<<"";
    cin >> result;
    cout << "\n";
    
    for (int i = 0; i <result; i++)
    {
        cout<<a[i];
        cout<<endl;
    }
    _getch();
    return 0;
}
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 12:20     Вывести на экран геометрическую фигуру, заполняя ее символом * #18
Цитата Сообщение от aned Посмотреть сообщение
так можно получить нормальную пирамиду:

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 <conio.h>
#include <string>
using namespace std;
 
int main() {
    int result;
    string a[5]={"    *     ","   ***   ", "  *****  "," ******* ","*********"};
 
    cout<<"";
    cin >> result;
    cout << "\n";
    
    for (int i = 0; i <result; i++)
    {
        cout<<a[i];
        cout<<endl;
    }
    _getch();
    return 0;
}
Ерунда (извиняюсь), я когда ввёл здесь число больше 5 то началось...
Скрин
Сорри, я просто не умею картинки сюда заливать
Да и если ввести число меньше (или равно) 5 то будет половина пирамиды только
aned
2 / 1 / 0
Регистрация: 27.07.2013
Сообщений: 22
28.07.2013, 12:56     Вывести на экран геометрическую фигуру, заполняя ее символом * #19
тогда так:


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
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
 
using namespace std;
 
int main(){
    setlocale(0,"");
 
    int size = 0;
    int h;
 
    cout << "Введите длину основания " << endl;
    cin >> size;
 
    h = size/2 + 1;
 
    for(int i = 0; i < h; i++)
    {
 
        int j=0;
        int k;
 
        for(k = 0; k <= size ; k++)
            if (  k >=(h + i))
                cout << ' ';
 
        for(int j = 0; j <= size;j++)
            if( j>(h - i) && j <(h + i))
                cout << 'x';
 
        cout<<endl;
    }
    char r;
 
    cout<<"Продолжить (y/n) ? ";
    cin>>r;
 
    if (r=='y')
    {
        return main();
 
    } 
    else if(r=='n')
    {
        exit(0);
    }
    else
    {
        cout<<"Ошибка!";
 
    }
 
    cout<<endl;
    system("pause");
    return 0;
}
Добавлено через 24 минуты
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
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
 
using namespace std;
 
int main(){
    setlocale(0,"");
 
    int size = 0;
    int h;
 
    cout << "Введите длину основания " << endl;
    cin >> size;
 
    h = size/2 ;
 
    for(int i = 0; i <= (h+1); i++)
    {
 
        int j=0;
        int k;
 
        for(k = 0; k <= size ; k++)
            if (  k >=(h + i))
                cout << ' ';
 
        for(int j = 0; j <= size;j++)
            if( j>(h - i) && j <(h + i))
                cout << 'x';
 
        cout<<endl;
    }
    char r;
 
    cout<<"Продолжить (y/n) ? ";
    cin>>r;
 
    if (r=='y')
    {
        return main();
 
    } 
    else if(r=='n')
    {
        exit(0);
    }
    else
    {
        cout<<"Ошибка!";
 
    }
 
    cout<<endl;
    system("pause");
    return 0;
}

Есть правда некоторая ошибка при четных значениях основания,но в основном-верно.А улучшать лень.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2013, 13:17     Вывести на экран геометрическую фигуру, заполняя ее символом *
Еще ссылки по теме:

С помощью цикла for вычислить и вывести на экран геометрическую прогрессию 1, 2, 4, 8, 16, 32 C++
Вывести на экран фигуру из * C++
C++ Вывести на экран геометричесую фигуру, которая состоит из символов "*"
По заданным целочисленным координатам на плоскости определить какую геометрическую фигуру они образуют C++
C++ Как дополнить код Windows программы, чтобы она отобразила в окне геометрическую фигуру?

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

Или воспользуйтесь поиском по форуму:
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 13:17     Вывести на экран геометрическую фигуру, заполняя ее символом * #20
aned, Вот это правильно, молодец, лови +
Yandex
Объявления
28.07.2013, 13:17     Вывести на экран геометрическую фигуру, заполняя ее символом *
Ответ Создать тему
Опции темы

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