CATEGORII DOCUMENTE |
Pentru un pseudocod de forma:
<instructiune 1>
cat timp (<conditie>) executa <instructiune 1>
instructiunile C++ sunt:
<instructiune 1>; while (<conditie>) <instructiune 1>;
Dar aceste instructiuni se pot inlocui cu o singura instructiune do-while astfel:
do <instructiune 1> while (<conditie>);
Aceasta nu reprezinta decat structura iterativa cu test final, 'repeta instructiune cat timp conditie'
1.s=0
2.repeta
2.1. citeste x
2.2. s=s+x
cat timp (x!=0)
#include<iostream.h>
void main()
while (x!=0);
cout<<s;
Sa se alcatuiasca un program in care sa fie implementate o functie pentru ridicarea lui 2 la o putere intreaga si una pentru calculul radicalului de ordinul doi pe baza sirului lui Newton.
Functia care va calcula puterea intreaga a lui 2 se bazeaza pe efectul de deplasare a bitilor din reprezentarea binara a unui numar. Astfel, o deplasare la stanga a lui a de b ori (a<<b) presupune o inmultire a lui a cu 2 de b ori: a<<b este echivalenta cu a 2b. La fel, o deplasare la dreapta la nivel de bit, a lui a cu b pozitii (a>>b) presupune o impartire a lui a cu 2 de b ori (a 2-b
Constructia functiei ce calculeaza radacina patrata a unui numar x are la baza sirul lui Newton, dat prin relatia de recurenta an+1 = 0.5, unde primul element a1 = 1, iar n>2. Functia calculeaza termenii succesivi ai sirului pana cand diferenta, in valoare absoluta, dintre doi termeni succesivi este mai mica decat eroarea acceptata pentru calcul.
/*Program 8.
Calculul ridicarii lui 2 la o putere intreaga si
calculul radacinii patrate fara utilizarea functiei sqrt*/
#include<iostream.h>
#include<conio.h>
#include<math.h>
int pow2(int x)
float rad2(float x)
while(fabs(q-p)>err);
return q;
void main()
while(Exit!='e');
Sa se calculeze suma S = pana cand |T/S| < e
Observatie: T[k] = -T[k-1]x/k, iar S[k] = S[k-1] + T[k]
1. Citeste x, eps,
2. T = S = k = 1,
3. Repeta
3.1. T = -Tx/k,
3.2. S = S + T,
3.3. k = k + 1
cat timp |T/S| e
4. Scrie S
//Calculul unei sume
#include<conio.h>
#include<math.h>
#include<stdio.h>
void main()
while(fabs(T/S)>=eps);
getch();
Programele urmatoare se bazeaza pe urmatoarele instructiuni:
impartire intreaga (modulo) a unui numar intreg la 10 prin care se obtine cifra unitatilor numarului. Ex: 1234%10
impartire propriu-zisa a unui numar intreg la 10 prin care se obtine tot un intreg. Ex: 1234/10 123 si nu 123.4
Secventele urmatoare descriu strict metoda prezentata si nu intreg programul !
s=0;nl=n;
do
while(nl);
cout<<'nSuma cifrelor nr. '<<n<<' = '<<s;
nl=0;
do
while(n);
do
while(nl);
cout<<'nNoul numar: '<<n;
n_o=0;nl=n;
do
while(nl);
cout<<'nOglinditul lui '<<n<<' este '<<n_o;
aux=n_b=0;
do
while(n);
do
while(aux);
cout<<'nNumarul in baza '<<b<<' este '<<n_b;
nr=0;nl=n;
do
while(nl);
cout<<'nCifra '<<a<<' apare de '<<nr<<' ori';
nl=0;i=0;//poz.se numara de la sfarsit
while(i++<k)
nl=nl*10+a;
do
while(nl);
cout<<'nNoul numar este: '<<n;
cmax=0;nl=n;
do
while (nl) ;
cout<<'ncmax='<<cmax;
n_10=0;p=l;
do
while(n);
cout<<n_10;
Sa se alcatuiasca programe care sa rezolve urmatoarele probleme:
1.citeste n
2.n=abs(n)
3.f=2 //factorul prim de testat
4.cat timp (f<=n)
4.1.e=0 //exponentul la care apare factorul in descompunere
4.2.cat timp (n%f==0) //n se divide la f
4.2.1.n=n/f
4.2.2.e=e+1
4.3.daca (e<>0) scrie f,' la ',e
4.4.daca (f==2) f=f+1 altfel f=f+2
Utilizata in cadrul instructiunilor ciclice, instructiunea break 'forteaza' iesirea din acestea. Fara a se mai testa valoarea expresiei (conditia) care determina repetarea corpului instructiunii ciclice, se continua executia cu instructiunea care urmeaza instructiunii ciclice. Astfel, se intrerupe repetarea corpului instructiunii ciclice, indiferent de valoarea conditiei de test.
Utilizarea in cadrul instructiunii switch: In situatia in care s-a ajuns la o valoare a unei expresiei constante egala cu cea a expresiei aritmetice, se executa instructiunea corespunzatoare acelei ramuri. Daca se intalneste instructiunea break, parcurgerea este intrerupta (nu se mai compara valoarea expresiei aritmetice cu urmatoarele constante), deci se va trece la executia primei instructiuni de dupa switch. Daca nu este intalnit break, parcurgerea continua. Instructiunea break cauzeaza deci, iesirea imediata din switch.
Intalnirea instructiunii continue determina ignorarea instructiunilor care o urmeaza in corpul instructiunii ciclice si reluarea executiei cu testarea valorii expresiei care determina repetarea sau nu a corpului ciclului.
do
while (expresie1);
while(expresie1)
for(expr1; expr2; expr3)
Sa se scrie un program care citeste o cifra din intervalul [1,7] si afiseaza denumirea zilei din saptamana corespunzatoare cifrei respective (1-luni, 2-marti etc).
#include <stdio.h>
#include <stdlib.h>
void main( )
Care sunt instructiunile care implementeaza in limbajul C structura conditionala ?
Care sunt instructiunile care implementeaza in limbajul C structura secventiala ?
Care sunt instructiunile care implementeaza in limbajul C structura repetitiva cu test initial ?
Care sunt instructiunile care implementeaza in limbajul C structura repetitiva cu test final ?
Ce deosebiri sunt intre instructiunea while si instructiunea do-while ?
Pornind de la sintaxa instructiunii for, stabiliti echivalenta intre aceasta si instructiunile while si do-while.
Sa se calculeze aria unui triunghi, cunoscandu-se marimea laturilor sale. Numerele care reprezinta marimile laturilor vor fi introduse de utilizator. Se va testa mai intai daca cele 3 numere reprezentand marimea laturilor pot forma un triunghi (a <= b+c, b <= c+d, c <= a+b).
Sa se rescrie urmatoarea secventa, folosind o singura instructiune if.
if (n<0)
if (n>=90)
if (x!=0)
int b= n/x;
Sa se gaseasca toate numerele de doua cifre care satisfac relatia: = (x+y)2
Sa se citeasca un sir de numere reale, pana la intalnirea numarului 800 si sa se afiseze valoarea minima introdusa, suma si produsul elementelor sirului.
Scrieti un program care sa verifice inegalitatea 1/(n+1) < ln[(n+1)/n] < 1/n, unde n este un numar natural pozitiv, introdus de la tastatura.
Fie functia
ex-3 , x I
f(x)= sinx+cosx , x I
0,9ln(x+3) , x I
Sa se calculeze f(x), unde x e citit de la tastatura.
Sa se scrie un program care calculeaza si afiseaza maximul a 3 numere reale (a, b si c) citite de la tastatura.
Sa se scrie un program care calculeaza si afiseaza minimul a 3 numere reale (a, b si c) citite de la tastatura.
Sa se citeasca 2 caractere care reprezinta 2 litere mari. Sa se afiseze caracterele citite in ordine alfabetica.
Sa se citeasca 3 caractere care reprezinta 3 litere mici. Sa se afiseze caracterele citite in ordine alfabetica.
Sa se scrie un program care citeste o cifra. In functie de valoarea ei, sa se faca urmatorul calcul: daca cifra este 3, 5 sau 7 sa se afiseze patratul valorii numerice a cifrei; daca cifra este 2, 4 sau 6 sa se afiseze cubul valorii numerice a cifrei; daca cifra este 0 sau 1 sa se afiseze mesajul 'Valori mici'; altfel., sa se afiseze mesajul 'Caz ignorat!'.
Sa se calculeze valoarea polinomului Cebisev de ordin n intr-un punct x dat, cunoscand relatia:
T0(x)=1, T1(x)=x si Tk+1 (x) - 2xTk (x) + Tk -1(x) = 0
Sa se citeasca cate 2 numere intregi, pana la intalnirea perechii (0, 0). Pentru fiecare pereche de numere, sa se calculeze si sa se afiseze cel mai mare divizor comun.
Se citesc cate 3 numere reale, pana la intalnirea numerelor 9, 9, 9. Pentru fiecare triplet de numere citit, sa se afiseze maximul.
Se citeste cate un caracter pana la intalnirea caracterului @. Sa se afiseze numarul literelor mari, numarul literelor mici si numarul cifrelor citite; care este cea mai mare (lexicografic) litera mare, litera mica si cifra introdusa.
Se citesc cate 2 numere intregi, pana la intalnirea perechii de numere 9, 9. Pentru fiecare pereche de numere citite, sa se afiseze cel mai mare divizor comun al acestora.
Sa se calculeze suma seriei 1 + x3/3 - x5/5 + x7/7 - . cu o eroare mai mica decat e (citit de la tastatura). Sa se afiseze si numarul de termeni ai sumei.
Sa se citeasca un numar intreg format din 4 cifre (abcd). Sa se calculeze si sa se afiseze valoarea expresiei reale: 4*a + b/20 -c + 1/d.
Sa se scrie un program care afiseaza literele mari ale alfabetului in ordine crescatoare, iar literele mici - in ordine descrescatoare.
Sa se scrie un program care genereaza toate numerele perfecte pana la o limita data, LIM. Un numar perfect este egal cu suma divizorilor lui, inclusiv 1 (exemplu: 6=1+2+3).
Sa se calculeze valoarea sumei urmatoare, cu o eroare e mai mica de 0.0001:
S=1+(x+1)/ 2! + (x+2)/ 3! + (x+3)/ 3! + ,
unde 0<=x<=1, x citit de la tastatura.
Sa se genereze toate numerele naturale de 3 cifre pentru care cifra sutelor este egala cu suma cifrelor zecilor si unitatilor.
Sa se citeasca cate un numar intreg, pana la intalnirea numarului 90. Pentru fiecare numar sa se afiseze un mesaj care indica daca numarul este pozitiv sau negativ. Sa se afiseze cel mai mic numar din sir.
Sa se genereze toate numerele naturale de 3 cifre pentru care cifra zecilor este egala cu diferenta cifrelor sutelor si unitatilor.
Sa se calculeze suma:
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2371
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved