[C++]Kody ASCI po 5 w rzędzie - niejasny kod.

Krzychu25
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 31 paź 2011, o 17:16
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 5 razy

[C++]Kody ASCI po 5 w rzędzie - niejasny kod.

Post autor: Krzychu25 »

Mam napisać program, który wyświetla wszystkie kody ASCI z zakresu od 32 do 126, po 5 takich kodów na rząd. Męczyłem się godzinę aż postanowiłem poszukać w google, po długim czasie znalazłem tylko takie coś:

Kod: Zaznacz cały

#include <stdio.h>
#include <cstdlib>

using namespace std;
int main() 
{ 
     int i=32; 
     int j=126; 
     int ile_znakow_w_linii=5; 
     int wyswietlono; 

     for(wyswietlono = 0; i <= j; wyswietlono++, i++) 
     { 
         if(wyswietlono == ile_znakow_w_linii) 
         { 
             printf("
"); 
             wyswietlono = 0; 
         } 

         printf ("%3d:%c ",i,i) ;
     } 
system ("pause");
     return 0; 
}
działa to idealnie, jednakże nie rozumiem jak. Tzn. rozumiem rzeczy podstawowe, jednak nie wiem jaka jest zasada działania programu, co robi zmienna ile_znakow_w_linii oraz wyswietlono i skąd program wie, że akurat ma być tyle liczb w rzędzie ile podano.

PS używam Dev-C++
octahedron
Użytkownik
Użytkownik
Posty: 3568
Rejestracja: 7 mar 2011, o 22:16
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 910 razy

[C++]Kody ASCI po 5 w rzędzie - niejasny kod.

Post autor: octahedron »

ile_znakow_w_linii określa, ile znaków w linii ma być wyświetlanych (tutaj \(\displaystyle{ 5}\)), w zmiennej wyswietlono zapamiętywana jest ilość liczb wyświetlonych w rzędzie, gdy dochodzi do \(\displaystyle{ 5}\), zmienna jest zerowana, wstawiana jest nowa linia znakiem
i wyświetla dalej.
Krzychu25
Użytkownik
Użytkownik
Posty: 8
Rejestracja: 31 paź 2011, o 17:16
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 5 razy

[C++]Kody ASCI po 5 w rzędzie - niejasny kod.

Post autor: Krzychu25 »

Dziękuję, już wszystko zrozumiałem.
Awatar użytkownika
hixohe
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 6 wrz 2011, o 10:17
Płeć: Mężczyzna
Lokalizacja: GeeksTown

[C++]Kody ASCI po 5 w rzędzie - niejasny kod.

Post autor: hixohe »

Dodam jeszcze, że na dobrą sprawę nie ma potrzeby używać tej dodatkowej zmiennej "wyswietlono". Łatwiej jest dzielić z resztą zmienną "i" i na podstawie reszty przechodzić do następnego wiersza lub nie. Oszczędzi to odrobinę pamięci i mocy obliczeniowej potrzebnej do przypisywania i iteracji.

Zdecyduj się na konkretny język programowania stdio.h to biblioteka C i jest to dokładnie to samo co cstdlib. Dodatkowo jak już piszesz w c++ lepiej jest używać biblioteki iostream - łatwiejsza, bardziej elastyczna. Nie używamy system ("pause"), takie prosto wyglądające system ("pause") to tak naprawdę:

zatrzymanie Twojego programu
odwołanie do systemu operacyjnego
odpalenie powłoki systemu
wyszukanie polecenia "PAUSE"
wydzielenie pamięci potrzebnej do uruchomienia polecenia "PAUSE"
wykonanie polecenia
zwolnienie pamięci
"wyjście z systemu"
wznowienie programu

Używaj cin.get();
ODPOWIEDZ