Orar semigroup #2

Orar semigroup #2

Probleme 7 octombrie

1) Scrieţi un progra care citeşte de la tastatură un cuvânt de maximum 20 de litere şi îl codifică: fiecare literă o înlocuieşte cu cea care urmează după aceasta în alfabet, iar pe 'a' în codifică în 'z'.

#include<iostream>
using namespace std;
int main()
{char a[100];
int i;

cin.get(a,20);
for(i=0;i<strlen(a);i++)
{if(a[i]=='a')a[i]='z';
else a[i]=a[i]+1;
}
cout<<endl;
cout<<a;
}
2) Să se interschimbe primul şi ultimul caracter al şirului s citit de la tastatură. Şirul poate conţine şi spaţii, pe orice poziţie.
#include<iostream>
using namespace std;
int main()
{char a[100];
int i;
cin.get(a,100);

i=a[0];
a[0]=a[strlen(a)-1];
a[strlen(a)-1]=i;

cout<<a;
}
3) Se dă un şir de caractere, litere mici ale aflabetului englez şi cifre. Primul caracter din şir e literă. Fiecare literă e urmată de o cifră nenulă. Să se construiască un nou şir, care să conţină fiecare literă din şirul iniţial repetată de atâtea ori câte o indică cifra de după ea. Ex: a1b1r2 -> abrr
#include<iostream>
using namespace std;
int main()
{char b[100],a[100];
int i,j=0,p;
cin.get(a,100);

for(i=0;i<strlen(a);i=i+2)
{b[j]=a[i];
j++;
p=a[i+1]-'0';
while(p>1)
{b[j]=a[i];j++;p--;}
}
b[j]=0;
cout<<b;
}
4) Citim de la tastatură n prenume(n<=10). Un prenume conţine cel mult 12 caractere. Să se ordoneze alfabetic.

5) Să se afişeze sufixele şi prefixele unui cuvânt.

#include<iostream>
using namespace std;
int main()
{char a[100];
int i,j,n;
cin>>a;

for(i=0;i<strlen(a);i++)
    {
    for(j=0;j<=i;j++)
        cout<<a[j];
    cout<<endl;
    }

cout<<"--------"<<endl;

i=0;
for(n=strlen(a)-1;n>=0;n--)
    {
    for(j=i;j<strlen(a);j++)
        cout<<a[j];
    i++;
    cout<<endl;
    }

}
6) Se citeşte un şir format din unul sau mai multe caractere, care conţine numele unei persoane urmat de unul sau mai multe spaţii şi prenumele acesteia.
a) să se formeze un alt şir ce conţine prenumele, exact un spaţiu şi numele.
b) să se formeze un alt şir ce conţine iniţiala prenumelui, caracterul '.', un spaţiu şi numele
#include<iostream>
using namespace std;
int main()
{char a[100],v[100]="aeiouAEIOU",b[100],c[100];
int i,p,n,j=0,k=0;
cin.get(a,100);
n=strlen(a);
cout<<"Punctul a)"<<endl;
for(i=0;i<n;i++)
    if(a[i]==' ')p=i;

for(i=p+1;i<n;i++)
    {b[j]=a[i];j++;}

b[j]=' ';j++;

for(i=0;i<n;i++)
    {if(a[i]!=' ')
        {b[j]=a[i];
        j++;}
    if(a[i]==' ')break;}
b[j]=0;
cout<<b;

cout<<endl<<"Punctul b)"<<endl;
for(i=0;i<n;i++)
    if(a[i]==' ')p=i;

c[k]=a[p+1];k++;
c[k]='.';k++;
c[k]=' ';k++;
for(i=0;i<n;i++)
    {if(a[i]!=' ')
        {c[k]=a[i];
        k++;}
    if(a[i]==' ')break;}
c[k]=0;
   
cout<<c;

}
7) Se citeşte un cuvânt care conţine cel puţin 2 vocale. Să se elimine din el prima şi ultima vocală.
#include<iostream>
using namespace std;
int main()
{char a[100],v[100]="aeiouAEIOU";
int i,p,n;
cin.get(a,100);
n=strlen(a);

for(i=0;i<n;i++)
    if(strchr(v,a[i])){p=i;break;}
   
for(i=p;i<n;i++)
    a[i]=a[i+1];

for(i=0;i<n-1;i++)
    if(strchr(v,a[i]))p=i;

for(i=p;i<n-1;i++)
    a[i]=a[i+1];

cout<<a;
}
8) Se citeşte un şir de caractere. Să se afişeze perechile de caractere alăturare care sunt ambele vocale sau egale.
#include<iostream>
using namespace std;
int main()
{ char a[100];
int i,p=0;
cin.get(a,100);

if(isalpha(a[0]))
    p=1;
else p=0;

cout<<"Perechi de vocale"<<endl;
for(i=0;i<strlen(a);i++)
    if(strchr("aeiouAEIOU",a[i]) && strchr("aeiouAEIOU",a[i+1]))
        cout<<a[i]<<";"<<a[i+1]<<endl;
   
    cout<<endl;
   
cout<<"Perechi de caractere egale"<<endl;   
for(i=0;i<strlen(a);i++)
    if(a[i]==a[i+1])
        cout<<a[i]<<";"<<a[i+1]<<endl;

    cout<<endl;
   
cout<<"Numarul de cuvinte"<<endl;
for(i=0;i<strlen(a);i++)
    if(a[i]==' ' && isalpha(a[i+1]))
        p++;
   
cout<<p;
   
}

joi, 7 octombrie 2010 by DlMuresan
Categories: , , , , | Leave a comment

Leave a Reply