Documente Academic
Documente Profesional
Documente Cultură
#include <iostream>
#include <fstream>
ifstream fin("date.in");
int main()
int n, x, s=0, i;
fin >> n;
fin>>x;
s=s+x;
cout<<s;
return 0;
#include <iostream>
#include <fstream>
ifstream fin("date.in");
int main()
int n, x, s=0, i;
fin >> n;
fin>>x;
s=s+x;
cout<<s;
return 0;
#include <iostream>
#include <fstream>
ifstream fin("date.in");
int main()
while(fin>>x)
{i++;
v[i]=x;
s=s+x;
cout<<s<<endl;
cout<<v[j]<<',';
return 0;
}
#include <iostream>
#include <fstream>
ifstream fin("date.in");
int main()
while(fin>>x)
{i++;
v[i]=x;
s=s+x;
cout<<s<<endl;
cout<<v[j]<<','<<endl;
n=i;
if(v[i]<=0)
OK = false;}
if(OK==true)
if(v[i]%2==0)
OK = true;}
if(OK==true)
return 0;
Folosirea vectorului caracteristic pt a afla de cate ori apare fiecare nr de 2 cifre in fisier
OBS-putem folosi vectorul caracteristic pt nr de o cf, doua, trei, patru
#include <iostream>
#include <fstream>
ifstream fin("date.in");
int main()
while(fin>>x)
v[x]++;
if(v[i]>0)
// afiseaza 12 12 12 12 12 12 etc.
for(i=10; i<=99; i++)
if(v[i]>0)
cout<<i<<',';
return 0;
#include <iostream>
#include <fstream>
ifstream fin("date.in");
int main()
while(fin>>x)
v[x]++;
if(v[i]>0)
if(v[i]>0)
{
cout<<i<<',';
return 0;
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("date.in");
//scriem o functie care returneaza minimul din matricea v
int main()
{
int n, m, v[100][100], i, j, l, k ;
fin>>n;
fin>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
fin>>v[i][j];
for(i=1; i<=n; i++)
{ for(j=1; j<=m; j++)
cout<<v[i][j]<<' ';
cout<<endl;}
cout<<"minimul din matrice="<<f(v, n, m)<<endl;
// s-a apelat functia f care calculeaza minimul si il returneaza
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("date.in");
int main()
{
int n, m, v[100][100], i, j, l, k ;
fin>>n;
fin>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
fin>>v[i][j];
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
cout<<v[i][j]<<' ';
cout<<endl;
}
cin>>l;
afisarelinie(v, n, m, l);
cin>>k;
afisarecoloana(v, n, m, k);
return 0;
}
#include <iostream>
#include <fstream>
using namespace std;
//scrieti o functie care returneaza prin intermediul a doi parametrii formali suma cifrelor
pare ale lui n si produsul cifrelor impare
void sumacifrepare(int n, int &sp, int &pi) // sp si pi sunt parametrii transmisi prin referinta
// valorile lor se transmit modificate in afara functiei
{ int c;
sp=0;
pi=1;
while (n)
{ c=n%10;
if(c%2==0)
sp=sp+c;
else pi=pi*c;
n/=10;
}
}
int main()
{
int a, b, sp, pi;
cin>>a>>b;
sumacifrepare(a, sp, pi);
cout<<"sp="<<sp<<endl;
cout<<"pi="<<pi<<endl;
cout<<"sumacifre(a)="<<sumacifre(a)<<endl; // a se numeste parametru actual transmis
prin valoare
cout<<"valoarea lui a dupa apelul functiei este neschimbata"<<a<<endl;
cout<<"sumacifre(123)="<<sumacifre(123)<<endl;
cout<<"sumacifre(b)="<<sumacifre(b);
return 0;
}
#include <iostream>
#include <fstream>
using namespace std;
// scrieti o functie care returneaza cel mai mare divizor impar al lui n
int main()
{
int n;
cin>>n;
cout<<"div1="<<div1(n)<<endl;
div2(n);
cout<<"div3="<<div3(n);
return 0;
}
#include <iostream>
#include <fstream>
using namespace std;
int p(int n)
{ int d;
if(n<2)
return 0;
for(d=2;d*d<=n;d++)
if(n%d==0)
return 0;
return 1; // returneaza 1 daca numarul este prim si 0 daca nu este prim
}
int main()
{
cout<<p(4);
return 0;
}
#include <iostream>
#include <fstream>
*/
int main()
int v[10]={0}, i, n, c, j;
cin>>n;
// n=17353
while(n!=0)
c=n%10;
v[c]++;
n=n/10;
cout<<i;
return 0;
Să se scrie o funcție C++ care, pentru doi parametri, a și b, afișează pe ecran, separate
prin câte un spațiu, în ordine descrescătoare, toate numerele perfecte din
intervalul [a,b]. Dacă în interval nu există astfel de numere, subprogramul afișează pe
ecran mesajul nu exista.
}
if(ok==0)
cout<<"nu exista";
}
17. Să se scrie o funcție C++ care să determine suma divizorilor unui număr natural
transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de
ieşire.
114. Să se scrie o funcție C++ care să determine numărul divizorilor impari ai unui
număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui
parametru de ieşire.
int main() {
char c[20]; // declarare sir de caractere
int nr=0;
//citirea cu for a sirului
for(int i=0;i<=5;i++)
cin>>c[i];
c[6]=NULL;//transforma vectorul c intr-un sir de caractere
cout<<c;//afiseaza sir
//aflam cate litere 'a' s-au introdus
for(int i=0; i<=5; i++)
if(c[i]=='a')
nr++;
cout<<nr;
}
#include <iostream>
#include <cstring>
int main() {
char a[30],b[30];
int i, nr=0;
cin.get(a,30);
cin.get();
//cin.get(b,10);
cout<<a;
//cout<<b;
#include <iostream>
#include <cstring>
int main(){
char a[100],b[100];
cin>>a>>b;
if(strlen(a) != strlen(b))
cout<<"Cuvintele nu sunt anagrame"<<endl;
else{
int i,j;
for (i = 0; i < strlen(a);i++)
for (j = i + 1; j < strlen(a); j++)
if (a[i] > a[j])
{
char aux = a[i];
a[i] = a[j];
a[j] = aux;
}
for (i = 0; i < strlen(b); i++)
for (j = i + 1; j < strlen(b); j++)
if (b[i] > b[j])
{
char aux = b[i];
b[i] = b[j];
b[j] = aux;
}
if (strcmp(a,b) == 0)
cout<<"Cuvintele sunt anagrame"<<endl;
else
cout<<"Cuvintele nu sunt anagrame"<<endl;
}
return 0;
}
V1 – care nu e f buna deoarece repeta while de 2 ori
#include <iostream>
#include <cstring>
return 0;
}
#include <iostream>
#include <cstring>
cout<<"Caracterele "<< c1 <<" si "<< c2 <<" apar de " << nr1<<" ori "<<endl;
return 0;
}
#include <iostream>
#include <cstring>
cout<<"propozitia"<<nr<<':'<<p<<endl;
// prelucram propozitia p
cout<<"lungimea propozitiei este"<<strlen(p)<<endl;
p=strtok(NULL,"?!.");
}
cout<<"Numarul de propozitii este "<< nr;
return 0;
}
-daca adaug separatorul spatiu se separa cuvintele
#include <iostream>
#include <string.h>
using namespace std;
int main(){
char a[100],b[100];
cin>>a>>b;
if(strlen(a) != strlen(b))
cout<<"Cuvintele nu sunt anagrame"<<endl;
else{
int i,j; // a="bac" a="abc"
// ordoneaza crescator literele cuvantului a
for (i = 0; i < strlen(a);i++)
for (j = i + 1; j < strlen(a); j++)
if (a[i] > a[j])
{
char aux = a[i];
a[i] = a[j];
a[j] = aux;
}
// ordoneaza crescator literele cuvantului b
// daca b="dab" b="abd"
for (i = 0; i < strlen(b); i++)
for (j = i + 1; j < strlen(b); j++)
if (b[i] > b[j])
{
char aux = b[i];
b[i] = b[j];
b[j] = aux;
}
if (strcmp(a,b) == 0)
cout<<"Cuvintele sunt anagrame"<<endl;
else
cout<<"Cuvintele nu sunt anagrame"<<endl;
}
return 0;
}
#include <iostream>
#include <string.h>
using namespace std;
int main(){
int i;
char s[100]="aBRDC";
i=0;
while (i<strlen(s))
// testam daca s[i] este litera mare , daca da o eliminam
if( s[i]>='A' && s[i]<='Z')
strcpy(s+i, s+i+1); // i=1 s=”afC”
else i++;
cout<<s;
return 0;
}
#include <iostream>
#include <string.h>
using namespace std;
int main(){
int i, j;
char aux;
char s[100];
cin>>s;
cout<<s<<endl;
// interschimbarea caracterelor aflate pe poziţii simetrice faţă de mijlocul
şirului (primului caracter cu ultimul, al doilea cu penultimul, etc).
i=0;
j=strlen(s)-1;
while (i<j)
{
aux=s[i];
s[i]=s[j];
s[j]=aux;
i++;
j--;
}
cout<<s;
return 0;
}
int main(){
char s[50]="mnoprst", x[50];
strcpy(x,s+4); //x=”rst”
strcpy(s+4,"587"); //s=”mnop587”
strcat(s,x); // s=”mnop587rst”
cout<<s;
return 0;
}
#include <iostream>
#include <string.h>
using namespace std;
int main(){
char s[20], s1[20], v, voc[]="aeiouAEIOU";
int i;
cin>>s;
for(i=0; i<strlen(voc); i++)
{
strcpy(s1, s);
clona(s1,voc[i]);
if(strcmp(s1,s)!=0)
cout<<s1<<endl;
}
return 0;
}
18. Se consideră un text cu maximum 255 de caractere, format din litere mici ale alfabetului englez şi
spaţii. Textul conţine cel puţin o consoană. Scrieţi un program C++ care citeşte de la tastatură textul şi
apoi determină transformarea acestuia, eliminând numai ultima consoană care apare în text, ca în
exemplu. Programul va afişa pe ecran textul obţinut. Exemplu: dacă de la tastatură se introduce
textul: mare frig saci pe ecran se va afişa: mare frig sai (Bacalaureat 2009)
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s[256], voc[]="aeiou";
int i;
cin.get(s,256);
cin.get();
for(i=strlen(s)-1; i>=0; i--)
{
if(s[i]>='a' && s[i]<='z')
if(strchr(voc,s[i])==NULL)
{
strcpy(s+i, s+i+1);
cout<<"Textul final este: "<<s;
i=0;
}
}
return 0;
}
19. Se consideră un text alcătuit din cel mult 250 de caractere, în care cuvintele sunt formate doar din
litere mici ale alfabetului englez şi sunt separate prin unul sau mai multe caractere *. Scrieţi un
program C++ care citeşte de la tastatură textul şi afişează pe ecran, pe câte o linie, toate secvenţele
formate din câte două litere identice, ca în exemplu. Exemplu: dacă textul citit este: se afişează
perechile alăturate : ii ii oo
#include <iostream>
#include <string.h>
using namespace std;
/*afişează pe ecran cel mai lung sufix comun al celor două şiruri de
caractere. Dacă cele două şiruri nu au niciun sufix comun, atunci programul va
afişa pe ecran mesajul NU EXISTĂ
Exemplu: pentru şirurile
marina şi
elena
ananas se va afişa na
Idee: extragem pe rand sufixe din s1 si le cautam in s2. daca se gaseste in
s2, atunci verificam si daca este la sfarsitul cuvantului s2
marina
primul sufix este s1
al doilea sufix este s1+1
sufixul i va fi s1+i
ultimul va fi s1+strlen(s1)-1
*/
#include <iostream>
#include <string.h>
using namespace std;
int main()
{ char s1[251], s2[251], *p;
cin.get(s1,251);
cin.get();
cin.get(s2,252);
int i, g=0;
for(i=0; i<strlen(s1) && g==0; i++)
{
cout<<s1+i<<endl; // s1+i este un sufix al lui s1
//cautam s1+i in s2
int l=strlen(s1+i);
p=strstr(s2+strlen(s2)-l,s1+i);
if(p!=NULL)
{cout<<"S-a gasit sufixul "<<p<<endl;
g=1;}
/*marina
dinaina*/
}
if(g==0)
cout<<"NU EXISTA";
return 0;
}
Un număr natural nenul se numește p-număr dacă are aceeași paritate cu suma
divizorilor săi pozitivi.
Exemplu: 10 și 25 sunt p-numere (10 are aceeași paritate cu 18=1+2+5+10, iar
25 are aceeași
paritate cu 31=1+5+25).
Subprogramul kpn, are trei parametri, a, b și k, prin care primește câte un
număr natural din intervalul
[1,106] (a≤b). Subprogramul returnează cel de al k-lea p-număr din intervalul
[a,b] sau -1, dacă
nu există cel puțin k astfel de numere în acest interval. Scrieți definiția
completă a subprogramului.
Exemplu: dacă a=27, b=50 și k=3, atunci subprogramul returnează 34.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
cout<<"Rezultatul este: "<<kpn(27,50,3);
return 0;
}
#include <iostream>
#include <string.h>
using namespace std;
*/
int nrdivizori(int x)
{
int nrdiv=0, i;
for(i=2; i<=x; i=i+2)
{
if(x%i==0)
nrdiv++;
}
return nrdiv;
}
int main()
{
cout<<"Rezultatul este: "<<kpn(27,50,3)<<endl;
cout<<"Numarul de divizori pari este: "<<nrdivizori(10)<<endl;
cout<<"Numarul de divizori pari este: "<<nrdivizori(3);
pareimpare(1000, 3000);
return 0;
}