Documente Academic
Documente Profesional
Documente Cultură
Sa se afiseze cuvintele care se obtin prin eliminarea succesiva a literei sau a celor 2 litere din mijlocul cuvantului citit. Ex: Daca de citeste cuvantul cosmina se vor afisa: cosina cona ca
#include <iostream> #include <stdlib.h> using namespace std; int main() { char s[30]; cin>>s; if(strlen(s)%2==1) { strcpy(s+strlen(s)/2, s+strlen(s)/2+1); cout<<s<<endl; } while(strlen(s)!=0) { strcpy(s+strlen(s)/2-1, s+strlen(s)/2+1); cout<<s<<endl; } system("PAUSE"); return 0; }
Se citeste un cuvant format din litere mici. Sa se afiseze cuvintele care se obtin prin eliminarea succesiva a primei si ultimei litere din cuvantul citit. Ex: Daca de citeste cuvantul alina se vor afisa: alina lin i
#include<iostream.h> #include<string.h> int main() { char a[100]; cin>>a; while(strlen(a)>0) { cout<<a; cout<<endl; strcpy(a,a+1); strcpy(a+strlen(a)-1,a+strlen(a)); } return 0; }
Se citeste un sir de caractere format din cel mult 100 de caractere. Sa se numere si sa se stearga vocalele din sir. Ex: Pentru sirul abracadabra se afiseaza 5 si brcdbr
#include<iostream.h> #include<string.h> void main() { char s[200]; int i=0; cin>>s; while(i<strlen(s)-1) { if(s[i]==s[i+1]) { strcpy(s+i,s+i+2); if(i>0) i=i-1; } else i++; } cout<<s; }
Se citeste un cuvant format din litere mici. Sa se inlocuiasca fiecare vocala mica din cuvant cu vocala mare corespunzatoare. Ex: Cuvantul algoritm se va transforma in AlgOrItm.
#include<iostream.h> #include<string.h> void main() { char v[]="aeiou"; char s[40]; int i; cin>>s; for(i=0;i<strlen(s);i++) if(strchr(v,s[i])!=0) s[i]=s[i]+'A'-'a'; cout<<s; }
Se citeste un cuvnt format doar din litere mici. Sa se permute circular spre stnga literele din el si sa se afiseze cuvntul astfel obtinut. Ex. Alina => linaA
#include <iostream> #include <stdlib.h> using namespace std; int main() { char s[30],aux; int i; cin>>s; aux=s[0]; for(i=0;i<strlen(s)-1;i++) s[i]=s[i+1];
#include <iostream> #include <stdlib.h> using namespace std; int main() { char s[50],aux; int i; cin.get(s,60); s[0]=s[0]-32; for(i=1;i<strlen(s)-1;i++) if(s[i]!=' ' && (s[i+1]==' ' || s[i-1]==' ')) s[i]=s[i]-32; s[strlen(s)-1]=s[strlen(s)-1]-32; cout<<s; system("PAUSE"); return 0; }
Se citeste un cuvnt format din numar par de litere. Sa se interschimbe litera de pe prima pozitie cu cea de pe a doua, a treia cu a patra, etc. Ex. cosmin => ocmsni
#include <iostream> #include <stdlib.h> using namespace std; int main() { char s[30],aux; int i; cin>>s; for(i=0;i<strlen(s)-1;i=i+2) { aux=s[i]; s[i]=s[i+1]; s[i+1]=aux; } cout<<s; system("PAUSE"); return 0; }
Se citeste un text scris cu litere mici si spatii. Sa se codifice textul prin nlocuirea fiecarei litere cu urmatoarea din alfabet, litera z nlocuindu-se cu a . Ex. ana are mere => bob bsf nfsf
int main() { char s[50],aux; int i; cin.get(s,50); for(i=0;i<strlen(s);i++) if(s[i]!=' ') if(s[i]=='z') s[i]='a'; else s[i]=s[i]+1; cout<<s; system("PAUSE"); return 0; }
Se citesc 2 cuvinte a si b. Sa se determine daca sunt anagrame.
#include <iostream> #include <stdlib.h> using namespace std; int main() { char a[30],b[30]; cin>>a>>b; if(strlen(a)!=strlen(b)) cout<<"nu"; else { int ok=1; while(strcmp(a,b)!=0 && ok) { if(strchr(b,a[0])!=0) { strcpy(strchr(b,a[0]), strchr(b,a[0])+1); strcpy(a,a+1); } else ok=0; } if(ok) cout<<"da"; else cout<<"nu"; } system("PAUSE"); return 0; }
Spunem ca doua cuvinte "rimeaza" daca sufixele incepand de la ultima vocala sunt identice. Sa se scrie un program care citeste doua cuvinte a si b si determina daca ele "rimeaza". Ex: Diana si Sana "rimeaza"
#include<iostream.h> #include<string.h> int main() { char a[100], b[100], s1[100], s2[100],v[]="aeiou"; cin>>a>>b; int i; for(i=0;i<strlen(a);i++) if(strchr(v,a[i])) strcpy(s1,a+i); for(i=0;i<strlen(b);i++) if(strchr(v,b[i])) strcpy(s2,b+i); if(strcmp(s1,s2)==0)
#include<iostream> using namespace std; int main() { char a[20], b[20], *p; cin>>a>>b; if(strlen(a)<strlen(b))p=strstr(b+strlen(b)-strlen(a),a); else p=strstr(a+strlen(a)-strlen(b),b); if(p)cout<<"da"; else cout<<"nu"; system("pause"); return 0; }
Se citeste un cuvant a cu cel mult 100 de litere. Sa se afiseze pe linii separate toate cuvintele care se pot forma prin eliminarea unei singure litere din cuvantul citit. Exemplu: daca se citeste cuvantul alin se vor afisa: lin ain aln ali
#include<iostream> using namespace std; int main() { char a[100]; int i , j; cin >> a; for ( i = 0; i < strlen(a); i++ ) { for ( j = 0; j < strlen(a);j++) if ( i != j ) cout << a[j]; cout << endl; } system("pause"); return 0; }
Se citeste un cuvant format din cel mult 100 de litere mici. Sa se stearga consoanele din el.
char a[100]; char v[] = "aeiou"; cin >> a; for (int i = 0 ; i < strlen(a); i++ ) { if ( strchr ( v , a[i] ) == 0 ) strcpy ( a + i , a + i + 1 ); } cout << a; system ("pause"); return 0; }
Se citeste un cuvant a cu cel mult 100 de litere. Sa se stearga toate perechile de cate 2 litere alaturate identice. Daca prin stergere se obtin alte perechie de litere identice sa se stearga si acestea. Exemplu: din cuvantul abbapxsiisxh se obtine ph (prin eliminari succesive:aapxssxh, pxxh si apoi ph )
#include<iostream> using namespace std; int main() { char a[100]; int i; cin >> a; for ( i = 0 ; i < strlen(a) - 1; i++ ) { if ( a[i] == a[i+1] ) { strcpy ( a + i , a + i + 2 ); i--; i--; } } cout << a; system("pause"); return 0; }
Se citesc 2 numere naturale a si b cu maxim 200 de cifre fiecare. Sa se afiseze care dintre ele are numarul cifrelor mai mare.
#include<iostream> using namespace std; int Suma ( char a[201] ) { int sum = 0; int i; for ( i = 0 ; i < strlen(a) ; i++ ) if ( a[i] >= '0' && a[i] <= '9' ) sum = sum + a[i] - 48; else return -1; return sum;
} int main() { char a[201], b[201]; cin >> a >> b; if ( Suma(a) != -1 && Suma(b) != -1 ) if ( Suma(a) < Suma(b) ) cout << b; else cout << a; else cout << "nu ati introdus corect numerele"; system("pause"); return 0; }
Se citeste un cuvant s. Sa se afiseze toate sufixele lui s in ordinea crescatoare a lungimii. Ex: s=alina , se vor afisa: a na ina lina alina
#include<iostream> using namespace std; int main() { char s[51]; int i; cin>>s; for(i=strlen(s)-1;i>=0;i--) cout<<s+i<<endl; return 0; }
Din fisierul sir.in se citeste un text. Afisati cate cuvinte incep si se termina cu vocala. Ex: Ana are opt mere se va afisa 2.
#include<iostream> #include<fstream> using namespace std; int main() { char s[201], v[]="aeiouAEIOU"; int k=0; ifstream fin("sir.in"); while(fin>>s) if(strchr(v,s[0]) && strchr(v,s[strlen(s)-1])) k++; if(k) cout<<k; else cout<<"nu exista"; return 0; }
Se citeste un numar real x. Sa se calculeze radical de ordinul 3 din x folosind un algoritm de tip Divide et impera.
#include<iostream> using namespace std; double r3(double x, double s, double d) { if(d-s<=0.0001) return d; else { double m=(s+d)/2; if(m*m*m<x) return r3(x,m,d); else return r3(x,s,m); } } int main() { double x; cin>>x; if(x>0) if(x<1) cout<<r3(x,0,1); else cout<<r3(x,0,x); else if(x>-1) cout<<r3(x,-1,0); else cout<<r3(x,x,0); system("pause"); return 0; }
Se citeste un vector cu n elemente numere naturale. Sa se calculeze CMMDC al elementelor vectorului folosind divide et impera.
#include<iostream> using namespace std; int cmmdc(int a[100], int s, int d) { if(s==d) return a[s]; else { int x,y; x=cmmdc(a,s,(s+d)/2); y=cmmdc(a,(s+d)/2+1,d); while(x!=y) if(x>y) x=x-y; else y=y-x; return x; } } int main() { int a[100],n,i; cin>>n; for(i=1;i<=n;i++) cin>>a[i]; cout<<cmmdc(a,1,n); system("pause"); return 0; }
#include<iostream> using namespace std; float f(float x) { return x*x*x+x-1; } float DEI(float s, float d) { if(d-s<=0.0001) return s; else { float m=(s+d)/2; if(f(m)==0) return m; else if(f(m)<0) return DEI(m,d); else return DEI(s,m); } } int main() { cout<<DEI(0,1); system("pause"); return 0; }
Cautarea binara.
#include<fstream> using namespace std; ifstream fin("dateo.in"); ofstream fout("dateo.out"); int main() { int x,i,n,a[100],s,d,m,gasit=0; fin>>n; for(i=1;i<=n;i++) fin>>a[i]; fin>>x; s=1; d=n; while(s<=d && !gasit) { m=(s+d)/2; if(a[m]==x) gasit=1; else if(a[m]<x) s=m+1; else d=m-1; } if(gasit) fout<<m; else fout<<"Nu se gaseste"; fin.close(); fout.close(); return 0; }
Termenul n al sirului lui Fibonacci #include<iostream.h> int n; void combina(int x1,int x2,int &z){ z=x1+x2;} void dei(int n,int &z){ int x1,x2; if(n==1 || n==2) z=1; else { dei(n-1,x1); dei(n-2,x2); combina(x1,x2,z);}} void main() {int z; cout<<"n= ";cin>>n; dei(n,z);cout<<z;} Min si max dintr-un vector #include<iostream.h> int v[100],n; void divizeaza(int s,int d,int &m){ m=(s+d)/2;} void combina(int x1,int y1,int &z1,int x2,int y2,int &z2){ if(x1>y1) z1=y1; else z1=x1; if(x2>y2) z2=x2; else z2=y2;}
void dei(int s,int d,int &z1,int &z2) //z1-minim , z2-maxim { int m,x1,x2,y1,y2; if(d==s) z1=z2=v[s]; else {divizeaza(s,d,m);
dei(s,m,x1,x2); //x1-minim, x2-maxim dei(m+1,d,y1,y2); //y1-minim , y2-maxim combina(x1,y1,z1,x2,y2,z2);}} void main() { int i,z1,z2; cout<<"n= ";cin>>n; for(i=1;i<=n;i++) cin>>v[i]; dei(1,n,z1,z2); cout<<"minimul= "<<z1<<endl; cout<<"maximul= "<<z2<<endl; }
1*2+2*3+...+n*(n+1)
#include<iostream.h> int n; void divizeaza(int s,int d,int &m){ m=(s+d)/2;} void combina(int x,int y,int &z){ z=x+y;} void dei(int s,int d,int &z){ int m,x1,x2; if(d==s) z=s*(s+1); else {divizeaza(s,d,m); dei(s,m,x1); dei(m+1,d,x2); combina(x1,x2,z);}} void main() { int z;
1) Cautarea Secventiala Acest algoritm cauta elementul succesiv in componentele vectorului. Un caz practic ar fi exemplul cautarii unui nume in cartea de telefon. Deschidem cartea la intamplare,dorim sa cautam numele Popa Andrei . Verificam daca numele se afla in prima partea a cartii sau in a doua parte. Continuam cautarea in portiunea respectiva, actiunea se repeta pana la gasirea numelui. La fel este si in cazul numerelor dintr-un vector.
01.#include <iostream> 02. 03.int main() 04.{ 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.} return 0; } if (gasit) cout<<x<<" se afla in vector"; else cout<<x<<" nu se afla in vector"; { if (v[i]==x) gasit=1; i++; } i=1; while ( (i<=n) && (!gasit) ) int n,v[100],i,gasit=0,x; cout<<"Dati n : ";cin>>n; cout<<"Dati nr pe care trebuie sa-l cautam: ";cin>>x; for (i=0;i<n;i++) { cout<<"v["<<i+1<<"]=";cin>>v[i];
Cautarea secventiala se poate face intr-un vector cu elementele neordonate.Astfel complexitatea algoritmului este liniara : O(n).
2) Cautarea Binara Cautarea binara se bazeaza pe tehnica de programare Divide et Impera. Elementul cautat este verificat cu mijlocul vectorului. Daca elementul este egal cu mijlocul,cautarea se termina. Insa daca nu sunt egale, se compara valoarea mijlocului cu cea a elementului de cautat. Daca elementul este mai mare se continua cautarea de la mijlocul listei pana la sfarsit, iar daca este mai mic se continua cautarea de la inceput pana la mijloc.
01.#include <iostream.h> 02. 03.int main() 04.{ 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.} return 0; } if (g) cout<<x<<" se afla in vector pe pozitia "<<mij; else cout<<x<<" nu se afla in vector"; int mij,n=7,i,x=10,v[7]={4,5,8,10,20,45,76},st,dr,g=0; st=0; dr=n-1; mij=(st+dr)/2; while ( (st<dr) && (!g) ) { if (v[mij]==x) {g=1;break;} else if (v[mij]<x) st=mij+1; else if (v[mij]>x) dr=mij-1;
De aceasta data am dat elementele vectorului si numarul cautat, nu le-am mai citit. Observam ca am folosit o tehnica numita divide si cucereste. Dupa cum bine stim de la clasicul QuickSort orice algoritm divide si cucereste are timp logaritmic.
Este septembrie.Soarele mangaie pamantul amortit.Razele lui sunt din ce in ce mai palide.Marea de verdeata se ingalbeneste.Peste coroanele din foc ale copacilor ,adie vantul tomnatic,scuturand frunzele multicolore oferind pamantului un covor pufos.Vietatile se grabesc sa-si adune cu harnicie provizii pentru iarna.Pasarile calatoare pleaca vaslind in inaltimi pe cerul trist in locuri mai calduroase,lasand in urma cuiburile si locurile unde au stat in anotimpul cald.Asa si noi copiii neam luat ramas bun de la vacanta ,de la amici,colegi,verisori si vecini care si-au luat si ei zborul spre alte tari.Toamna este un anotimp plin de culoare ,farmec si schimbare
Deodata,am deschis ochii si am auzit-o pe mama spunandu-mi: Trezeste-te!. Atunci am realizat ca tot timpul acesta fusesem acasa,admirand miliardele de frunze care impanzeau padurea si se leganau usor,vesele,prin copaci.