Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Bucle Do - While

c


Bucle Do - While

Buclele while si for impartasesc atributul de testare a conditiei
de terminare la inceputul buclei mai degraba decit la sfirsitul
ei, asa cum am discutat in Capitolul 1. Al treilea tip de bucle
in C - bucla do-while - testeaza conditia la sfirsit, dupa ce a
executat intreg corpul buclei; corpul este executat cel putin o
data. Sintaxa ei este

do
instructiune
while (expresie);

"Instructiune" este executata si apoi "expresie" este
evaluata. Daca este adevarata, "instructiune" se executa din nou,
s.a.m.d. Daca "expresie" devine falsa, bucla se termina.

Asa cum este de asteptat, bucla "do-while" este folosita mai
putin decit while si for, probabil 5% din totalul de folosire a
buclelor. Cu toate acestea, ea este din timp in timp valoroasa, ca
in exemplul urmator, unde functia itoa converteste un numar intr-
un sir de caractere (inversa lui atoi). Lucrarea este putin mai
complicata decit se pare la prima vedere, deoarece metodele usoare
de generare de cifre le genereaza intr-o ordine gresita. Am ales
calea de a genera sirul invers apoi de a-l inversa.

itoa (n, s) /* converteste pe n in caractere in s */
char s[];
int n;

while ((n /= 10) > 0); /* sterge-o */
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
}

Bucla do-while este necesara, sau cel putin convenabila deoarece
cel putin un caracter trebuie pus in matricea s, indiferent de
valoarea lui n. Am folosit de asemenea acoladele in jurul
singurei instructiuni ce compune corpul buclei do-while, chiar
daca nu sint necesare pentru ca cititorul grabit sa nu
considere gresit partea cu while ca fiind inceputul unei bucle
while.

Exercitiul 3.3. In reprezentarea numerelor ca si complemente
fata de 2 versiunea noastra pentru itoa nu functioneaza
pentru numarul negativ cel mai mic, adica pentru valoarea lui n
egala cu -(2 la puterea dimensiune cuvint-1). Explicati de ce.
Modificati functia pentru a functiona corect si pentru aceasta
valoare, indiferent de calculatorul pe care se executa.

Exercitiul 3.4. Scrieti o functie analoaga itob(n, s) care
converteste intregii fara semn n intr-o reprezentare binara
pe caracter in s. Scrieti itoh, care converteste un intreg intr-
un numar haxazecimal.

Exercitiul 3.5. Scrieti o versiune a lui itoa care accepta trei
argumente in loc de doua. Al treilea argument este un cimp de
lungime minima; numarul convertit trebuie completat cu blancuri
la stinga, daca e necesar, pentru a se inscrie in cimpul dat.




Document Info


Accesari: 1096
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )