| 1. Sa se scrie un program C++ care citeste doua siruri
de caractere (maxim 255). Sa se determine daca pot
reprezenta elementele a doua multimi. Daca da,
determinati reuniunea, intersectia si diferenta. | #include<iostream>
#include<string.h>
using namespace std;
char sir1[256], sir2[256], r[256], d[256], I[256];
int multime(char x[256]){
for (int i=0; i<strlen(x); i++)
if(strchr(x+i+1,x[i]))
return 0;
return 1;
}
void reuniune(char x[256], char y[256], char z[256])
{
strcpy(z,x);
int n=strlen(z);
for (int i=0; i<strlen(x); i++)
if(strchr(y,x[i])==NULL)
{
z[n]=x[i];
n++;
}
z[n]='\0';
}
void intersectie(char x[256], char y[256], char z[256])
{
int n=0;
for (int i=0; i<strlen(x); i++)
if(strchr(y,x[i]))
{
z[n]=x[i];
n++;
}
z[n]='\0';
}
void diferenta(char x[256], char y[256], char z[256])
{
int n=0;
for (int i=0; i<strlen(x); i++)
if(strchr(y,x[i])==NULL)
{
z[n]=x[i];
n++;
}
z[n]='\0';
}
int main()
{
cout<<"Sirul 1 ";
cin.get(sir1,256);
cin.get();
cout<<"Sirul 2 ";
cin.get(sir2,256);
cin.get();
if (multime(sir1) && multime(sir2))
{
reuniune(sir1, sir2, r);
cout<<r<<endl;
intersectie(sir1, sir2, I);
cout<<I<<endl;
diferenta(sir1, sir2, d);
cout<<d<<endl;
}
else
cout<<"NU";
return 0;
}
|
| 2. Sa se scrie un program C++ care citeste un sir de
caractere. Sa se stearga din sir toate aparitiile
vocalelor care se afla plasate intre doua cifre, iar
consoanele din a doua jumatate a alfabetului sa se
inlocuiasca cu litera aflata in alfabet inaintea sa. | #include<iostream>
#include<string.h>
using namespace std;
char sir[256];
int vocale(char x){
if(x=='a'||x=='e'||x=='i'||x=='o'||x=='u')
return 1;
else
return 0;
}
int consoana(char x)
{
if (x>='a' && x<='z' && vocale(x)==0)
return 1;
else
return 0;
}
int cifra(char x)
{
if (x>='0' && x<='9')
return 1;
else
return 0;
}
int main()
{
cout<<"Sirul ";
cin.get(sir,256);
cin.get();
for (int i=1; i<strlen(sir)-1;i++)
{
if(vocale(sir[i])&&cifra(sir[i-1])&&cifra(sir[i+1]))
strcpy(sir+i, sir+i+1);
if(consoana(sir[i])&&sir[i]>'m')
sir[i]--;
}
cout<<sir;
return 0;
}
|