Limbajul c si C++ abc-doar



Yüklə 4,6 Mb.
səhifə36/55
tarix07.05.2018
ölçüsü4,6 Mb.
#50260
1   ...   32   33   34   35   36   37   38   39   ...   55

#include

int nr;

main()

{ clrscr();

printf("Introduceti 0 sau 1 \n\n");

nr=getch();

if(nr==48)

printf("Numarul introdus este ZERO !");

else

printf("Numarul introdus este NONZERO !");

printf("\n Apasati orice tasta !");

getch();

}


-262- [ conio.h-getche() si getpass() ]

FUNCTIA getche()

-citeste si returneaza un caracter introdus de la tastatura

SINTAXA GENERALA este: int getche(void);

Functia citeste un caracter unic introdus de la tastatura.Functia sal-

veaza atat valoarea ASCII cat valoarea in format %c a caracterului intro-

dus,astfel incat acesta va putea fi afisat in fereastra de tip text,fie

in mod video direct fie apeland o rutina BIOS.

Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia returneaza valoarea ASCII a caracterului introdus.

EXEMPLU: #include

#include

int nr;

main()

{ clrscr();

printf("Introduceti un caracter:\n");

nr=getche();

printf("\n\n");

printf("Caracterul introdus este: \n %c",nr);

printf("\nSi are valoarea ASCII: \n %d",nr);

printf("\n\n Apasati orice tasta !");

getch(); }

FUNCTIA getpass()

-citeste o parola (fara sa afiseze tastele apasate)

SINTAXA GENERALA este: char *getpass(const char *prompt);

Functia citeste un sir de caractere introdus de la tastatura,fara sa

afiseze caracterele introduse,si arhiveaza datele dupa ce adauga un

caracter NULL(terminatorul de sir).Sirul astfel introdus poate contine

maximum 8 caractere(fara cel NULL adaugat).Functia returneaza automat

un pointer spre sirul arhivat,care este suprascris la fiecare apelare a

functiei.

Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia returneaza un pointer spre un sir static,suprascris la fiecare

apel al functiei.

EXEMPLU: #include

char *parola;

main()

{

clrscr();

cprintf("Introduceti parola secreta(maxim 8 caractere):\r\n");

parola=getpass("PAROLA= ");

cprintf("\r\n\n PAROLA INTRODUSA ESTE: \r\n\n");

cprintf("%s",parola);

cprintf("\r\n Apasati orice tasta :");

getch();

}

Functia se poate aplica cu succes pentru a solicita o parola secreta,dar

si pentru a introduce orice fel de cod numeric sau grafic,fara afisarea

pe ecran (de exemplu pentru a deschide un fisier sau o fila secreta sau

cu caracter confidential etc...).


-263- [conio.h-gettext() si gettextinfo() ]

FUNCTIA gettext()

-copiaza in memorie,un text de pe ecran

SINTAXA GENERALA este:

int gettext(int left,int top,int right,int bottom,void *destin);

unde: left(stanga),top(sus),right(dreapta) si bottom(jos) sunt coordonate-

le ariei de ecran din care se citeste textul iar *destin este pointerul

spre aria de memorie de destinatie(in care se arhiveaza textul).Functia

este asemanatoare cu functia getimage(),dar arhiveaza doar caractere.

Coordonatele specificate sunt coordonate absolute ale ecranului si nu se

raporteaza la ferestrele de tip text(se raporteaza strict la ecran).

Coltul din stanga sus al ecranului este la pozitia (1,1),fata de care se

raporteaza toate celelalte coordonate.Fiecare pozitie de pe ecran,necesita

2 bytes de memorie,dintre care primul este utilizat pentru caracterul

preluat iar cel de al doilea pentru a salva atributele video.Astfel,spa-

tiul de memorie necesar pentru a salva un tetx este dublu fata de dimen-

siunea textului: bytes=(nr randuri)x(nr coloane)x2

Functia nu poate fi apelata pentru aplicatiile Win 32 si Win 32 GUI.

Functia returneaza 1 daca textul a fost arhivat cu succes,sau 0 daca nu

a putut salva textul specificat(de exemplu daca coordonatele indicate sunt

in afara ecranului).

EXEMPLU: #include

#include

char text[3200];

main()

{ clrscr();

cprintf("\r TITLUL TEXTULUI \r\n");

cprintf("Textul urmator va fi preluat de functia gettext(),\r\n");

cprintf("si va fi afisat cu functia puttext()...\r\n");

cprintf("in alt format grafic!(pe coloane) ");

sleep(3);

gettext(0,0,80,5,text);

clrscr();

puttext(20,2,40,25,text);

sleep(5);

}
FUNCTIA gettextinfo()

-arhiveaza informatii despre modul video de afisare a textelor

