Orar semigroup #2

Orar semigroup #2

Tema - 1 octombrie

1) Să se transforme un şir din litere mici în litere mari.

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

for(i=0;i<strlen(a);i++)
    a[i]=(toupper(a[i]));

cout<<a;

}
2) Să se afişeze toate prefixele şi sufixele 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;
    }

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

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

cout<<endl;

for(i=strlen(a);i>0;i--){
    a[i]='\0';cout<<a<<endl;}

}

joi, 30 septembrie 2010 by DlMuresan
Categories: , , , | Leave a comment

Problema - 30 septembrie

Se citeste un text de maxim 30 de caractere care contine litere mici, mari si cifre.
a) sa se determine cate litere mici si mari contine
b) sa se calculeze suma cifrelor

#include<iostream>
using namespace std;
int main()
{char a[30];
int i,j,s=0,k,p=0;
cout<<"Textul dumneavoastra este: ";
cin>>a;

for(i=0;i<strlen(a);i++)
{
    if(isdigit(a[i]))s=s+a[i]-'0';
    if(isalpha(a[i]))p++;
}

cout<<"Suma cifrelor este urmatoarea:"<<s<<"; numarul literelor este: "<<p;

}

by DlMuresan
Categories: , , | 1 comment

Temă 30 septembrie - cuvânt palindrom

Să se verifice dacă un cuvânt citit este palindrom.

#include<iostream>
using namespace std;
int main()
{char a[100],b[100];
int i,j;
cout<<"cuvantul este: ";cin>>a;

for(i=strlen(a)-1;i>=0;i--)
{b[i]=a[j];
j++;
}

b[j]=0;

if(strcmp(a,b)==0)
    cout<<"da";
else cout<<"nu";

}

by DlMuresan
Categories: , , | Leave a comment

Şiruri de caractere - funcţii - 28 septembrie

Şiruri de caractere

#include<iostream>
using namespace std;
int main()
{char x[]="Dimineata";
cout<<strlen(x);
}
Funcţia strlen(x) afişează numărul de caractere din şirul x.
#include<iostream>
using namespace std;
int main()
{int i;
char x[]="Dimineata";
for(i=0;i<strlen(x);i++)
    cout<<x[i]<<".";
}
se va afişa D.i.m.i.n.e.a.t.a

Funcţii pentru şiruri de caractere
strcpy(destinaţie,sursă) - copiază şirul sursă în şirul destinaţie
strcat(s1,s2) - concatenează s2 la sfârşitul lui s1(lipeşte)
strncat(s1,s2,n) - concatenează primele n caractere din s2 la sfârşitul lui s1
strcmp(s1,s2) - compară şirurile s1 şi s2(pe baza codului ASCII); în cazul în care s1>s2 va afişa "1"; dacă s1<s2 va afişa "-1"; în caz de egalitate va afişa "0".
strstr(s1,s2) - verifică dacă s2 este subşir al lui s1
strchr(s,c) - verifică dacă c se află în şirul s şi returnează în acest caz o valoare nenulă; dacă caracterul c nu se află în şirul s va returna o valoare nulă

Exemple:
1)
#include<iostream>
using namespace std;
int main()
{ char s1[140],s2[140];
cin>>s1; // ABC
cin>>s2; // DEF
strcat(s1,s2);
cout<<s1; // ABCDEF
cout<<s2; // DEF  ... sirul s2 s-a atasat la sfarsitul s1 si a ramas cu aceeasi valoare
}
2)
#include<iostream>
using namespace std;
int main()
{ char s1[140],s2[140];
cin>>s1; // ABC
cin>>s2; // ABA
strcmp(s1,s2);
cout<<strcmp(s1,s2);  // compara codul ASCII al sirurilor
}
3)
#include<iostream>
using namespace std;
int main()
{ char c;
cin>>c;
if(strchr("aeiou",tolower(c))!=0)
    cout<<"vocala";
    else cout<<"consoana";
   
}

marți, 28 septembrie 2010 by DlMuresan
Categories: , | Leave a comment

Problema buclucasa - 28 septembrie

1) Varianta DlMuresan: Citim un nume si data nasterii(pana la ^Z) si calculam numarul atasat numelui(nr de personalitate) si numarul atasat datei nasterii(nr destinului).

#include<iostream>
using namespace std;
int main()
{int d=0,n=0,p,t,s=0;
char c;
while((c=cin.get()) != EOF)
{if(isdigit(c))
    d=d+c-'0';
if(isalpha(c))
{
    t=toupper(c);
switch(t%9)
{
case 2: n=n+1;break;
case 3: n=n+2;break;
case 4: n=n+3;break;
case 5: n=n+4;break;
case 6: n=n+5;break;
case 7: n=n+6;break;
case 8: n=n+7;break;
case 0: n=n+8;break;
case 1: n=n+9;break;
    }}}

while(d>9){p=d;s=0;
while(p){s=s+p%10;p=p/10;}
d=s;}

while(n>9){p=n;s=0;
while(p){s=s+p%10;p=p/10;}
n=s;}

cout<<"nr de personalitate: "<<n<<endl;
cout<<"nr destinului: "<<d<<endl;
}
2) Varianta B: Citim un nume si data nasterii(pana la ^Z) si calculam numarul atasat numelui(nr de personalitate) si numarul atasat datei nasterii(nr destinului).
#include<iostream>
using namespace std;
int main()
{int P,D,s=0,n,p,S=0;
char nume, data;
while((nume=cin.get()) != EOF)

{    if(isalpha(nume))
        {if((int)nume<74)s=s+(int)nume-64;
            else if((int)nume<83) s=s+(int)nume-73;
            else s=s+(int)nume-82;}
   
if(isdigit(nume))
    S=S+(int)nume-48;

}
   
   
n=s;
while(n>9)
{
p=n;s=0;
while(p){s=s+p%10;p=p/10;}
n=s;
}
P=n;
cout<<"Numarul de personalitate: "<<P<<endl;

n=S;
while(n>9)
{
p=n;S=0;
while(p){S=S+p%10;p=p/10;}
n=S;
}
D=n;
cout<<"Numarul destinului: "<<D;


}

by DlMuresan
Categories: , , , , | 1 comment