• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program drukujący literę "A" na ekranie.

Object Storage Arubacloud
–1 głos
3,930 wizyt
pytanie zadane 15 września 2018 w C i C++ przez TheOlllie Nowicjusz (150 p.)

Witam serdecznie.

Postanowiłem zacząć uczyć się C++ z książki Pana Grębosza "Opus Magnum". Brnę poprzez temat o pętlach i gdy już myślałem że to w jakimś stopniu zrozumiałem zacząłem szukać prostych zadań po internecie. Pierwsze zadanie ,aby narysować prostokąt na ekranie nawet sprawnie poszło ,lecz gdy przyszło wydrukować na ekranie litere A zaczęły się schody ,siedzę z tym zadaniem już 3ci dzień...

Treść zadania:

Napisz program drukujący na ekranie literę A złożoną z literek A. Wielkość litery A wczytujemy z klawiatury.

Poniżej wstawiam kod ,który wypociłem. Jakby ktoś mógł pokierować moim myśleniem w dobrą stronę ,byłbym bardzo wdzięczny.

 

#include <iostream>

using namespace std;

int main()
{
    cout << "\t\tRysujemy literke A!!!" << endl;

    int wysokosc ;

    cout << "Podaj wysokosc literki: " ;
    cin >> wysokosc ;
    cout << endl <<endl ;

    for (int a = 0 ; a < wysokosc ; a++)    // wierzcholek
        cout << " " ;
        cout << "A" <<endl ;


    for (int b = 1 ; b < wysokosc ;b++)
           {
            for (int c = wysokosc ; c > b ; c--)
            {
            cout << " " ;
            }

            cout << "A" ;
                for (int d = 0 ; d < b ;d++)
                {
                  cout << " " ;
                }

                cout << "A" << endl ;
           }



    return 0;}

 

Dziękuję za każdą pomoc w zrozumieniu tego zadania :)

1 odpowiedź

+1 głos
odpowiedź 15 września 2018 przez niezalogowany
wybrane 15 września 2018 przez TheOlllie
 
Najlepsza
for (int nr_linii = 1; nr_linii < wysokosc; nr_linii++) 
{
	for (int c = wysokosc; c > nr_linii; c--)
	{
		cout << " ";
	}
	
	cout << "A";
			
	if (nr_linii != wysokosc / 2) /* AAAAAAAAAAAAAA */
	{
        // ...
	}
	else /* A             A */
	{
        // ...
	}

	cout << "A";

	cout << "\n";
}

Zostaje tylko wypełnić przestrzeń od 'A' do 'A' znakami 'A', lub spacjami. Ilość znaków zależy od nr_linii - spróbuj samemu dojść jak wygląda ta zależność.

komentarz 15 września 2018 przez TheOlllie Nowicjusz (150 p.)
#include <iostream>

using namespace std;

int main()
{
    cout << "\t\tRysujemy literke A!!!" << endl;

    int wysokosc ;

    cout << "Podaj wysokosc literki: " ;
    cin >> wysokosc ;
    cout << endl <<endl ;

    for (int a = 0 ; a < wysokosc ; a++)    // wierzcholek
        cout << " " ;
        cout << "A" <<endl ;


    for (int b = 1 ; b < wysokosc ;b++)
{


            for (int c = wysokosc ; c > b ; c--)
            {
            cout << " " ;
            }

            cout << "A" ;

                if (b != wysokosc /2)
                    {
                    for (int d = 0; d != b*2; d++)
                        cout << " " ;
                    }
                else
                    {
                        for (int e =1 ; e <wysokosc ; e++)
                      cout << "A";
                    }





                cout << "A" << endl ;
}



    return 0;}

Wyszlo mi takie cos. Nie rozumiem tylko czemu w drugiej linii sa odrazu dwie spacje ,a przez to wszystko sie partaczy...

komentarz 15 września 2018 przez niezalogowany

1 * 2 = 2, więc będą dwie. Możesz zmienić warunek i odjąć 1:

d != b*2 - 1
komentarz 15 września 2018 przez TheOlllie Nowicjusz (150 p.)
Dziękuje za pomoc Hipcio :)

Problem rozwiązany.

Podobne pytania

0 głosów
1 odpowiedź 499 wizyt
pytanie zadane 12 grudnia 2021 w C i C++ przez olcia Nowicjusz (200 p.)
0 głosów
1 odpowiedź 545 wizyt
0 głosów
1 odpowiedź 671 wizyt

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...