SINTAXA GENERALA este: void gettextinfo(struct text_info *r);

datele se arhiveaza intr-o structura de tip text_info definita in conio.h

astfel: struct text_info { unsigned char winleft;

unsigned char wintop;

unsigned char winright;

unsigned char winbottom;

unsigned char attribute;

unsigned char normattr;

unsigned char currmode;

unsigned char screenheight;

unsigned char screenwidth;

unsigned char curx;

unsigned char cury; }


-264- [ conio.h -gotoxy() ]

Pentru a accesa date arhivate,se utilizeaza pointerul *r spre structura

de tip text_info in care s-au salvat informatiile.Structura contine

coordonatele ferstrei de tip text(winleft,win right,wintop si winbottom),

atributele si modul video,inaltimea si largimea ecranului,precum si pozi-

tia cursorului in fereastra de tip text(curx,cury).

Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia nu returneaza nici un fel de valori.Toate datele sunt orientate

spre structura pointata de *r.

EXEMPLU: #include

#include

struct text_info date;

main()

{ clrscr();

cprintf("Modul text al ecranului: \r\n");

gettextinfo(&date);

cprintf("atribut= %2d\r\n",date.attribute);

cprintf("mod curent= %2d\r\n",date.currmode);

sleep(3);

window(20,5,60,15);

textcolor(1);

textbackground(15);

cprintf("Fereastra de tip text !");

gotoxy(1,3);

gettextinfo(&date);

cprintf("Coltul din stanga al ferestrei= %2d\r\n",date.winleft);

cprintf("Coltul dreapta al ferestrei= %2d\r\n",date.winright);

cprintf("Pozitia x a cursorului= %2d\r\n",date.curx);

cprintf("Pozitia y a cursorului= %2d\r\n",date.cury);

sleep(5);

}
FUNCTIA gotoxy()

-deplaseaza cursorul la pozitia indicata

SINTAXA GENERALA este: void gotoxy(int x,int y);

Functia deplaseaza cursorul intr-o fereastra de tip text,la pozitia indi-

cata prin coordonatele x si y.Coordonatele se considera prin raportare la

fereastra de tip text deschisa in acel moment.Daca se specifica coordonate

situate in afara ferestrei active,functia va fi ignorata(Exemplu: daca se

solicita gotoxy(40,30) intr-o fereastra la care coltul din dreapta jos

este la (35,25)).Deasemenea,coordonatele specificate trebuie sa fie mai

mari decat zero(nu se poate apela gotoxy(0,0) ).

EXEMPLU: #include

#include

int x;

main()

{ for (x=1;x<10;x++)

{ textcolor(x);

textbackground(x+2);

gotoxy(x*5,x*7/4);

cprintf("TEXT");

sleep(1); }}


-265- [ conio.h-highvideo() si insline() ]

FUNCTIA highvideo()

-scrie caracterele accentuat(cu intensitate crescuta)

SINTAXA GENERALA este: void highvideo(void);

Functia utilizeaza pentru scriere caractere cu intensitate crescuta(accen-

tuate),in culoarea curenta.Functia nu afecteaza caracterele gata afisate

pe ecran,ci doar pe cele afisate dupa apelarea functiei.

Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia nu returneaza valori.

EXEMPLU: #include

#include

int x;

main()

{ clrscr();

for(x=1;x<12;x++);

{ textcolor(x);

textbackground(x+3);

gotoxy(x,x);

lowvideo();

cprintf("Text lowvideo (neaccentuat) \r\n");

gotoxy(40+x,x);

highvideo();

cprintf("Text highvideo (accentuat) \r\n");

sleep(2);

}}
FUNCTIA insline()

-insera o linie goala intr-o fereastra de tip text

SINTAXA GENERALA este: void insline(void);

Functia insera un rand gol(o linie goala),la pozitia actuala a cursorului,

in culoarea de fond curenta a textului din fereastra de tip text.Toate

liniile care urmeaza vor fi deplasate in jos cu o linie pana cand se

