Orar semigroup #2

Orar semigroup #2

22 noiembrie - vocale, consoane, şabloane

Scrieti un program care citeste de la tastatura un cuvant cu cel putin 1 si cel mult 20 de litere, construieste si afiseaza pe ecran cuvantul obtinut prin interschimbarea primei consoane cu ultima vocala din cuvant. Daca nu se gaseste o vocala sau o consoana se va afisa "IMPOSIBIL".

#include<iostream>
using namespace std;
int main()
{int i,j,k,n,ok=1;
char a[100],*p,aux,b[100];
cin>>a;
n=strlen(a);
for(i=0;i<n;i++)
    if(strchr("AaEeIiOoUu",a[i])==0)
        break;
for(j=n-1;j>=0;j--)
    if(strchr("AaEeIiOoUu",a[j]))
        break;
if(i==n || j<0)
    {cout<<"Imposibil";return 0;}
else {aux=a[i];
      a[i]=a[j];
      a[j]=aux;
      cout<<a;}
}
Un şir de caractere s se numeşte şablon pentru un alt şir de caractere x dacă e format numai din caractere din mulţimea {*,#,?}, are aceeaşi lungime ca şi şirul x şi pe fiecare poziţie din s în care apare *, în şirul x se găseşte vocală, pe fiecare poziţie din s în care apare #, în şirul x se găseşte consoană şi pe fiecare poziţie din s în care apare ?, în şirul x poate fi orice caracter.
Se dau două şiruri de caractere de aceeaşi lungime formate din litere mici. Să se afişeze un şablon comun celor două şiruri care conţine un număr minim de "?".
Se citeşte de la tastatură un şablon s. Să se citească de la tastatură repetat câte un cuvânt până când acesta respectă şablonul şi să se afişeze numărul de încercări de citire.
#include<iostream>
using namespace std;
int main()
{int i=0,j,k=0,n,ok=1,m,dlm=0;
char a[100],*p,aux,b[100],s[100]={0},t[100],x[100];
cout<<"Primul cuvant:"<<endl;cin>>a;
cout<<"Al doilea cuvant:"<<endl;cin>>b;
n=strlen(a);m=strlen(b);
if(n!=m)
    cout<<"EROARE"<<endl;
else
{
for(i=0;i<n;i++)
{    if(strchr("aeiou",a[i]) && strchr("aeiou",b[i]))
            strcat(s,"*");
    else if(strchr("aeiou",a[i])==0 && strchr("aeiou",b[i])==0)
            strcat(s,"#");
    else strcat(s,"?");
}
cout<<"Sablonul:"<<endl;
cout<<s<<endl<<endl;
}
cout<<"Noul salblon:"<<endl;
cin>>t;
n=strlen(t);
while(k==0)
{
    ok=1;
    cin>>x;
    dlm++;
if(n==strlen(x))
{    for(i=0;i<n;i++)
        {  
            if(strchr("aeiou",x[i]) && t[i]=='#')ok=0;
            if(strchr("aeiou",x[i])==0 && t[i]=='*')ok=0;
        }
}
else ok=0;

if(ok==1)
{    k=1;
    cout<<"Corect din "<<dlm<<" incercari";
}
}
}

luni, 22 noiembrie 2010 by DlMuresan
Categories: , , , , , | 1 comment

One Comment

  1. Ai uitat sa pui biblioteca string.h/cstring

Leave a Reply