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

rysowanie wzorów w c++

Object Storage Arubacloud
0 głosów
16,323 wizyt
pytanie zadane 13 stycznia 2016 w Inne języki przez Madar Obywatel (1,560 p.)

Witam
Zaczalem pisac w C++ jednak ten jezyk nie jest dla mnie do konca jasny. Sadzilem ze petle sa latwie i przyjemne dopóki nie znalazlem przykladowych zadan ze strony: http://www.cs.put.poznan.pl/arybarczyk/7.pdf. Pierwsze zadanie łatwe, bo wypisac 19 gwiazdek to dla mnie nic trudnego, drugie po pewnym czasie tez ogarnalem, ale na trzecim nie mam pojecia jak sie za to chwycic: Jego tresc jest nastepujaca:

Napisz program drukujący na ekranie prostokąt z literek X. Wysokość i szerokość prostokąta wczytujemy z klawiatury: 

Staram się to ogarnac w glowie jak to dziala, jednak nie mysle jak komputer. Po jakims czasie znalazlem odpowiedz w internecie ale co mi z tego skoro nie mam pojecia co sie dzieje w kodzie.
 

  1. #include <iostream>  
  2. #include <cstdlib>  
  3.   
  4. using namespace std;  
  5.   
  6. int main(int argc, char *argv[])  
  7. {  
  8.   
  9.   int i,j;  
  10.   int szerokosc,wysokosc;  
  11.     
  12.   cout << "SZEROKOSC=";  
  13.   cin >> szerokosc;  
  14.     
  15.   cout << "WYSOKOSC=";  
  16.   cin >> wysokosc;  
  17.     
  18.   cout << endl;    
  19.   
  20.   for (i=0;i<szerokosc;i++)   
  21.      cout << "X";    
  22.   cout << endl;  
  23.     
  24.   for (j=0;j<wysokosc-2;j++)   
  25.     {  
  26.        cout << "X";    
  27.        for (i=0;i<szerokosc-2;i++)   
  28.           cout << " ";    
  29.          
  30.        cout << "X";           
  31.        cout << endl;      
  32.     }  
  33.   
  34.   for (i=0;i<szerokosc;i++)   
  35.      cout << "X";    
  36.   cout << endl;  
  37.     
  38.       
  39.        
  40.   cout << endl;         
  41.   system("PAUSE");    
  42.   return 0;  
  43. }  

Pierwsza petla rozumiem co robi, wypisuje szerokosc X, ale kolejne? Jakim cudem pozostaje pusta przestrzen w srodku petli? I po co to -2 przy petli j? 
 

komentarz 27 sierpnia 2018 przez Dżejkopp Nowicjusz (100 p.)
#include <iostream>
#include <windows.h>

using namespace std;

int wysokosc,szerokosc;

int main()
{
    cout<< "Podaj wysokosc: ";
    cin>>wysokosc;
    cout<< "Podaj dlugosc: ";
    cin>>szerokosc;

   for(int i=0; i<szerokosc;  i++)
   {
       if(wysokosc<=1) break;

       cout<< "X";
   }

cout<<endl;

   for(int b=0; b<wysokosc-2; b++)
   {
       cout<< "X";

       for(int c=0; c<szerokosc-2; c++)
       {
           cout<< " ";
       }cout<<"X"<<endl;
   }

for(int d=0; d<szerokosc; d++)
{
     if(wysokosc<1) break;
    cout<< "X";
}

 return 0;
}

2 odpowiedzi

0 głosów
odpowiedź 13 stycznia 2016 przez Konrad Nabożny Stary wyjadacz (13,460 p.)

-2 ponieważ dolna i górna linia szerokości już jest, więc jej nie liczymy.

 

for (i=0;i<szerokosc-2;i++)   
          cout << " ";   

A tutaj po prostu drukuje się spacja czyli puste miejsce tyle razy jaka jest szerokość - 2 ponieważ ściany boczne budowane są przez: 

 

 for (j=0;j<wysokosc-2;j++)   
    {  
       cout << "X";    

 

komentarz 13 stycznia 2016 przez Madar Obywatel (1,560 p.)
Nie jestem pewien czy rozumiem jak dzialaja petle zagniezdzone...Chyba dzis tego nie zrozumiem
komentarz 13 stycznia 2016 przez Konrad Nabożny Stary wyjadacz (13,460 p.)
Ależ to jest bardzo proste :)

W najbardziej zewnętrznej pętli znajduje się zagnieżdżona. Zagnieżdżona wykonuje się cała w jednej iteracji najbardziej zewnętrznej, i tak tyle razy ile w tej właśnie najbardziej zewnętrznej jest ustalone.
0 głosów
odpowiedź 13 stycznia 2016 przez Porcupine Nałogowiec (31,560 p.)
Aby to zrozumieć najlepiej weź kartkę papieru, przyjmij sobie na przykład: wysokosc = 5, szerokosc = 7 i rób krok po kroku to co robi kod patrząc na niego...

Pozdrawiam,

Podobne pytania

0 głosów
1 odpowiedź 174 wizyt
0 głosów
1 odpowiedź 2,723 wizyt
pytanie zadane 3 października 2018 w Java przez dzideos Obywatel (1,320 p.)
0 głosów
1 odpowiedź 5,650 wizyt

92,698 zapytań

141,614 odpowiedzi

320,144 komentarzy

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

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!

...