ajunge la marginea de jos a ferestrei(caz in care randurile vor fi

derulate sub marginea inferioara(devin invizibile).

EXEMPLU: #include

#include

main()

{ clrscr();

window(5,5,55,9);

textbackground(4);

cprintf("Functia insline(),insera o linie goala \r\n");

cprintf("si deplaseaza liniile subjacente,\r\n");

cprintf("asa cum se poate observa...\r\n");

gotoxy(1,2);

insline();

sleep(2);

gotoxy(1,4);

insline();

sleep(2);

insline();

sleep(2); }

Se poate utiliza si pentru a sterge din ferestre fragmente de text,etc.


-266- [ conio.h-kbhit() si lowvideo() ]

FUNCTIA kbhit()

-verifica tastele accesibile(starea tastelor)

SINTAXA GENERALA este: int kbhit(void);

Functia verifica daca exista o tasta accesibile.Oricare dintre tastele

apasate,poate fi pusa in evidenta cu getch() sau getche().

Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia returneaza o valoare pozitiva daca exista taste accesibile,sau

returneaza 0 in caz contrar.

EXEMPLU: #include

#include

int tasta;

main()

{ clrscr();

while( !kbhit() )

{ cprintf("Apasati orice tasta! \r\n");

sleep(1);

};

clrscr();

tasta=getche();

cprintf(" Tasta apasata este: %c \r\n",tasta);

sleep(3);

}

Puteti utiliza functia pentru a verifica daca nu exista taste blocate,sau

apasate involuntar,etc...Atentie totusi,deoarece se pot genera destul de

usor bucle infinite (atunci cind toate tastele sunt accesibile)!

Functia este utila atunci cand se asteapta un semnal de la tastatura.
FUNCTIA lowvideo()

-scrie caracterele cu intensitate redusa (neaccentuat)

SINTAXA GENERALA este: void lowvideo(void);

Functia scrie caracterele de text cu intensitate redusa (neaccentuat),in

culoarea de text curenta si cu culoarea de fond existenta.Functia nu

afecteaza caracterele deja afisate pe ecran ci doar pe acelea care vor

fi afisate dupa apelarea functiei.

Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia nu returneaza valori.

EXEMPLU: #include

#include

int x;

main()

{ clrscr();

for (x=1;x<16;x++)

{ textcolor(x);

lowvideo();

cprintf("Text scris cu lowvideo() \r\n");

sleep(1);

highvideo();

cprintf("Text scris cu highvideo() \r\n");

sleep(1);

clrscr();

}}


-267- [ conio.h-movetext() si normvideo() ]

FUNCTIA movetext()

-copiaza un text de pe ecran,in alta zona a ecranului

SINTAXA GENERALA este:

int movetext(int left,int top,int right,int bott,int destleft,int desttop);

Functia copiaza textul de pe ecran,cuprins in dreptunghiul delimitat prin

left,top,right si bottom,intr-o alta zona a ecranului de aceleasi dimen-

siuni cu cotul din stanga sus situat la coordonatele destleft si desttop.

Toate argumentele functiei sunt valori intregi si reprezinta coordonate

absolute ale ecranului (nu se raporteaza la ferstrele de tip text).

Functia este aplicabila doar in modul text al ecranului.Nu poate fi ape-

lata pentru aplicatiile Win32 si Win32 GUI.

Functia returneaza valori nonzero daca a fost executata cu succes,sau zero

in caz ca functia nu a fost executata(de exemplu daca se specifica coordo-

nate situate in afara ecranului.

EXEMPLU: #include

#include

int x;

main()

{ clrscr();

cprintf("Text 1: ...nr 1 \r\n");

cprintf("Text 2: ...nr 2 \r\n");

cprintf("Text 3: ...nr 3 \r\n");

for (x=1;x<5;x++)

{ movetext(0,0,16,3,x*10,x*5);

sleep(2);

}}
FUNCTIA normvideo()

-selecteaza caractere cu intensitate normala(neaccentuate)

SINTAXA GENERALA este: void normvideo(void);

Functia selecteaza caracterele normale de afisare a textului prin rese-

tarea atributelor textului la valorile initiale implicite(atat fondul cat

si culoarea si medelul de scriere).Functia nu afecteaza caracterele gata

afisate pe ecran ci doar pe acelea ce vor fi afisate dupa apelarea func-

tiei.Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia nu returneaza valori.

EXEMPLU: #include

#include

main()

{ clrscr();

cprintf("Text normal \r\n");

highvideo();

textbackground(4);

textcolor(14);

cprintf("Text accentuat \r\n");

normvideo();

cprintf("Text normal (neaccentuat) \r\n");

sleep(3);

}

Se utilizeaza mai ales pentru a reseta atributele implicite ale textului,

dupa ce s-au utilizat modificari de culoare sau intensitate.


-268- [ conio.h-putch() si puttext() ]

FUNCTIA putch()

-afiseaza un caracter pe ecran

SINTAXA GENERALA este: int putch(int c);

Functia afiseaza pe ecran,in fereastra de tip text curenta,caracterul spe-

cificat prin valoarea sa ASCII(numarul int c).Caracterul va fi afisat in

mod video direct,la pozitia cursorului,fara sa determine automat si un

retur de car.Afisarea se va face fie direct,fie prin apelarea unei functii

BIOS,in functie de valoarea la care este setata variabila _directvideo.

Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia returneaza caracterul afisat in caz ca a fost executata cu succes

sau EOF in caz de eroare.

EXEMPLU: #include

#include

int x;

main()

{ clrscr();

for (x=60;x<95;x++)

{ gotoxy(x-50,20);

putch(x);

sleep(1);

};

}
FUNCTIA puttext()

-copiaza pe ecran,un text salvat in tamponul de memorie

SINTAXA GENERALA este:

int puttext(int left,int top,int right,int bottom,void *source);

Functia copiaza pe ecran,in aria delimitata prin left,right,top si bottom,

datele din aria de memorie spre care pointeaza pointerul *source.

Toate coordonatele sunt coordonate absolute ale ecranului(nu depind de

ferstrele de tip text.Pozitia de referinta este coltul stanga sus (1,1).

Pentru fiecare caracter,se citesc cate doi bytes;primul contine caracterul

iar cel de al doilea contine atributele video.Astfel,spatiul din aria de

memorie este dublu fata de cel necesar pentru afisarea textului:

bytes=(nr coloane)x(nr randuri)x2

Functia nu poate fi apelata pentru aplicatiile Win32 si Win32 GUI.

Functia returneaza o valoare nonzero daca a fost executata cu succes,sau

zero daca nu a putut fi executata(coordonate in afara ecranului,etc...).

EXEMPLU: #include

#include

int x;

char text[20];

main()

{ cprintf("BUNA ZIUA");

gettext(1,1,9,1,text);

clrscr();

for (x=1;x<25;x++)

{ puttext(x,x,x+9,x,text);

sleep(1); }

}

Se utilizeaza mai ales impreuna cu gettext(),ca si getimage()-putimage().


-269- [ textattr() si textbackground() ]

FUNCTIA textattr()

-seteaza atributele textului

SINTAXA GENERALA este: void textattr(int newattr);

Functia utilizeaza un numar de tip int,pentru a reseta atributele de afi-

sare a textelor.Functia nu poate fi apleata pentru aplicatiile Win32/GUI.

Functia permite setarea culorilor,atat pentru fond cat si pentru front.

Acelasi rezultat se poate obtine si prin combinarea functiilor textcolor()

si textbackground().Functia nu afecteaza caracterele deja afisate pe ecran

ci doar pe cele ce vor fi afisate dupa apelarea functiei.Numarul de tip

int utilizat pentru setare se formeaza dupa cum urmeaza:

7 6 5 4 3 2 1 0

FORMULA GENERALA: B b b b f f f f

Primele patru cifre seteaza culoarea de fond si pot fi formate din numere

cuprinse intre 0 si 7,respectiv numarul 128 pentru activarea bitului B,

care determina efectul blink(stralucirea imaginii)(in formula cifrele

pentru background sunt simbolizate cu b.

Urmatoarele patru cifre,detrmina culoarea de front(de scriere) si pot fi

formate din numere cuprinse intre 0 si 15(vezi codul culorilor).

Se pot utiliza si codurile simbolice ale culorilor.(Exemplu,daca se va

utiliza textattr(YELLOW) se va scrie cu galben pe fond negru).

Functia nu returneaza valori (nu este depanabila automat).

EXEMPLU: #include

#include

main()

{ clrscr();

cprintf("Exemple: \r\n");

textattr(12871212);

cprintf("text 1 \r\n");

textattr(193);

cprintf("text 2 \r\n");

textattr(128594);

cprintf("text 3 \r\n");

textattr(BROWN);

cprintf("text 4 \r\n");

sleep(5);

}

Prin combinarea a cate doua culori,se pot obtine un numar destul de mare

de nuante,atat pentru front,cat si pentru fond.Nu ezitati sa incercati,

dar respectand conventiile: maxim 8 cifre,0-7 pt. fond,0-15 pt.front in

care se include facultativ 128,daca doriti efect de stralucire.
FUNCTIA textbackground()

-selecteaza culoarea pentru font

SINTAXA GENERALA este: void textbackground(int newcolor);

Functia seteaza culoarea de fond a textului afisat.Nu poate fi apelata

pentru aplicatiile Win32 si Win32 GUI.Se pot selecta doar primele opt

culori din paleta grafica,cele cu numarul de cod cuprins intre 0 si 7.

Se poate utiliza atat numarul de cod,cat si codul simbolic al culorii,

dupa cum urmeaza: 0 (BLACK), 1 (BLUE), 2 (GREEN), 3 (CYAN), 4 (RED),

5 (MAGENTA), 6 (BROWN), 7 (LIGHTGRAY).Functia se aplica doar pentru textul

afisat dupa apelarea functiei.Functia nu returneaza valori.


-270- [ conio.h - textcolor() ]

EXEMPLU: #include

#include

int x;

main()

Yüklə 4,6 Mb.

Dostları ilə paylaş:
1   ...   32   33   34   35   36   37   38   39   ...   55




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin