Program 4 Program, który wczytuje znaki z klawiatury aŜ do
Transkrypt
Program 4 Program, który wczytuje znaki z klawiatury aŜ do
Program 4 Program, który wczytuje znaki z klawiatury aŜ do momentu naciśnięcia klawisza 'k', a następnie wypisujący ilość podanych znaków (bez końcowego 'k') oraz informację, ile z tych znaków było duŜymi literami, a ile cyframi. #include <cctype> #include<iostream> using namespace std; int main() { unsigned char znak; int d=0,c=0,s=0; do { cin>>znak; if(isupper(znak)) d++; else if(isdigit(znak)) c++; s++; }while(znak!='k'); cout<<"Znaki: "<<--s<<endl; cout<<"Duze litery: "<<d<<endl; cout<<"Cyfry: "<<c<<endl; system("PAUSE"); } Omówienie programu Deklaracje zmiennej typu unsigned char (pojedynczy znak - typ jest taki m.in. dlatego poniewaŜ w programie wykorzystujemy funkcje wymagające argumentów będących takiego typu, ale o tym dalej…): unsigned char znak; Deklaracje trzech zmiennych typu całkowitego o nazwach d, c, s i nadanie im wartości 0: int d=0,c=0,s=0; Pętla pozwalająca nam wprowadzać znaki z klawiatury (wprowadzony znak zapisujemy w zmiennej znak). Przerwanie pętli następuje wówczas gdy wprowadzony znak to ‘k’: do { cin>>znak; }while(znak!='k'); W pętli tej umieszczone są instrukcje pozwalające obliczyć ile z wprowadzonych znaków było duŜymi literami, a ile cyframi. Wykorzystane są przy tym dwie funkcje z biblioteki cctype W związku z tym pierwszą linijka zawiera #include <cctype> Wykorzystane funkcje to: isupper(znak) – sprawdza czy znak jest duŜą literą. isdigit(znak) – sprawdza czy znak jest cyfrą. Zawartość pętli do…while wygląda to następująco: cin>>znak; if(isupper(znak)) d++; else if(isdigit(znak)) c++; s++; A zatem…na początku wprowadzamy znak z klawiatury: cin>>znak; Następnie sprawdzamy czy (if) znak jest duŜą literą. JeŜeli tak wartość zmiennej d (początkowo równa 0) jest zwiększana o 1: if(isupper(znak)) d++; Wartość d jest zwiększana o 1 tylko wtedy gdy znak wprowadzony z klawiatury jest duŜą literą. JeŜeli powyŜszy warunek nie jest spełniony sprawdzamy czy (else if) znak jest cyfrą. JeŜeli tak wartość zmiennej c (początkowo równa 0) jest zwiększana o 1: else if(isdigit(znak)) c++; Wartość c jest zwiększana o 1 tylko wtedy gdy znak wprowadzony z klawiatury jest cyfrą. W ostatniej linijce w pętli zwiększamy o 1 wartość zmiennej s (początkowo równej 0). s++; Wartość ta jest zwiększana po kaŜdym wprowadzeniu znaku z klawiatury. Po wyjściu z pętli wartość c to liczba wprowadzonych cyfr, wartość d to liczba wprowadzonych duŜych liter. Wartość s to liczba wprowadzonych znaków, a poniewaŜ nie chcemy liczyć litery ‘k’ przed wypisaniem na ekran musimy zmniejszyć wartość s o 1 czyli -–s.