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.

Podobne dokumenty