• 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.

VPS Starter Arubacloud
–1 głos
4,068 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ź 693 wizyt
pytanie zadane 12 grudnia 2021 w C i C++ przez olcia Nowicjusz (200 p.)
0 głosów
1 odpowiedź 587 wizyt
0 głosów
1 odpowiedź 745 wizyt

93,005 zapytań

141,971 odpowiedzi

321,251 komentarzy

62,343 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...