Administratie | Alimentatie | Arta cultura | Asistenta sociala | Astronomie |
Biologie | Chimie | Comunicare | Constructii | Cosmetica |
Desen | Diverse | Drept | Economie | Engleza |
Filozofie | Fizica | Franceza | Geografie | Germana |
Informatica | Istorie | Latina | Management | Marketing |
Matematica | Mecanica | Medicina | Pedagogie | Psihologie |
Romana | Stiinte politice | Transporturi | Turism |
PROGRAME CU DATE NUMERICE (UTILIZARE INSTRUCTIUNI SI FUNCTII DE I/E)
EXEMPLE DE PROGRAME
Exemple de afisare pe ecran si citire de la tastatura
E1.1 Afisarea unui text constant pe ecran.
#include <stdio.h>
void main ()
E1.2 Afisarea valorilor unor variabile intregi
#include <stdio.h>
void main ()
E1.3 Afisare text constant si valori variabile intregi
#include <stdio.h>
void main ()
E1.4 Citire si afisare numar intreg
#include <stdio.h>
void main ()
E1.5 Citire si afisare numer intreg lung
#include <stdio.h>
void main ()
E1.6 Citire si afisare numar real
#include <stdio.h>
void main ()
E1.7 Afisare rezultat functie de tip 'double'
#include <stdio.h>
#include <math.h>
void main ()
E1.8 Afisare rezultat functie, dupa conversie la intreg.
#include <stdio.h>
#include <math.h>
void main ()
E1.9 Afisare cu o precizie dorita
#include <stdio.h>
#include <math.h>
void main ()
E1.10 Afisarea unor numere pe coloane de dimensiuni egale
#include <stdio.h>
void main ()
E1.11 Afisare numere reale foarte mari sau foarte mici (cu exponent)
#include <stdio.h>
#include <math.h>
void main ()
Exemple cu expresii si instructiuni de atribuire
E1.12 Calcul arie triunghi cu laturi date
#include <stdio.h>
#include <math.h>
void main ()
E1.13 Calculul unghiuri dintr-un triunghi (in radiani)
#include <stdio.h>
#include <math.h>
void main ()
E1.14 Calcul lungime si panta segment dintre doua puncte date
#include <stdio.h>
#include <math.h>
#include <values.h>
void main ()
E1.15 Afisare cat si rest impartire intreaga numere cu semn.
#include <stdio.h>
void main ()
Exemple cu instructiuni 'if' si 'switch'
Directiva 'include <stdio.h>' si altele necesare nu mai apar in toate
exemplele, dar trebuie adaugate pentru compilarea corecta a programelor.
E1.16 Verifica daca un caracter dat este o litera ( fie mare, fie mica)
void main ()
char ch;
ch= getchar();
if ( ch >='a' && ch <='z' || ch >='A' && ch <='Z' )
printf ('este litera n');
else
printf (' nu este litera n');
}
E1.17 Determinare maxim dintre trei numere intregi
void main ()
E1.18 Determinare tip triunghi cu laturi date
void main ()
E1.19 Verifica existenta unui fisier inainte de creare fisier
// verifica existenta fisier inainte de crearea lui
#include <stdio.h>
void main ()
f=fopen(numef,'w'); // deschide fisier ptr creare
fputs (numef,f); // scrie in fisier chiar numele sau
fclose(f);
E1.20 Determinare numar de zile dintr-o luna
void main ()
printf ('luna %d are %d zile n',luna,zile);
}
Exemple cu instructiuni 'for', 'while', 'do'
E1.21 Citirea unui sir de numere, dupa citirea lungimii sirului.
#include <stdio.h>
#include <values.h>
// afisare valoare maxima dintr-un sir
void main ()
printf('%dn',amax);
}
E1.22 Citirea unui sir de numere terminat cu caracterul 'End of File'
recunoscut de sistem ( Ctrl-Z in DOS si Windows).
#include <stdio.h>
// suma valorilor dintr-un sir de numere
void main ()
E1.23 Citirea mai multor siruri de numere terminate fiecare cu un zero.
Sfarsitul datelor este marcat tot cu zero. Exemplu:
1 2 3 0 4 5 0 7 8 9 0 0
#include <stdio.h>
// sume valori din mai multe siruri terminate cu zero
void main () while (a);
if (m) // daca sir de lungime nenula
printf('%f n',sum);
} while (m);
}
Obs. Situatia de mai sus apare la verificarea unor programe cu mai multe
seturi de date (memorate probabil intr-un fisier), printr-o singura rulare
a fiecarui program.
E1.24 Afisarea unui numar intreg fara semn in binar folosind extragerea
selectiva de biti cu o masca ce contine un singur bit 1.
void main ()
printf('n');
}
E1.25 Determina cel mai mare divizor comun a doi intregi (ineficient).
void main ()
E1.26
Determina cel mai mare divizor comun a doi intregi (alg. lui
void main ()
printf ('cmmdc= %dn', b);
}
E1.27
Varianta cu 'do-while' pentru algoritmul lui
void main ()
do while (r);
printf('%d n',a);
}
E1.28 Ciclu in ciclu. Numararea numerelor prime mai mici ca un intreg dat n.
#include <stdio.h>
main ()
np=3; // vor fi cel putin 3 numere prime
for (m=5;m<=n;m=m+2)
printf ('%dn',np);
}
E1.29 Suma unei serii definite printr-o relatie de recurenta intre termeni.
// suma seriei
void main ()
printf ('%15.6f %15.6f n',y, exp(x));
}
// varianta cu instructiunea 'for'
void main ()
printf ('%15.6f %15.6f n',y, exp(x));
}
E1.30 Program care afiseaza un meniu de optiuni si trateaza fiecare optiune
#include <stdio.h>
#include <conio.h>
void main ()
fflush(stdin); getchar();
} while (1);
E1.31 Afisarea in hexazecimal a octetilor din mai multe numere de tip 'float'
void main ()
PROBLEME PROPUSE
P1.1 Program care citeste coordonatele (x,y) ale unui punct din plan si
afiseaza numarul cadranului in care se afla (1,2,3,4). Se vor verifica
succesiv semnele valorilor x si y. S-ar putea folosi instructiunea 'switch'?
P1.2 Program pentru calculul sumei a doua intervale de timp exprimate
in ore, minute si secunde, cu si fara instructiunea 'if'. (rezultatul este
exprimat tot in ore, minute, secunde). Exemplu :
h1:m1:s1 =
rezultat =
P1.3 Program pentru calculul timpului scurs intre doua momente de timp
exprimate in ore, minute si secunde (cu si fara 'if'). Exemplu :
h1:m1:s1 =
rezultat =
P1.4 Program pentru determinarea celui mai mare intreg pentru care se mai
poate calcula corect factorialul sau, succesiv pentru tipurile 'int',
'long', 'float' si 'double'.
Indicatie: Se compara k!/k cu (k-1)! si daca difera se afiseaza k.
P1.5 Program care aduna valoarea x de n ori, ca 'float' si ca 'double', si
afiseaza sumele sx si sy. sx este de tip 'float',iar sy de tip 'double'.
Se vor lua pe rfnd :
x=0.1 n=100
x=0.01 n=1000
x=0.001 n=10000
Se vor afisa sumele partiale la fiecare n/10 termeni adunati, cu pauza
dupa fiecare 10 linii afisate ( pauza realizata cu functia 'getchar').
P1.6 Program pentru calculul combinarilor de n luate cite m , pentru n=10
si m intre 1 si 10, prin doua metode :
(a) Folosind relatia de recurenta:
C(n,k) = C(n,k-1) * (n-k+1)/k ptr. k=1,m si C(n,0)=1
(b) Folosind relatia de calcul:
C(n,m) = n!/ (m!*(n-m)!)
P1.7 Program pentru afisarea echivalentului binar al unui numar natural
(intreg cu semn) dat. Exemple: 11=1011, 25 =1001, 23= 10111.
Algoritm: Se repeta impartirea la puteri descrescatoare ale lui 2, iar
caturile sunt cifrele binare. Restul impartirii devine noul deimpartit.
Varianta: se foloseste o masca binara cu un singur bit 1 (deplasat mereu
la dreapta), cu care se extrag biti succesivi din numar.
P1.8 Program pentru calculul si afisarea radacinii patrate a unor numere
folosind urmatoarea relatie de recurenta intre doua aproximatii succesive
r1 si r2 ale radacinii lui x : r2 = ( r1 + x/r1)/2 .
Aproximatia initiala r1 poate fi orice valoare ( se va lua r1=x/2).
Relatia de recurenta se aplica atata timp cat r1 este diferit de r2.
Se va afisa pentru verificare si rezultatul functiei sqrt(x), pentru
primele 20 de numere pare.
P1.9 Program pentru afisarea tuturor numerelor naturale de 2 cifre care
au cel putin 7 divizori nebanali (altii decit 1 si numarul respectiv).
P1.10 Program pentru afisarea numarului maxim de divizori ai unui numar
natural de n cifre ( n<=5 sau n<=10). Se va completa programul cu afisarea
celui mai mare (celui mai mic) numar cu numar maxim de divizori.
P1.11 Program pentru afisarea tuturor descompunerilor unui numar natural
dat prin sume de numere naturale consecutive. Exemplu:
15 = 1+2+3+4+5 = 4+5+6 = 7+ 8
P1.12 Program pentru afisarea numerelor perfecte mai mici ca o valoare data.
(Un numar perfect este un numar egal cu suma tuturor divizorilor sai).
P1.13 Program care calculeaza valoarea functiilor sin(x) si cos(x) ca suma a
seriei de puteri si afisare alaturi de rezultatul functiilor de biblioteca.
sin(x) = x - x^3/3! + x^5/5! - x^7/7! +
cos(x) = 1 - x^2/2! + x^4/4! - x^6/6! +
Se vor insuma toti termenii mai mari ca zero in valoare absoluta.
Observati ce se afiseaza pentru valori mari ale lui x si de ce este necesara
reducerea unghiului x la o valoare mai mica ca 2*PI.
P1.14 Program care determina numarul de zerouri cu care se termina
produsul a n numere naturale date (fara a efectua produsul si fara vectori).
Indicatie: Numarul de zerouri terminale este dat de numarul produselor 2*5
din produsul celor n numere, deci de minimul dintre numarul de cifre 2 si
numarul de cifre 5 care apar in produs. Se vor aduna puterile lui 2 si lui 5
din fiecare numar dat si se determina minimul dintre ele.
Exemplu: n=3, a=15, b=12, c=25
nr cifre 2 = 0 + 2 + 0 = 2
nr cifre 5 = 1 + 0 + 2 = 3
min (2,3)=2 deci produsul a*b*c are 2 zerouri la sfirsit (este 4500)
P1.15 Program pentru descompunerea unui numar natural dat in factori primi.
Se vor afisa factorii primi si puterile (exponentii) lor.
Exemplu: 60 = 2^2 * 3 ^1 * 5^1
SOLUTII LA PROBLEME PROPUSE
R1.1
// afisare pozitie punct fata de cele 4 cadrane
#include <stdio.h>
void main ()
R1.2
void main ()
m=m1+m2+m;
if (m >=60)
h=h1+h2+h;
// afisare rezultat
printf ('%02d:%02d:%02d n',h,m,s);
R1.3
void main ()
R1.4
// cel mai mare numar k pentru care se poate calcula k!
#include <stdio.h>
void main ()
else
kf1=kf2;
}
R1.5
// erori la calcule cu numere reale
#include <stdio.h>
void main ()
n=n*10; x=x/10;
getchar();
}
R1.6
// calcul combinari prin doua metode
#include <stdio.h>
void main ()
R1.7
// cifrele binare sunt caturi ale impartirii prin puteri ale lui 2
void main ()
}
// afisare intreg in binar, cu extragere de biti succesivi
void main ()
R1.8
// calcul radacina patrata prin aproximatii succesive
#include <stdio.h>
#include <math.h>
void main () while ( r1 != r2); // cat timp difera la primele 6 zecimale
printf ('%f %f %f n',x, r2, sqrt(x));
}
R1.9
// numere de 2 cifre cu peste 6 divizori
void main ()
R1.10
// nr maxim de divizori ptr un numar de n cifre
void main ()
}
printf ('%ld si %ld au %ld divizori n', nr1, nr2, max);
R1.11
// toate secventele de numere naturale consecutive
// a caror suma este egala cu n
main ()
/* afisare numere Ontre i si j */
if (s==n)
}
}
// R1.12
/* numere perfecte */
void main ()
if (m==s)
printf ('n %d', m);
}
R1.13
// suma seriei
void main ()
printf ('%15.6f %15.6f n',sx, sin(x));
printf ('%15.6f %15.6f n',cx, cos(x));
}
R1.14
// Determina numarul de zerouri cu care se termina produsul
// a n numere naturale date (fara efectuare produs)
#include <stdio.h>
void main ()
while ( a%5 ==0)
}
if ( n2<n5)
printf ('%dn',n2);
else
printf ('%dn',n5);
R1.15
/* descompunere in factori primi */
#include <stdio.h>
main ()
if (p > 0) // daca m s-a impartit exact prin k
printf ('%d^%d*',k,p); // k este un factor prim, p este puterea sa
}
printf ('bn');
Acest document nu se poate descarca
E posibil sa te intereseze alte documente despre:
|
Copyright © 2024 - Toate drepturile rezervate QReferat.com | Folositi documentele afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul document pe baza informatiilor de pe site. { Home } { Contact } { Termeni si conditii } |
Documente similare:
|
ComentariiCaracterizari
|
Cauta document |