Sunteți pe pagina 1din 5

1. Se citete un text ntr-o variabil de tip string, in care cuvintele se despart prin spaii.

Se
cere:
a) S se afieze cuvintele n ordine alfabetic;
b) S se numere cuvintele cu minim 4 vocale distincte

#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{
char text[100],*p, separator[]=" ", cuv[10][10], cuvant[10], aux[10] ; int nrv=0,voc, nr, k, i, j;
cout<<"Dati sirul:";cin.get(text,100);
strcpy(p,text) ;
p=strtok(p,separator) ;
while(p)
{
strcpy(cuv[++nr],p);
p=strtok(NULL,separator);
}
for(i=1;i<nr;i++)
for(j=i+1;j<=nr;j++)
if(strcmp(cuv[i],cuv[j])>0)
{
strcpy(aux,cuv[i]);
strcpy(cuv[i],cuv[j]);
strcpy(cuv[j],aux);
}
for(i=1;i<=nr;i++)
cout<<cuv[i];
for(i=1;i<=nr;i++)
{
voc=0;
strcpy(cuvant,cuv[i]);
k=strlen(cuvant) ;
for(j=0;j<k;j++)
{switch(cuvant[j])
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':{voc++; break;}
}}
if (voc>=4) nrv++ ;
}
cout<<nrv;
getch();
}

2. Fiierele cuv1.txt i cuv2.txt conin cuvinte, cte un cuvnt pe linie n ordine alfabetic. S
se construiasc fiierul cuv3.txt care s conin toate cuvintele din cele dou fiiere, n ordine
alfabetic.

#include <iostream.h>
#include <conio.h>
#include <string.h>
#include<fstream.h>
#include<stdio.h>
void main()
{char a[10], b[10], cuv[10][20], aux[10]; int i,j,nr=0;
clrscr();
fstream f("cuv1.txt", ios::in);
while(f.getline(a,10))strcpy(cuv[++nr],a);
ifstream g("cuv2.txt");
while(g.getline(b,10))strcpy(cuv[++nr],b);

for(i=1;i<nr;i++)
for(j=i+1;j<=nr;j++)
if(strcmp(cuv[i],cuv[j])>0)
{
strcpy(aux,cuv[i]);
strcpy(cuv[i],cuv[j]);
strcpy(cuv[j],aux);
}
for(i=1;i<=nr;i++)
cout<<cuv[i]<<endl;
getch();}

3. n fiierul date.in sunt scrise mai multe cuvinte cte unul pe fiecare linie din fiier. Se cere:
a) S se determine numrul de cuvinte din fiier;
b) S se afieze cuvintele care ncep cu o vocal.

#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<conio.h>
void main()
{
char a[10]; int k, i, nr=0;
clrscr();
fstream f("date.in",ios::in);
while(f.getline(a,10))
{if(a[0]=='a'||a[0]=='e'||a[0]=='i'||a[0]=='o'||a[0]=='u') cout<<a<<endl; nr++;
}
cout<<nr;
}
La o staie de benzin exist mai multe maini caracterizate prin numr, marc i culoare. Se
cere:
a) S se determine numrul mainilor Dacia;
b) S se ordoneze mainile dup culoare.

#include<iostream.h>
#include<string.h>
#include<conio.h>
typedef struct
{char marca[20],culoare[20],med[20];
int nr;}masina ;
masina a[20];
int n,x,k;
void citire()
{int i;
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
{cout<<"a[i].marca: ";cin>>a[i].marca;
cout<<"a[i].culoare: ";cin>>a[i].culoare;
cout<<"a[i].numar: ";cin>>a[i].nr;
}
}
void nr_dacia()
{ int i;
int nr=0;
for (i=1;i<=n;i++)
{x=strcmp(a[i].marca,"dacia");
if (x==0) nr=nr+1;}
cout<<"numarul de masini Dacia este "<<nr<<"\n";
}
void sortare()
{ int i,j;masina aux;

for (i=1;i<=n-1;i++)
for (j=i+1;j<=n;j++)
{x=strcmp(a[i].culoare,a[j].culoare);
if(x>0)
{aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
for (i=1;i<=n;i++)
cout<<a[i].culoare<<" "<<a[i].marca<<" "<<a[i].nr<<endl;
}

void main()
{
citire();
nr_dacia();
sortare();
}

Pentru evidena produselor cosmetice dintr-un depozit, se definete o structur cu urmtoarele
informaii: codul produsului, denumire, preul produsului. Citii informaiile tuturor
produselor i afiai produsele cu noile preuri (valoarea lui x este 7 dac codul produsului
este mai mic dect 500. i 11 n caz contrar). Afiai produsele cu cel mai mare pre dup
scumpire.



#include<iostream.h>
#include<string.h>
#include<conio.h>
typedef struct
{int cod,c,p,pret;
char den[20];}produse;
produse a[20];
int n,i,c,p;
void citire()
{
cout<<"Dati numarul de produse ";cin>>n;
for (i=1;i<=n;i++)
{cout<<"codul produsului ";cin>>a[i].cod;
cout<<"pretul produsului ";cin>>a[i].pret;
cout<<"denumirea produsului ";cin>>a[i].den;}
}
void rezolvare()
{
for (i=1;i<=n;i++)
if(a[i].cod<500) a[i].pret=7;
else a[i].pret=11;
for (i=1;i<=n;i++)
cout<<"pretul "<<a[i].den<<" este "<<a[i].pret<<"\n";
cout<<endl;
for (i=1;i<=n;i++)
if(a[i].pret==11) cout<<a[i].den<<"\n";
}
void main()
{
citire();
rezolvare();
}

Se citesc de la tastatur numele i media general a n elevi. Se cere s se afieze lista elevilor
n ordinea descresctoare a mediilor.

#include<iostream.h>
#include<string.h>
typedef struct elev{
char nume[50];
float medie;
};
elev a[100],aux;
int n;
void citire()
{int i;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"a[i].nume: ";cin>>a[i].nume;
cout<<"a[i].medie: ";cin>>a[i].medie;
}
}
void sortare()
{int i,j;
for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
if(a[i].medie<a[j].medie)
{aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
}
void afisare()
{int i;
for(i=1;i<=n;i++)
cout<<a[i].nume<<" "<<a[i].medie<<endl;

}
void main()
{citire();
cout<<"lista de elevi\n";
afisare();
sortare();
cout<<"dupa sortare\n";
afisare();
}