Orar semigroup #2

Orar semigroup #2

Archive for 2010

15 decembrie

Se citeşte din fişierul "elevi.in" un număr n şi n linii de forma:
Nume Prenume Clasa Varsta MedieGenerala
a) să se afişeze elevii
b) să se afişeze elevii cu media cea mai mare
c) să se afişeze elevii ordonaţi descrescător după vârstă
d) să se afişeze elevii ordonaţi descrescător după nume şi prenume
e) să se afişeze media generală a fiecărei clase

#include<iostream>
#include<fstream>
using namespace std;
struct elev
{char nume[100],prenume[100],clasa[5];
int varsta;
float mg;};

struct medie
{char cls[100];
float nr;};

int main()

{int i,j=0,n,k,ok,r;
float p;
elev e[100],aux;
medie m[100];

ifstream f("elevi.in");
f>>n;

for(i=0;i<n;i++)
{f>>e[i].nume>>e[i].prenume>>e[i].clasa>>e[i].varsta>>e[i].mg;
cout<<e[i].nume<<" "<<e[i].prenume<<endl;}
p=0;
cout<<endl<<"Media cea mai mare"<<endl;
for(i=0;i<n;i++)
    if(e[i].mg>p)p=e[i].mg;
for(i=0;i<n;i++)
    if(e[i].mg==p)cout<<e[i].nume<<" "<<e[i].nume<<endl;
cout<<endl<<"Descrescator dupa varsta"<<endl;
for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
        if(e[i].varsta<e[j].varsta)
        {aux=e[i];e[i]=e[j];e[j]=aux;}
for(i=0;i<n;i++)
    cout<<e[i].nume<<" "<<e[i].prenume<<endl;
cout<<endl<<"Descrescator dupa nume si prenume"<<endl;
for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
        if(strcmp(e[i].nume,e[j].nume)<0)
            {aux=e[i];e[i]=e[j];e[j]=aux;}
        else if(strcmp(e[i].nume,e[j].nume)==0)
            if(strcmp(e[i].prenume,e[j].prenume)<0)
            {aux=e[i];e[i]=e[j];e[j]=aux;}
for(i=0;i<n;i++)
    cout<<e[i].nume<<" "<<e[i].prenume<<endl;

strcpy(m[0].cls,e[0].clasa);
j=1;
for(i=0;i<n;i++)
{    ok=1;
    for(k=0;k<j;k++)
        if(strcmp(e[i].clasa,m[k].cls)==0)ok=0;
          
    if(ok==1)
    {strcpy(m[j].cls,e[i].clasa);
    j++;}
}
cout<<endl<<endl;
for(i=0;i<j;i++)
    cout<<m[i].cls<<endl;

for(k=0;k<j;k++)
{    m[k].nr=0;r=0;  
    for(i=0;i<n;i++)
        if(strcmp(e[i].clasa,m[k].cls)==0)
            {m[k].nr=m[k].nr+e[i].mg;r++;}
m[k].nr=m[k].nr/r;
}
cout<<endl<<endl;
for(k=0;k<j;k++)
    cout<<m[k].cls<<" "<<m[k].nr<<endl;

}
Fişierul
10
Muresan Mihai XA 16 10
Vanea Sergiu XA 16 6.76
Dodel Aristotel XB 18 9.14
Martinica Cristian XC 15 7.87
Florian Walter XD 56 10
Niculescu Claudiu XA 34 6.18
Jaan Kronkamp XC 42 7.86
Diego Armando XD 45 6.88
Victor Ciutacu XB 40 7.66
Mircea Badea XA 45 9.29

miercuri, 15 decembrie 2010 by DlMuresan
Categories: , , , | Leave a comment

13 decembrie - triunghi echilateral, cadrane

1) Se citesc coordonatele a 3 puncte din plan. Sa se verifice daca punctele sunt varfurile unui triunghi isoscel.

#include<iostream>
using namespace std;
struct punct
{float x,y;};

int main ()
{ float p,q,r;
punct A,B,C;

cin>>A.x>>A.y;
cin>>B.x>>B.y;
cin>>C.x>>C.y;

p=sqrtl((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));
q=sqrtl((A.x-C.x)*(A.x-C.x)+(A.y-C.y)*(A.y-C.y));
r=sqrtl((B.x-C.x)*(B.x-C.x)+(B.y-C.y)*(B.y-C.y));

if(p==q || p==r || q==r)
    cout<<"DA";
else cout<<"NU";
}
2. Se citesc coordonatele a n puncte in plan. Sa se afiseze numarul de puncte din fiecare cadran.
#include<iostream>
using namespace std;
struct punct
{float x,y;};

int main ()
{ int n,c1=0,c2=0,c3=0,c4=0,c5=0,i;
punct a[100];
cin>>n;

for(i=0;i<n;i++)
{    cin>>a[i].x>>a[i].y;
if(a[i].x>0 && a[i].y>0)c1++;
if(a[i].x<0 && a[i].y>0)c2++;
if(a[i].x<0 && a[i].y<0)c3++;
if(a[i].x>0 && a[i].y<0)c4++;
if(a[i].x==0 || a[i].y==0)c5++;
cout<<endl;}

cout<<c1<<endl<<c2<<endl<<c3<<endl<<c4<<endl<<"Pe axe: "<<c5;
}

luni, 13 decembrie 2010 by DlMuresan
Categories: , | Leave a comment

10 decembrie - suma fractiilor, distanta dintre puncte, aria dreptunghiului

1) Se citeşte din fişier un număr n şi n linii, reprezentând datele a n elevi(nume, prenume, clasa, varsta, numar de note, note). Să se afişeze numele elevilor şi media lor în ordine descrescătoare e mediei.

#include<iostream>
#include<fstream>
using namespace std;

struct elev
{char nume[20],prenume[20],clasa[5];
unsigned int varsta, note[10],l;
float medie;
};

int main(){
    int n,i,j,s,k;
    ifstream f("date");
    elev e[100],aux;
    f>>n;

    for(i=0;i<n;i++){
        f>>e[i].nume;
        f>>e[i].prenume;
        f>>e[i].clasa;
        f>>e[i].varsta;
        f>>e[i].l;
        for(j=0;j<e[i].l;j++)
            f>>e[i].note[j];
    }
   
    for(i=0;i<n;i++){s=0;
        for(j=0;j<e[i].l;j++)
            s=s+e[i].note[j];
        e[i].medie=(float)s/e[i].l;
    }

for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
        if(e[i].medie<e[j].medie)
        {aux=e[i];
        e[i]=e[j];
        e[j]=aux;
        }

for(i=0;i<n;i++)
    cout<<e[i].nume<<" "<<e[i].prenume<<"  "<<e[i].medie<<endl;

return 0;
}

fisierul
4
Muresan Mihai XA 16 4 10 10 1 1
Vanea Sergiu XA 15 4 8 4 10 7
Dodel Radu XA 16 4 6 6 1 10
Tothazan Septimiu XA 15 5 5 5 5 5 5
2) Se citesc de la tastatură într-o structură numitorul şi număratorul a două fracţii. Să se compare fracţiile şi să se afişeze suma lor.
#include<iostream>
using namespace std;
struct fractie
{int x,y;};
int main()
{
fractie A,B,C;
cout<<"Numaratorul primei fractii"<<endl;
cin>>A.x;
cout<<"Numitorul primei fractii"<<endl;
cin>>A.y;
cout<<"Numaratorul celei de a doua fractii"<<endl;
cin>>B.x;
cout<<"Numaratorul celei de a doua fractii"<<endl;
cin>>B.y;
cout<<"Care este suma?"<<endl;
if(A.y==B.y)
{    C.x=A.x+B.x;
    C.y=A.y;
    cout<<C.x<<"/"<<C.y<<endl;
   
}
else {
C.x=A.x*B.y+B.x*A.y;
C.y=A.y*B.y;
cout<<C.x<<"/"<<C.y<<endl;
}
A.x=A.x*B.y;
B.x=B.x*A.y;
cout<<"Care este mai mare?"<<endl;
if(A.x>B.x)
    cout<<"Prima("<<A.x/B.y<<"/"<<A.y<<")";
else if(B.x>A.x)
    cout<<"A doua("<<B.x/A.y<<"/"<<B.y<<")";
else cout<<"=";
cout<<endl<<"Bine, Mihai! Ai un plus!";
}
3) Se citesc de la tastatură coordonatele a doua puncte în plan: x1,y1,x2,y2. Să se afişeze distanţa dintre puncte. Să se folosească o structură pentru fiecare punct.
#include<iostream>
#include<math.h>
using namespace std;
struct punct
{int x,y;};
int main ()
{ punct A,B;
cin>>A.x>>A.y;
cin>>B.x>>B.y;
cout<<sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));
}
4) Să se definească structura dreptunghi cu câmpurile Lungime, lăţime şi Suprafaţă. Să se citească de la tastatură lungimile şi lăţimile a două dreptunghiuri şi să se afişeze care are aria mai mare.
#include<iostream>
#include<math.h>
using namespace std;
struct dreptunghi
{int L,l,S;};
int main ()
{dreptunghi a,b;
cout<<"Primul"<<endl;
cin>>a.L>>a.l;
cout<<"Al doilea"<<endl;
cin>>b.L>>b.l;
a.S=a.L*a.l;
b.S=b.L*b.l;
if(a.S>b.S)
    cout<<"Primul ocupa o arie gigantica fata de primul";
else if (b.S>a.S)
    cout<<"Al doilea ocupa o arie gigantica fata de primul";
else cout<<"=";
}

joi, 9 decembrie 2010 by DlMuresan
Categories: , , , , , , | Leave a comment

9 decembrie - structuri de date

#include<iostream>
using namespace std;
int main()
{
struct elev

{char nume[20],prenume[20];
unsigned int varsta, noteinfo[10];
char clasa[5];
};

elev e1,e2,*e3;// se comporta ca si o variabila
//
e1.varsta=18;
cout<<e1.varsta<<endl;
strcpy(e1.nume,"Marin"); // NU se poate atribuit e1.nume="Marin"
strcpy(e2.nume,"Dodel");
e1=e2; // se copiaza toate campurile din e2 in e1
e3=&e1;
cout<<(*e3).nume<<endl;

elev corig={"Vanea","Sergiu",5,{3,3,4},"XA"};
cout<<corig.noteinfo[0]<<endl; // trebuie parcurs sirul de intreg pentru a se afisa toate notele
//Se citeste dintr-un fisier text un numar n si n linii. Pe fiecare linie se afla campurile de mai sus
//Sa se afiseze toti elevii in ordine descrescatoare dupa media notelor.
}

by DlMuresan
Categories: , , , , , , , , | 2 comments

Problema 6 - 3+1 variante de rezolvare

Varianta cu 26 de case-uri

#include<iostream>
using namespace std;
int main()
{char a[100],*p,b[100]={0};
cin.get(a,100);
for(p=a;*p;p++)
    switch(*p)
{case 'A' : strcat(b,"11");break;
case 'B' : strcat(b,"12");break;
case 'C' : strcat(b,"13");break;
case 'D' : strcat(b,"14");break;
case 'E' : strcat(b,"15");break;
case 'F' : strcat(b,"21");break;
case 'G' : strcat(b,"22");break;
case 'H' : strcat(b,"23");break;
case 'I' : strcat(b,"24");break;
case 'J' : strcat(b,"24");break;
case 'K' : strcat(b,"25");break;
case 'L' : strcat(b,"31");break;
case 'M' : strcat(b,"32");break;
case 'N' : strcat(b,"33");break;
case 'O' : strcat(b,"34");break;
case 'P' : strcat(b,"35");break;
case 'Q' : strcat(b,"41");break;
case 'R' : strcat(b,"42");break;
case 'S' : strcat(b,"43");break;
case 'T' : strcat(b,"44");break;
case 'U' : strcat(b,"45");break;
case 'V' : strcat(b,"51");break;
case 'W' : strcat(b,"52");break;
case 'X' : strcat(b,"53");break;
case 'Y' : strcat(b,"54");break;
case 'Z' : strcat(b,"55");break;}
cout<<b;
}
Varianta cu o matrice de 26 de linii
#include<iostream>
using namespace std;
int main()
{char t[26][3]={"11","12","13","14","15","21","22","23","24","24","25","31","32","33","34","35","41","42","43","44","45","51","52","53","54","55"};
char b[100],a[100],*p;
cin>>a;
for(p=a;*p;p++)
    strcat(b,t[*p-'A']);
cout<<b;
}
Varianta mai elegantă(provided by Boss)
#include<iostream>
using namespace std;
int main()
{char l[][10]={"aa","aABCDE","aFGHiK","aLMNOP","aQRSTU","aVWXYZ"},c[100];
int x[100]={0},i,j=0,k1,k2;
cin>>c;
for(i=0;i<strlen(c);i++)
{
    if(strchr("IJ",c[i]))
    {    x[j]=2;
        j++;
        x[j]=4;
        j++;
    }
  
    for(k1=1;k1<=5;k1++)
    {
        for(k2=1;k2<=5;k2++)
        {
            if(c[i]==l[k1][k2])
            {
                x[j]=k1;
                j++;
                x[j]=k2;
                j++;
            }
        }
    }
}
for(i=0;i<j;i++)
    cout<<x[i];
}
Varianta şi mai elegantă(provided by DlMureşan)
#include<iostream>
using namespace std;
int main()
{char a[100],*p;
int i=0,b[100]={0},j;
cin.get(a,100);
strupr(a);
for(p=a;*p;p++)
{    if(*p<='I')
    {    b[i]=(*p-'A')/5+1;i++;
        b[i]=(*p-'A')%5+1;i++;
    }
    if(*p>'I')
    {    b[i]=(*p-'A'-1)/5+1;i++;
        b[i]=(*p-'A'-1)%5+1;i++;
    }
}
for(j=0;j<i;j++)
    cout<<b[j];
}

vineri, 3 decembrie 2010 by DlMuresan
Categories: , , , , , , , | Leave a comment

3 decembrie

Se citeste un cuvant de maxim 20 de litere mici. Sa se afiseze cuvantul dupa eliminarea primei si ultimei vocale

#include<iostream>
using namespace std;
int main()
{int i,j;
char *p,a[100],b[100];
cin>>a;
for(p=a;*p;p++)
    if(strchr("aeiou",*p))
    {    strcpy(p,p+1);
        break;
    }
   
for(p=a+strlen(a)-1;*p;p--)
    if(strchr("aeiou",*p))
    {strcpy(p,p+1);
    break;}
cout<<a;
}
Se citesc de la tastatura n cuvinte de maxim 30 de caractere. Sa se afiseze numarul de cuvinte care contine decat vocale.
#include<iostream>
using namespace std;
int main()
{int j=0,i,n,ok;
char *p,a[30];
cin>>n;
for(i=0;i<n;i++)
{    cin>>a;
ok=1;
for(p=a;*p;p++)
    if(strchr("aeiou",*p)==0)
        ok=0;
if(ok==1)
    j++;}
cout<<endl<<j;
}

by DlMuresan
Categories: , , , | Leave a comment

2 decembrie - funcţiile atoi, atof, itoa

Funcţii de conversie între şiruri de caractere şi numere

1) Fie declaraţia char a[100];
atoi(a); - converteşte şirul de caractere în număr întreg(returnează o valoare întreagă);
ex: char a[]="123";
int nr;
nr=atoi(a)*2;
cout<<nr; // se va afişa 246
Dacă a[]="123mmm" se va afişa 246
Daca a[]="aaa" se va fişa 0

2) Se citesc de la tastatură 2 numere, în două variabile de tip şir de caractere. Să se afişeze suma acestora, dacă lungimea fiecărui număr este de maxim 9 caractere. În cazul în care unul din numere are mai mult de 9 caractere, să se afişeze un mesaj.
#include<iostream>
using namespace std;
int main()
{int s;
char a[100],b[100];
cin>>a;
cin>>b;
if(strlen(a)>9 || strlen(b)>9)
    {cout<<"Mesaj";return 0;}
s=atoi(a)+atoi(b);
cout<<s;
}
3) Fie declaraţia float n; char a[100];
atof(a); - converteşte şirul de caractere la număr real(returnează o valoare de tip real)
ex: floar n; char a[100];
cin>>a; // 123.221abc
n=atof(a);
cout<<n; // se afişează 123.221

4) Fie declaraţia int x, baza; char a[100];
itoa(x,a,baza); - converteşte un întreg la şir de caractere. Conversia se face în baza precizată. Returnează pointer la şir(deci o valoare de tip şir de caractere).
ex: int x=1234;char a[10];
itoa(x,a,10);
cout<<a<<" "<<strlen(a); / se afişează 1235 4
sau
int y=7; char a[100];
itoa(y,a,2);
cout<<a; // se afişează 111
Se citeşte un număr întreg. Să se transforme în baza 2 şi să se afişeze.
#include<iostream>
using namespace std;
int main()
{int n;
char a[100];
cin>>n;
itoa(n,a,2);
cout<<a;
}

5) Primele n numere naturale se lipesc şi formează un număr foarte mare. Pentru n citit de la tastatură, să se afişeze: a) lungimea numărului obţinut; b) cifra sau cifrele din mijloc.
#include<iostream>
using namespace std;
int main()
{char a[100]={0},b[100];
int i,n;
cin>>n;
for(i=1;i<=n;i++)
{   itoa(i,b,10);
    strcat(a,b);
}
cout<<"Numarul foarte mare "<<a<<endl;
cout<<"Lungimea "<<strlen(a)<<endl;
if(strlen(a)%2==0)
cout<<"Mijloc "<<a[strlen(a)/2-1]<<a[strlen(a)/2]<<endl;
else cout<<"Mijloc "<<a[strlen(a)/2];
}
6) Se citeşte de la tastatură o propoziţie. Să se codifice, înlocuind fiecare literă cu numărul liniei şi coloanei corespunzătoare.(Litera A se înlocuieşte cu caractere 11, B cu 12. Şirul MARTI devine codificat 3211424424)

joi, 2 decembrie 2010 by DlMuresan
Categories: , , , | 1 comment

Mecatronica - 30 noiembrie

1)

#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
void main()
{
DDRB=0x09;
DDRD=0x30;
PORTB=0x00;
PORTD=0x20;
}
2)
#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
void main()
{
DDRB=0x0A;
DDRD=0x30;

_delay_ms(1000);
PORTB=0x00;
PORTD=0x20;
_delay_ms(1000);
PORTB=0x20;
PORTD=0x00;
_delay_ms(1000);


/*
while(1)
{

PORTB=0x20;
PORTD=0x00;
_delay_ms(5000);
PORTB=0x00;
PORTD=0x20;
_delay_ms(5000);
PORTB=0x20;
PORTD=0x00;
_delay_ms(5000);
PORTB=0x00;
PORTD=0x20;
_delay_ms(5000);
PORTB=0x20;
PORTD=0x00;
_delay_ms(5000);
PORTB=0x00;
PORTD=0x20;
_delay_ms(5000);

}
*/


}

marți, 30 noiembrie 2010 by DlMuresan
Categories: | 1 comment

29 noiembrie - citire din fisier, putback

1) Se citeste din fisier o propozitie cu cifre si alte caractere. Numerele pot sa apara si in interiorul cuvintelor. Sa se afiseze numerele fiecare pe cate un rand. Sa se afiseze numarul maxim si suma.

#include<iostream>
#include<fstream>
using namespace std;
int main()
{int max=0,s=0,n;
char a[100],*p,c;
ifstream fin("date.in");
while((c=fin.get()) !=EOF)
{    if(isdigit(c))
        {fin.putback(c);
        fin>>n;
    s=s+n;
    if(n>max)
        max=n;
    cout<<n<<endl;
    c=fin.get();}
}
cout<<endl<<endl<<"Suma: "<<s<<endl<<endl;
cout<<"Max: "<<max<<endl;

}
Fisierul:
Ana cumpara 12 mere,12 pere,125 flori si inca10lalele12crini5ghiocei.

2) Sa se calculeze o expresie de genul -2x+4x+10x-5x. Coeficientii lui x sunt intre -9 si +9.
#include<iostream>
using namespace std;
int main()
{double s=0;
char a[100],*p;
cin.get(a,100);
for(p=a;*p;p++)
    if(isdigit(*p))
    {if(*(p-1)=='-')
        s=s-*p+'0';
    else s=s+*p-'0';
    }
    cout<<"="<<s<<"x";
}

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

26 noiembrie - teză X B

Se citeşte un text, litere mari, mici şi spaţii. Afişaţi lungimea şirului şi numărul de consoane. Să se transforme literele mari în litere mici şi invers. Să se afişeze perechile de vocale consecutive şi numărul acestora. Să se interschimbe prima literă mică şi ultima literă mică.

#include<iostream>
using namespace std;
int main()
{int i=0,j=0;
char *p,a[256],v[100]="aeiouAEIOU",aux;
cin.get(a,100);
cout<<"Lungimea sirului: "<<strlen(a)<<endl;

for(p=a;*p;p++)
    if(strchr(v,*p)==0)
        i++;
cout<<i<<" consoane"<<endl;

for(p=a;*p;p++)
{    if(islower(*p))
        *p=toupper(*p);
    else if(isupper(*p))
        *p=tolower(*p);
}
cout<<a<<endl;
for(p=a;*p;p++)
    if(strchr(v,*p) && strchr(v,*(p+1)) && *(p+1)!=NULL)
            {cout<<*p<<";"<<*(p+1)<<endl;j++;}
cout<<j<<" perechi"<<endl;

for(i=0;i<strlen(a);)
    if(islower(a[i]))
        break;
    else i++;
   
for(j=strlen(a)-1;j>=0;)
    if(islower(a[j]))
        break;
    else j--;
aux=a[i];
a[i]=a[j];
a[j]=aux;
cout<<a<<endl;
}


Se citeşte un cuvânt. Să se afişeze cuvintele obţinute din cuvântul dat prin eliminarea succesivă a primei şi ultimei litere.
 #include<iostream>
using namespace std;
int main()
{int i=0,j=0;
char *p,a[256],v[100]="aeiouAEIOU",aux;
cin.get(a,100);
while(strlen(a)>2)
{    p=a;
    strcpy(p,p+1);
    a[strlen(a)-1]=NULL;
    cout<<a<<endl;
}
  
}

vineri, 26 noiembrie 2010 by DlMuresan
Categories: , , , , , | Leave a comment

[TEMA]Creaţie de probleme

Temă pentru data de 29 noiembrie a anului curent
Să se creeze două probleme legate de caractere şi şiruri de caractere, dintre care una va avea şi rezolvarea corectă. Pentru textul problemelor se va folosi fontul

Times New Roman mărime 11
iar pentru rezolvarea problemei se va utiliza

Courier New mărime 10

Problemele vor fi redactate într-ul document MS Word. Realizările vor fi notate în consecinţă.

miercuri, 24 noiembrie 2010 by DlMuresan
Categories: , | Leave a comment

[REZOLVARI]24 noiembrie + Recapitulare teza

Se citesc doua siruri de la tastatura. Sa se scrie un program care sa afiseze toate literele mici care apar in ambele siruri o singura data.

#include<iostream>
using namespace std;
int main()
{int i,k=0;
char a[100],b[100],aux[100]={0};
cin>>a;
cin>>b;
for(i=0;i<strlen(a);i++)
    if(islower(a[i]))
        if(strchr(aux,a[i])==0)
            if(strchr(b,a[i]))
                {aux[k]=a[i];k++;}
aux[k]=0;
cout<<aux;
}
1.
#include<iostream>
using namespace std;
int main()
{int i,k=0;
char *p,a[100],b[100],aux[100]={0};
cin.get(a,100);
p=a;
while(*p)
    {k++;p++;}
cout<<k<<" elemente";
}
2.
#include<iostream>
using namespace std;
int main()
{int i,k=1;
char *p,a[100],b[100],aux[100]={0};
cin.get(a,100);
i=0;k=1;
while(k<=strlen(a))
{
    i=0;
while(i<k)
    {cout<<a[i];
   
    i++;}
    k++;
    cout<<endl;
}
}
3.
 #include<iostream>
using namespace std;
int main()
{int i,k=1;
char *p,a[100],b[100],aux[100]={0};
cin.get(a,100);
cin.get();
cin.get(b,100);
if(a[strlen(a)-1] == b[strlen(b)-1])
    if(a[strlen(a)-2] == b[strlen(b)-2])
        cout<<"Rimeaza";
    else cout<<"NU";
else cout<<"NU";
}
4.
#include<iostream>
using namespace std;
int main()
{int i=0,j=0,k=1;
char *p,a[100],b[100],aux[100]={0};
cin.get(a,100);
for(p=a;*p;p++)
{    if(strchr("AEIOUaeiou",*p))
        i++;
    if(strchr("AEIOUaeiou",*p)==0)
        j++;
}
cout<<i<<" Vocale "<<j<<" Consoane";
}
5.
#include<iostream>
using namespace std;
int main()
{char s[100],a[100];
int i,j;
cin>>s;
cin>>a;
for(i=0;i<strlen(s);i++){
for(j=0;j<strlen(a);j++)
if(islower(s[i]) && islower(a[j]) && s[i]==a[j])
cout<<s[i];}
}
6.
#include<iostream>
using namespace std;
int main()
{int n,nn,i;
char aux,a[100],b[100],*p,*q,m[1][100];
for(i=0;i<2;i++)
    cin>>m[i];
strcpy(a,m[0]);
strcpy(b,m[1]);

for(p=a;*p;p++)
    for(q=a+1;*q;q++)
        if(*p>*q)
            {aux=*p;
            *p=*q;
            *q=aux;}
                      
for(p=b;*p;p++)
    for(q=b+1;*q;q++)
        if(*p>*q)
            {aux=*p;
            *p=*q;
            *q=aux;}
          
if(strcmp(a,b)==0)
    cout<<"DA";
else cout<<"NU";

}
7.
#include<iostream>
using namespace std;
int main()
{int i=0,j,n,k,x[26]={0},y[26];
char a[100],*p,aux;
cin.get(a,100);
strupr(a);
for(p=a;*p;p++)
    if(isalpha(*p))
        {x[*p-'A']++;
         i++;}

for(j=0;j<26;j++)
    cout<<(char)(j+'A')<<" apare de "<<x[j]<<" ori"<<endl;
cout<<endl;

}
8.
#include<iostream>
using namespace std;
int main()
{char v[100]="AEIOUaeiou",a[100],*p;
cin.get(a,100);
for(p=a;*p;p++)
    if(*(p+1)!=NULL && *(p+2)!=NULL)
    if(strchr(v,*p))
        if(strchr(v,*(p+1)) && strchr(v,*(p+2)))
            {cout<<*p<<" "<<*(p+1)<<" "<<*(p+2);
            cout<<endl;}
}
9.
#include<iostream>
using namespace std;
int main()
{int i,j=0,k;
char v[100]="AEIOUaeiou",a[100],*p,t[100][100];
cin>>a;
for(i=0;i<strlen(a);i++)
{    strcpy(t[j],a+i);
    j++;
}
for(k=j;k>=0;k--)
    cout<<t[k]<<endl;
}
10.
#include<iostream>
using namespace std;
int main()
{int i,j=0,k;
char v[100]="AEIOUaeiou",a[100],*p,t[100][100],c;
cin.get(a,100);
for(i=0;i<strlen(a);i++)
    if(a[i]==c)
        {cout<<"Prima aparitie pe pozitia: "<<i;break;}
cout<<endl;
for(i=strlen(a)-1;i>=0;i--)
    if(a[i]==c)
    {cout<<"Ultima aparitie pe pozitia: "<<i;break;}
   
}
11.
#include<iostream>
using namespace std;
int main()
{int i,j=0,k;
char v[100]="AEIOUaeiou",a[100],b[100],*p,t[100][100],c;
cin.get(a,100);
for(p=a;*p;p++)
{    b[j]=*p;j++;
    if(strchr(v,*p))
        {b[j]='p';j++;
        b[j]=*p;j++;}
}
b[j]=0;
cout<<b;
}
12.
#include<iostream>
using namespace std;
int main()
{int i,j=-1,k=0,d,n,m;
char a[100],b[100]={0},t[100][100];
cin.get(a,100);
d=0;
while(a[i]==' ')
    d++;
for(i=d;i<strlen(a);)
{    if(a[i]!=' ')
        j++;
    k=0;
    while(a[i]!=' ')
        { t[j][k]=a[i];
          k++;
          i++;
        }
    i++;
}

for(i=0;i<=j;i++)
    cout<<t[i]<<endl;
strcpy(b,t[0]);


for(i=0;i<=j;i++)
{n=strlen(b);
m=strlen(t[i]);
    if(m>n)
        strcpy(b,t[i]);
}
cout<<"Cel mai lung cuvant "<<b;
}
13.
#include<iostream>
using namespace std;
int main()
{int i,j=-1,k=0,d,n,m;
char a[100],b[100]={0},t[100][100],aux[100];
cin>>n;
for(i=0;i<n;i++)
{    cin>>a;
    strcpy(t[i],a);
}
cout<<endl;
for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    {    strcpy(a,t[i]);
        strcpy(b,t[j]);
        if(strcmp(a,b)>0)
        {    strcpy(aux,a);
            strcpy(a,b);
            strcpy(b,aux);
        }
        strcpy(t[i],a);
        strcpy(t[j],b);
    }
   
for(i=0;i<n;i++)
    cout<<t[i]<<endl;
}
14.
#include<iostream>
using namespace std;
int main()
{int i,j=-1,k=0,d,n,m;
char a[100],b[100]={0},t[100][100],aux[100],*p;
cin.get(a,100);
d=0;
while(a[d]==' ')
    d++;
while(a[d]!=' ')
    d++;
while(a[d]==' ')
    d++;

for(i=0;i<d;i++)
    cout<<a[i];

p=a+d+1;
while(*p!=' ')
    strcpy(p,p+1);
   
cout<<p;
}
15.
#include<iostream>
using namespace std;
int main()
{int i,j=-1,k=0,d,n,m;
char a[100],b[100]={0},t[100][100],aux[100],*p;
cin.get(a,100);
for(p=a;*p;)
    if(isupper(*p))
        strcpy(p,p+1);
    else p++;
cout<<a;
}

marți, 23 noiembrie 2010 by DlMuresan
Categories: , , , , | Leave a comment

Recapitulare Teza - Textul problemelor

1.Sa se calculeze lungimea unui sir de caractere fara a folosi functia strlen.
2. Sa se afiseze unul sub altul, toate prefixele proprii ale unui cuvant citit de la tastatura (prefixele unui cuvant sunt compuse din minim un caracter si maxim toate caracterele, citite de la stanga la dreapta).
3. Sa se verifice daca doua cuvinte citite de la tastatura rimeaza (spunem ca doua cuvinte rimeaza daca ultimele doua caractere sunt identice).
4. Se citeste un sir de caractere de la tastatura. Sa se scrie un program C++ care sa afiseze numarul de vocale si de consoane din sirul dat.
5. Se citesc doua siruri de la tastatura. Sa se scrie un program C++ care sa afiseze toate literele mici care apar in ambele siruri.
6. Se citesc doua cuvinte de la tastatura. Sa se scrie un program C++ care sa verifice daca cele doua cuvinte se obtin unul din celalalt prin permutarea literelor.
7. Se citeste un text de la tastatura. Sa se scrie un program C++ care sa afiseze frecventele de aparitii ale tututor literelor din textul dat.
8. Se citeste un text de la tastatura. Sa se scrie un program C++ care sa determine grupurile de trei vocale consecutive din textul dat.
9. Sa se afiseze unul sub altul, toate sufixele proprii ale unui cuvant citit de la tastatura (sufixele unui cuvant sunt compuse din minim un caracter si maxim toate caracterele, citite de la dreapta la stanga). Exemplu : Fie cuvantul ‘limbaj’, sufixele cuvantului dat sunt : ‘j’, ‘aj’, ‘baj’, ‘mbaj’, ‘imbaj’, ‘limbaj’.
10. Sa se detecteze prima si ultima aparitie a unui caracter intr-un sir de caractere.
11. Se da un cuvant, format din maxim 30 de litere mici. Sa se codifice acest cuvant in limba pasareasca, adica dupa fiecare vocala sa se adauge grupul de litere format din caracterul ‘p’ urmat de vocala respectiva. Sa se afiseze cuvantul obtinut dupa codificare. Exemplu : Fie cuvantul = ‘informatica’, dupa codificare obtinem ‘ipinfopormapatipicapa’. Se observa grupurile formate din caracterul ‘p’ si vocala respectiva
12. Sa se afiseze cel mai lung cuvant dintr-o propozitie. Cuvintele sunt separate de unul sau mai multe spatii.
13.Se citesc n cuvinte de la tastatura. Sa se ordoneze alfabetic.
14. Se citeste de la tastatura o propozitie. Sa se stearga al doilea cuvant din aceasta.
15 Se citeste de la tastatura o propozitie. Sa se stearga din ea toate literele mari.

by DlMuresan
Categories: , , , , , | 1 comment

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

19 noiembrie

La un concurs de Miss si Mister participa mai multi concurenti. La fete se citeste din fisier inaltimea, iar la baieti sportul preferat.
a) sa se afiseze nr de fete si de baieti
b) sa se afiseze inaltimea medie a fetelor
c) sa se afiseze toate sporturile o singura data

#include<iostream>
#include<fstream>
using namespace std;
int main()
{int i=0,j=0,k=0,s=0,h;
char a[100],b[100],*p;
ifstream f("miss.in");
while(f>>a)
{if(isdigit(a[0]))
    {i++;
s=s+atoi(a);}
if(isalpha(a[0]))
{    j++;
if(strstr(b,a)==0)
    {for(p=a;*p;p++)
        {b[k]=*p;k++;}
        b[k]=' ';k++;}}}
b[k]=NULL;
cout<<i<<" fete "<<j<<" baieti "<<endl;
h=(float)s/i;
cout<<h<<" inaltime medie"<<endl;
cout<<b;
}
Temă: Să se afişeze *\n**\n***....de n ori * pornind de la sirul a si concatenand sirul "*" de n ori.
#include<iostream>
using namespace std;
int main()
{int n,i;
char a[100]={0};
cin>>n;
for(i=1;i<=n;i++)
{ strcat(a,"*");
cout<<a<<endl;}
}

joi, 18 noiembrie 2010 by DlMuresan
Categories: , , , , , , , , | Leave a comment

17 noiembrie

1. a) Să se verifice dacă un şir de caractere citit de la tastatură este palindrom.

#include<iostream>
using namespace std;
int main()
{int i,j,n=0,ok=1;
char a[100],b[100];
cin.get(a,100);
i=0;
j=strlen(a)-1;
while(i<j)
{if(a[i]!=a[j])ok=0;
i++;j--;}
if(ok)cout<<"DA";
else cout<<"NU";
}
1. b) Să se verifice dacă toate cuvintele citite dintr-un fişier text sunt palindroame. Dacă da, atunci să se afişeze şi numărul lor.
#include<iostream>
#include<fstream>
using namespace std;
int main()
{int i,j,n=0,ok=1;
char a[100],b[100];
ifstream f("dlmureşan.in");
while(f>>a)
{i=0;n++;
j=strlen(a)-1;
while(i<j)
{if(a[i]!=a[j])ok=0;
i++;j--;}
}

if(ok)cout<<"DA "<<n<<" cuvinte";
else cout<<"NU";

}
2. BAC: Şirul de caractere s2 este clonă a şirului s1 dacă se poate obţine din s1 prin eliminarea tuturor apariţiilor unei singure vocale. Se citeşte un cuvând de maxim 20 de caractere, doar litere mici. Să se afişeze toate clonele cuvântului.
#include<iostream>
using namespace std;
int main()
{int i=0,j;
char a[20],b[20],c[20],*p;
cin.get(a,100);

for(p=a;*p;)
    { if(strchr("aeiou",*p) && strchr(b,*p)==0)
        {b[i]=*p;i++;}
    p++;}

b[i]=NULL;

for(j=0;j<strlen(b);j++)
    {strcpy(c,a);
     for(p=c;*p;p++)
        if(*p==b[j])
            {strcpy(p,p+1);p--;}

cout<<c<<endl;}

cout<<endl<<endl<<b;

}

miercuri, 17 noiembrie 2010 by DlMuresan
Categories: , , , , , , , | Leave a comment

15 noiembrie + Tema

Se citesc doua siruri s1 si s2. Sa se verifice de cate ori apare s2 in s1.

#include<iostream>
using namespace std;
int main()
{int n=0,a;
char s1[100],s2[100],*p,*q;
cin.get(s1,100);
cin.get();
cin.get(s2,100);
p=strstr(s1,s2);

while(p!=0)
{    p++;
    n++;
    p=strstr(p,s2);
}

cout<<n;
}
Se citesc doua cuvinte. Sa se verifice daca au acelasi prefix(minim 2 litere). Sa se afiseze cel mai lung prefix comun.
#include<iostream>
using namespace std;
int main()
{int n=0,i=0,j=0;
char a[100],b[100],*p,*q,c[100];
cin.get(a,100);
cin.get();
cin.get(b,100);

p=a;q=b;
while(*p!=NULL && *q!=NULL)
    {if(*p==*q)
        i++;
    p++;q++;}

if(i>=2)
    cout<<"DA";
else {cout<<"NU";return 0;}


p=a;j=0;
while(j<i)
    {c[j]=*p;
    p++;
    j++;}
    c[j]=NULL;
cout<<endl<<c;
}
Temă: Se citesc două cuvinte. Să se verifice dacă au acelaşi sufix. Să se afişeze cel mai lung sufix comun.
#include<iostream>
using namespace std;
int main()
{int n=0,i=0,j=0;
char a[100],b[100],*p,*q,c[100];
cin.get(a,100);
cin.get();
cin.get(b,100);
p=a+strlen(a)-1;
q=b+strlen(b)-1;

while(*p!=NULL && *q!=NULL)
    {if(*p==*q)
        i++;
    p--;q--;}
   
if(i>=2)
    cout<<"DA";
else {cout<<"NU";return 0;}

p=a+strlen(a)-1;j=0;
while(j<i)
    {c[j]=*p;
    p--;
    j++;}
   
c[j]=NULL;
cout<<endl;
for(p=c+strlen(c)-1;*p;p--)
    cout<<*p;
//cout<<endl<<c;

}

luni, 15 noiembrie 2010 by DlMuresan
Categories: , , , | Leave a comment

Probleme 12 noiembrie - non-funcţională

Se citeste o propozitie cu cuvintele formate din cifre sau litere. Sa se afiseze fiecare cuvant pe un rand si apoi sa se afiseze in ordine aflabetica.

#include<iostream>
using namespace std;
int main()
{int i=0,j=0,n,k;
char a[100],*p,b[100],d[100][100],aux[100];
cin.get(a,100);

for(p=a;*p;)
{    while(strchr(",.-!?",*p)==0 && *p!=' ')
        {if(isalpha(*p) || isdigit(*p))
            {b[j]=*p;
            j++;
            p++;}
        }
    p++;
    b[j]=NULL;
    if(b[0]!=NULL)
        {strcpy(d[i],b);
        i++;}
    j=0;
    b[j]=NULL;
}

cout<<endl;
n=i;

/*for(i=0;i<n-2;i++)
    for(j=i+1;j<n-1;j++)
        if( (strcmp(d[i],d[j])>0) )
    {        strcpy(aux,d[i]);
            strcpy(d[i],d[j]);
            strcpy(d[j],aux);
    }*/
      
for(i=0;i<n;i++)
    cout<<d[i]<<endl;      
      
}

joi, 11 noiembrie 2010 by DlMuresan
Categories: , , , , | Leave a comment

Variante Teză Fizică

by DlMuresan
Categories: | Leave a comment

Probleme 11 noiembrie

1/66 manual: Se citeste un text de la tastatura. Cuvintele se consideră separate prin spatiu, virgulă sau punct. Număraţi câte cuvinte conţine textul.

#include<iostream>
using namespace std;
int main()
{int i=0,j=0,n,k,s=0;
char a[100],b[100],c,*p;
cin.get(a,100);
if(isalpha(a[0]))
    i=1;

for(p=a;*p;p++)
    if( (isalpha(*p) || isdigit(*p)) && (*(p-1)==' ') )
        i++;
   
cout<<i;
}
2/66 manual: Se citeste o propozitie de la tastatură. Se consideră că separarea cuvintelor se face prin exact un spaţiu. Afişaţi numărul de cuvinte din text şi apoi fiecare cuvânt pe câte un rând.
#include<iostream>
using namespace std;
int main()
{int i=0,j=0,n,k,s=0;
char a[100],b[100],c,*p;
cin.get(a,100);
if(isalpha(a[0]))
    i=1;

for(p=a;*p;p++)
    if( (isalpha(*p) || isdigit(*p)) && (*(p-1)==' ') )
        i++;
   
cout<<i<<" cuvinte"<<endl;

for(p=a;*p;p++)
    if(*p!=' ')
        cout<<*p;
    else cout<<endl;
}
3/66 manual: Se citeste de la tastatură un caracter c şi apoi un text în care separarea cuvintelor se face prin cel puţin un spaţiu. Sa se numere cuvintele care conţin caracterul c şi să se afişeze cuvintele în care apare.
#include<iostream>
using namespace std;
int main()
{int i=0,j=0,n,k,s=0;
char a[100],b[100],c,*p;
cout<<"Caracterul: ";
cin>>c;
cin.ignore();
cin.get(a,100);

for(p=a;*p;)
{   
    while(*p!=' ')
        {b[j]=*p;
        j++;
        p++;}
        p++;
    b[j]=NULL;
    if(strchr(b,c))
        {cout<<b<<";";s++;}
        j=0;b[j]=NULL;
}
   
cout<<endl<<s;
}

by DlMuresan
Categories: , , , | Leave a comment

Tema 11 noiembrie

Se dă fişierul "numere.in" cu numere întregi. Să se afişeze suma cifrelor şi numerele prime.

#include<iostream>
#include<fstream>
using namespace std;
int main()
{int a,s=0,d,i,j,ok;
ifstream f("numere.in");
cout<<"Nr prime"<<endl;
while(f>>a)
{s+=a;
ok=1;
for(d=2;d<=a/2;d++)
    if(a%d==0)
        ok=0;
    if(ok==1)cout<<a<<";";
}
cout<<endl<<"Suma "<<s;
}

miercuri, 10 noiembrie 2010 by DlMuresan
Categories: , , , , | Leave a comment

10 noiembrie

Se citesc de la tastatura numele a doua fisiere text. Sa se verifice daca fisierele sunt identice.

#include<iostream>
#include<fstream>
using namespace std;
int main()
{int ok=1;
char s1[100],s2[100],c1,c2;
cin>>s1;
cin>>s2;
ifstream f(s1);
ifstream g(s2);
if(f==NULL || g==NULL)
{cout<<"eroare";return 1;}
c1=f.get();
c2=g.get();
while(c1!=EOF && c2!=EOF)
{if(c1!=c2)ok=0;
c1=f.get();
c2=g.get();}
if(c1==EOF && c2==EOF && ok==1)
    cout<<"identice";
else cout<<"nem";
}
Fisierul date.in contine un text.
a) sa se afiseze continutul lui pe ecran
b) sa se numere literele mici, cele mari si spatiile
#include<iostream>
#include<fstream>
using namespace std;
int main()
{int i=0,j=0,k=0;
char s1[100],s2[100],c,c2;
ifstream f("date.in");
if(f==NULL)
{cout<<"eroare"; return 1;}

c=f.get();
while(c!=EOF)
    {cout<<c<<endl;
    if(isupper(c))
        i++;
    if(islower(c))
        j++;
    if(c==' ')
        k++;
    c=f.get();}
   
cout<<endl<<i<<" litere mari "<<j<<" litere mici "<<k<<" spatii";
}

marți, 9 noiembrie 2010 by DlMuresan
Categories: , , | 1 comment

Recapitulare fisiere text

Moduri diferite de a citi date dintr-un fisier text

#include<iostream>
#include<fstream>
using namespace std;
int main()
{int a,b,c,x[100],nr=0;
char s[100],s1[100],c1,c2;
ifstream fin("date.in");//
if(fin==NULL)
    cout<<"Eroare";
/*
// citire numere
    while(fin>>a)
        {cout<<a<<";";
        nr++;}
cout<<endl<<"Nr elemente "<<nr<<endl;

// citire siruri de caractere fara spatii
fin>>s;
while(!fin.eof())
    {cout<<s<<";";nr++;fin>>s;}
cout<<endl<<"Nr de siruri(cuvinte, pana la spatiu):"<<nr<<endl;

//citim caractere, dar nu si cele albe(c1 este de tip char, caracter)
fin>>c1;
while(!fin.eof())
{cout<<c1<<";";nr++;fin>>c1;}
cout<<endl<<"Nr de caracrete(fara spatii albe):"<<nr<<endl;

//se citesc cuvinte(pana la spatiu)
while(fin>>s)
{cout<<s<<";";nr++;}
cout<<endl<<"NR de cuvinte: "<<nr<<endl;

//se citesc caractere, dar fara caractere albe
while(fin>>c1)
{cout<<c1<<";";nr++;}
cout<<endl<<"NR de caractere(fara cele albe): "<<nr<<endl;

//se citesc toate caracterele, inclusiv cele albe(spatiu si enter)
while(fin.get(c1))
{cout<<c1<<"|";nr++;}
cout<<endl<<"nr de caractere total="<<nr<<endl;
*/

//7.
while((c1=fin.get()) != EOF)
{cout<<c1<<";"; nr++;}

}

joi, 4 noiembrie 2010 by DlMuresan
Categories: , , , , | Leave a comment

Mecatronica - 3 noiembrie 2010

Aprindeti, pe rand, becurile rosii, verzi si galbene.

#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{DDRC=0xFF;

while(1)
{
PORTC=0x92;
_delay_ms(1000);
PORTC=0x25;
_delay_ms(1000);
PORTC=0x48;
_delay_ms(1000);
}

}
 2)
#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{int i,j;
DDRC=0xFF;

while(1)
{
i=0;
j=7;
while(i<8 && j>=0)
{

if(i==j+1)
{i++;
j--;
}

sbi(PORTC,i);
sbi(PORTC,j);
_delay_ms(400);
PORTC=0x00;
i++;
j--;

}
}

}
3) Trenuletul
#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{int i,j;
DDRC=0xFF;

while(1)
{
sbi(PORTC,0);
_delay_ms(500);
cbi(PORTC,0);

sbi(PORTC,0);
sbi(PORTC,1);
_delay_ms(500);
cbi(PORTC,0);
cbi(PORTC,1);

sbi(PORTC,0);
sbi(PORTC,1);
sbi(PORTC,2);
_delay_ms(500);
cbi(PORTC,0);
cbi(PORTC,1);
cbi(PORTC,2);

sbi(PORTC,1);
sbi(PORTC,2);
sbi(PORTC,3);
_delay_ms(500);
cbi(PORTC,1);
cbi(PORTC,2);
cbi(PORTC,3);

sbi(PORTC,2);
sbi(PORTC,3);
sbi(PORTC,4);
_delay_ms(500);
cbi(PORTC,2);
cbi(PORTC,3);
cbi(PORTC,4);

sbi(PORTC,3);
sbi(PORTC,4);
sbi(PORTC,5);
_delay_ms(500);
cbi(PORTC,3);
cbi(PORTC,4);
cbi(PORTC,5);

sbi(PORTC,4);
sbi(PORTC,5);
sbi(PORTC,6);
_delay_ms(500);
cbi(PORTC,4);
cbi(PORTC,5);
cbi(PORTC,6);

sbi(PORTC,5);
sbi(PORTC,6);
sbi(PORTC,7);
_delay_ms(500);
cbi(PORTC,5);
cbi(PORTC,6);
cbi(PORTC,7);

sbi(PORTC,6);
sbi(PORTC,7);
_delay_ms(500);
cbi(PORTC,6);
cbi(PORTC,7);

sbi(PORTC,7);
_delay_ms(500);
cbi(PORTC,7);

}

}
4) Cronometru
#include <avr/io.h>
#include <util/delay.h>
#include <compat/deprecated.h>
int main(void)
{char i;

DDRC=0xFF;
DDRA=0xF0;
PORTA=0xF0;
char a[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

while(1)
{
for(i=0;i<10;i++)
{PORTC=a[i];
_delay_ms(500);
}

}

}
5) Se plimba o linie peste tot
#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
void main()
{
DDRC=0xFF;
DDRA=0xFF;
while(1){
PORTA=0x80;
PORTC=0x01;
_delay_ms(50);
PORTA=0x40;
PORTC=0x01;
_delay_ms(50);
PORTA=0x20;
PORTC=0x01;
_delay_ms(50);
PORTA=0x10;
PORTC=0x01;
_delay_ms(50);
PORTA=0x10;
PORTC=0x02;
_delay_ms(50);
PORTA=0x10;
PORTC=0x04;
_delay_ms(50);
PORTA=0x10;
PORTC=0x08;
_delay_ms(50);
PORTA=0x20;
PORTC=0x08;
_delay_ms(50);
PORTA=0x40;
PORTC=0x08;
_delay_ms(50);

PORTA=0x80;
PORTC=0x08;
_delay_ms(50);
PORTA=0x80;
PORTC=0x10;
_delay_ms(50);
PORTA=0x80;
PORTC=0x20;
_delay_ms(50);

}
}
6) 1234
#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
void main()
{
DDRC=0xFF;
DDRA=0xFF;
while(1)
{PORTA=0x80;
PORTC=0x06;
_delay_ms(1);
PORTA=0x40;
PORTC=0x5B;
_delay_ms(1);
PORTA=0x20;
PORTC=0x4f;
_delay_ms(1);
PORTA=0x10;
PORTC=0x66;
_delay_ms(1);
}
}
7)  Subprograme pt afisarea cifrelor pe diferite pozitii
#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
void cifra(char a,char p)
{


switch(p)
{case 1: PORTA=0x80;break;
case 2: PORTA=0x40;break;
case 3: PORTA=0x20;break;
case 4: PORTA=0x10;break;
}

switch(a)
{case 0: PORTC=0x3F;break;
case 1: PORTC=0x06;break;
case 2: PORTC=0x5B;break;
case 3: PORTC=0x4F;break;
case 4: PORTC=0x66;break;
case 5: PORTC=0x6D;break;
case 6: PORTC=0x7D;break;
case 7: PORTC=0x07;break;
case 8: PORTC=0x7F;break;
case 9: PORTC=0x6F;break;
}

_delay_ms(1);

}

void main()
{
DDRC=0xFF;
DDRA=0xFF;
while(1)
{
cifra(2,1);
cifra(1,2);
cifra(1,3);
cifra(2,4);
}

}
8) "rAdU"
#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
void cifra(char a,char p)
{


switch(p)
{case 1: PORTA=0x80;break;
case 2: PORTA=0x40;break;
case 3: PORTA=0x20;break;
case 4: PORTA=0x10;break;
}

switch(a)
{case 'r': PORTC=0x50;break;
case 'A': PORTC=0x77;break;
case 'd': PORTC=0x5E;break;
case 'U': PORTC=0x3E;break;
case 4: PORTC=0x66;break;
case 5: PORTC=0x6D;break;
case 6: PORTC=0x7D;break;
case 7: PORTC=0x07;break;
case 8: PORTC=0x7F;break;
case 9: PORTC=0x6F;break;
}

_delay_ms(1);

}

void main()
{
DDRC=0xFF;
DDRA=0xFF;
while(1)
{
cifra('r',1);
cifra('A',2);
cifra('d',3);
cifra('U',4);
}


}

miercuri, 3 noiembrie 2010 by DlMuresan
Categories: | Leave a comment

Frecvenţa literelor dintr-un cuvânt(grupa 1)

Se citeşte un text. Să se afişeze frecvenţa fiecărei litere şi proporţia în care apare.

#include<iostream>
using namespace std;
int main()
{int i=0,j,n,k,x[26]={0},y[26];
char a[100],*p,aux;
cin.get(a,100);
strupr(a);
for(p=a;*p;p++)
    if(isalpha(*p))
        {x[*p-'A']++;
         i++;}

for(j=0;j<26;j++)
    cout<<(char)(j+'A')<<" apare de "<<x[j]<<" ori"<<endl;
cout<<endl;

for(j=0;j<26;j++)
    y[j]=(100*x[j])/i;

for(j=0;j<26;j++)
    cout<<(char)(j+'A')<<" apare in proportie de "<<y[j]<<"%"<<endl;
}

marți, 2 noiembrie 2010 by DlMuresan
Categories: , , , , | Leave a comment

Temă 1 noiembrie

Să se elimine caracterele inutile şi spaţiile inutile dintr-un text pentru a număra cuvintele.

#include<iostream>
using namespace std;
int main()
{int i=0,j,n,k;
char a[100],*p,aux;
cin.get(a,100);
for(p=a;*p;p++)
    if(strchr(",.!?",*p))
        *p=' ';
   
for(p=a;*p;p++)
    if(*p==' ')
        while(*(p+1)==' ')
            strcpy(p+1,p+2);
       
for(p=a;*p;p++)
        if(*p==' ' && (isalpha(*(p+1)) || isdigit(*(p+1)) ) )
            i++;
       
cout<<a<<endl;
cout<<i<<" cuvinte";
}

sâmbătă, 30 octombrie 2010 by DlMuresan
Categories: , , , | Leave a comment

Tema

#include<iostream>
using namespace std;
int main()
{int n,i,r=0;
char a[100],*p;
cin.get(a,100);
n=strlen(a);
cout<<"Vocalele din sir"<<endl;
for(p=a;*p;p++)
    if(strchr("aAeEiIoOuU",*p))
        {cout<<*p<<";";r++;}
cout<<endl;
cout<<r<<" vocale in sir"<<endl;
cout<<"Perechile de vocale"<<endl;
for(p=a;*p;p++)
    if(strchr("aAeEiIoOuU",*p) && strchr("aeiouAEIOU",*(p+1)) && *(p+1)!=NULL)
        cout<<*p<<";"<<*(p+1)<<endl;
cout<<endl;
}

joi, 28 octombrie 2010 by DlMuresan
2 comments

Fisa de lucru

#include<iostream>
using namespace std;
int main()
{int i,n,m,j,a[100],*p,*q,aux;
cout<<"Lungimea sirului=";
cin>>n;
cout<<"citire"<<endl;
p=a;
for(i=0;i<n;i++,p++)
    cin>>*p;
p=a;
cout<<"afisare"<<endl;
for(i=0;i<n;i++,p++)
    cout<<*p<<endl;
cout<<"Media aritmetica"<<endl;
p=a+1;
for(i=1;i<n-1;i++,p++)
    if((float)(*(p-1)+*(p+1))/2==*p)
        cout<<*p<<";";
cout<<endl;
cout<<"Inversarea"<<endl;
p=a;
q=a+n-1;
while(p<q)
{aux=*p;
*p=*q;
*q=aux;
p++;q--;}

p=a;
for(i=0;i<n;i++,p++)
    cout<<*p<<";";

}


#include<iostream>
using namespace std;
int main()
{int x[10]={0},i=0,j,k,m,n,p=0,r,b,c;
char a[100];
cin.get(a,100);
n=strlen(a);


if(isalpha(a[0]))
    a[0]=toupper(a[0]);
for(i=0;i<n-1;i++)
    if(a[i]==' ' && isalpha(a[i+1]))
        a[i+1]=toupper(a[i+1]);
cout<<endl<<a<<endl<<endl;
}



#include<iostream>
using namespace std;
int main()
{int n,i,r=0;
char a[100],*p;
cin.get(a,100);
n=strlen(a);
cout<<"Vocale perechi"<<endl;
for(p=a+1;*p;p++)
    if(strchr("aeiouAEIOU",*p) && strchr("aeiouAEIOU",*(p-1)))
        cout<<*(p-1)<<";"<<*p<<endl;

cout<<"Caractere egale"<<endl;
for(p=a;*p;p++)
    if(*p==*(p+1))
        cout<<*p<<";"<<*(p+1)<<endl;
p=a;
if(isalpha(*p) || isdigit(*p))
    r=1;
for(p=a;*p;p++)
    if(*p==' ' && (isdigit(*(p+1)) || isalpha(*(p+1))) )
        r++;
cout<<endl<<"Sunt "<<r<<" cuvinte in sir"<<endl;
}

by DlMuresan
Leave a comment

Cifrul lui Cezar(criptarea şi decriptarea unui cuvânt)

#include<iostream>
using namespace std;
int main()
{char s[100],*p;
int n;
cin.get(s,100);
cin>>n;
strupr(s);
for(p=s;*p;p++)
    if(isalpha(*p))
        *p=(*p-'A'+n)%26+'A';

cout<<s<<endl;

for(p=s;*p;p++)
    if(isalpha(*p))
        *p=(*p-'A'+26-n)%26+'A';

cout<<s;
}

marți, 26 octombrie 2010 by Boss
Categories: , , , | 2 comments

Numere Juxtapone

luni, 25 octombrie 2010 by DlMuresan
Categories: | Leave a comment

Mecatronica - 25 octombrie

#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{
DDRC=0xFF;
PORTC=0xFF;

}

...........

#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{DDRC=0xFF;

while(1)
{PORTC=0xFF;
_delay_ms(100);
PORTC=0x00;
_delay_ms(500);
PORTC=0x92;
_delay_ms(1000);
}
}

.......

#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{DDRC=0xFF;

while(1)
{PORTC=0xFF;
_delay_ms(100);
PORTC=0x00;
_delay_ms(100);
PORTC=0x92;
_delay_ms(100);
PORTC=0x25;
_delay_ms(100);
PORTC=0x48;
_delay_ms(100);
}
}

......

Sa aprind pa rand si apoi sa stang pe rand
#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{int i;
DDRC=0xFF;

while(1)
{

for(i=0;i<8;i++)
{
sbi(PORTC,i);
_delay_ms(100);
}

for(i=7;i>=0;i--)
{cbi(PORTC,i);
_delay_ms(100);
}

}

}

.....

#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{int i;
DDRC=0xFF;
PORTC=0x06;
PORTA=0x10;

}

....

Pentru 2

#include<avr/io.h>
#include<util/delay.h>
#include<compat/deprecated.h>
int main(void)
{int i;
DDRC=0xFF;
DDRA=0xF0;

PORTC=0x5B;
PORTA=0x10;

}

....

Cronometru
#include <avr/io.h>
#include <util/delay.h>
#include <compat/deprecated.h>
int main(void)
{int i;
DDRC=0xFF;
DDRA=0xF0;
PORTA=0x10;

while(1)
{
PORTC=0x3F;
_delay_ms(1000);
PORTC=0x06;
_delay_ms(1000);
PORTC=0x5b;
_delay_ms(1000);
PORTC=0x4F;
_delay_ms(1000);
PORTC=0x66;
_delay_ms(1000);
PORTC=0x6D;
_delay_ms(1000);
PORTC=0x7D;
_delay_ms(1000);
PORTC=0x07;
_delay_ms(1000);
PORTC=0x7F;
_delay_ms(1000);
PORTC=0x6F;
_delay_ms(1000);
}

}

....

#include <avr/io.h>
#include <util/delay.h>
#include <compat/deprecated.h>
int main(void)
{char i;

DDRC=0xFF;
DDRA=0xF0;
PORTA=0xF0;
char a[10]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

while(1)
{
for(i=9;i>=0;i--)
{PORTC=a[i];
_delay_ms(500);
}

}

}

......

#include <avr/io.h>
#include <util/delay.h>
#include <compat/deprecated.h>
int main(void)
{char i;
DDRC=0xFF;
DDRA=0xF0;
char a[10]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

while(1)
{
PORTA=0x10;
PORTC=a[1];
_delay_ms(1);
PORTC=0x00;

PORTA=0x20;
PORTC=a[2];
_delay_ms(1);
PORTC=0x00;


}

}

...

by DlMuresan
Categories: | Leave a comment

Tema 25 octombrie

 1. Se citeste o adresa de E-Mail( ex. Gansca_Sorinacio@Gmail.com). Sa se afiseze pe linii diferite id-ul si serverul ( Gansca_Sorinacio /n Gmail.com // Fara @ )

#include <iostream>
using namespace std;
int main()
{char a[100],*p,max[100],min[100];
int c=0,j,i,n,lmax=0,lmin=100;
cin.get (a,100);
cout<<endl;
n=strlen(a);
i=0;
while(a[i]!='@')
    {cout<<a[i];
    i++;}
    i++;
cout<<endl;
while(a[i])
    {cout<<a[i];
    i++;}
}
2. Se citesc 2 adrese de mail, sa se verifice daca id-urile sunt pe acelasi server.
#include <iostream>
using namespace std;
int main()
{char a[100],b[100],*p,c[100],d[100];
int j,i,m,n;
cin.get(a,100);
cin.get();
cin.get(b,100);
n=strlen(a);
m=strlen(b);
i=n-1;
j=0;
while(a[i]!='@')
    {c[j]=a[i];
    j++;
    i--;}
i=m-1;  
j=0;
while(b[i]!='@')
    {d[j]=a[i];
    j++;
    i--;}

if(strcmp(c,d))
    cout<<"Acelasi server";
else cout<<"Nu";

}

vineri, 22 octombrie 2010 by DlMuresan
Categories: , , , | Leave a comment

Probleme 22 octombrie

Sa se afiseze vocalele dintr-un cuvant

#include<iostream>
using namespace std;
int main()
{char a[100],*p;
cin.get(a,100);
for(p=a;*p;p++)
    if(strchr("AaEeIiOoUu",*p))
        cout<<*p<<" ";
}
 camelia_profesor@yahoo.com

Se citeste o prop de cel mult 100 de caractere
a) sa se afiseze toate cuvintele din propozitie, cate unul pe fiecare rand si lungimea fiecăruia
b) sa se afiseze cel mai lung si cel mai scurt cuvant
c) sa se elimine cifrele
#include <iostream>
using namespace std;
int main()
{char a[100],*p,max[100],min[100];
int c=0,j,i,n,lmax=0,lmin=100;
cin.get (a,100);
n=strlen(a);
for (i=0;i<=n;i++)
{if (isalpha(a[i]))
    {c++;cout<<a[i];}
else
    if(isalpha(a[i-1]))
        {cout<<" "<<c<<endl;
            if (c>lmax) {lmax=c;
                        strncpy (max,a+i-c,c);
                        max[c]=0;
                        }
            else if (c<lmin){lmin=c;
                             strncpy(min,a+i-c,c);
                             min[c]=0;
                             }
    c=0;}
}
cout<<endl;
cout<<"Max:"<<" "<<max<<" "<<lmax<<endl;
cout<<"Min:"<<" "<<min<<" "<<lmin<<endl;

for(p=a;*p;)
    if(isdigit(*p))
        strcpy(p,p+1);
    else p++;
cout<<endl<<a;

}

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

Atmosfera din pauză - limbaj argotic (Vanea)

O oră cam nepotrivită pentru a avea o bucată de răbdare; Bufnea, foarte şmenar, învăţa la relax. La discrepanţă a venit şi într-un mod fortuit, accidental şi subit domnul colaborator Tudor Gânscă îi arde una după ceafă, misoginul Bufnea crezând că am fost eu. A venit la mine încercând să mă lovească, dar eu i-am arătat cobra şi într-un final i-am feştelit una peste muieriţă.

miercuri, 20 octombrie 2010 by DlMuresan
Categories: | Leave a comment

Probleme 20 octombrie - anagramă

Se citesc de la tastatură două cuvinte. Să se verifice dacă unul este anagrama celuilalt.
1) se ordonează literele după codul ASCII, iar apoi se compara sirurile

#include<iostream>
using namespace std;
int main()
{int n,nn,i;
char aux,a[100],b[100],*p,*q,m[1][100];
for(i=0;i<2;i++)
    cin>>m[i];
strcpy(a,m[0]);
strcpy(b,m[1]);

for(p=a;*p;p++)
    for(q=a+1;*q;q++)
        if(*p>*q)
            {aux=*p;
            *p=*q;
            *q=aux;}
                       
for(p=b;*p;p++)
    for(q=b+1;*q;q++)
        if(*p>*q)
            {aux=*p;
            *p=*q;
            *q=aux;}
           
if(strcmp(a,b)==0)
    cout<<"DA";
else cout<<"NU";

}
2) se inregistrează frecvenţa fiecărei litere în doi vectori de tip întreg, iar mai apoi se "compară" vectorii
#include<iostream>
using namespace std;
int main()
{char a[100],b[100],*p;
int i,ok=1,x[26]={0},y[26]={0};
cin.get(a,100);
cin.get();
cin.get(b,100);

strupr(a);
strupr(b);

for(p=a;*p;p++)
    x[*p-'A']++;

for(p=b;*p;p++)
    y[*p-'A']++;

for(i=0;i<26;i++)
    if(x[i]!=y[i])
        ok=0;
   
if(ok==1)
    cout<<"DA";
else cout<<"NU";

}
3) se şterg, pe rând, literele din primul cuvânt şi(dacă există) din al doilea până când primul tablou(cuvânt) are terminatorul de şir pe poziţia 0. Dacă şirul al doilea are şi el terminatorul de şir pe poziţia 0, atunci cuvintele sunt anagrame. Altfel, nu sunt.
#include<iostream>
using namespace std;
int main()
{char a[100],b[100],*p,*q,r;
int i,ok=1,x[26]={0},y[26]={0},t,j;
cin.get(a,100);
cin.get();
cin.get(b,100);
strupr(a);
strupr(b);
p=a;

while(a[0]!=NULL)
{for(i=0;i<strlen(a);i++)
{    r=a[i];
    for(j=i;j<strlen(a);j++)
        a[j]=a[j+1];
   
for(t=0;t<strlen(b);t++)
{    if(b[t]==r)
        for(j=t;j<strlen(b);j++)
            b[j]=b[j+1];
    }
}
}

if(b[0]==0)
    cout<<"DA";
else cout<<"NU";

}

marți, 19 octombrie 2010 by DlMuresan
Categories: , , , , , | 1 comment

Temă 18 octombrie

Se citeşte un şir de caractere. 
a) să se numere cuvintele din şir
b) să se transforme fiecare literă de la începutul unui cuvânt în literă mare
c) să se afişeze frecvenţa tuturor cifrelor din text
d) să se înlocuiască fiecare cifră din text cu corespondentul ei în litere
ex: ana are   52 de mere  si 980 de   pere
a) 9 cuvinte
b) Ana Are   52 De Mere  Si 980 De   Pere
c) 0 apare de 0 ori, 1 apare de 0 ori, 2 apare de 1 ori, ..., 5 apare de 1 ori, ...
d) ana are   cincidoi de mere  si nouaoptzero de   pere

 #include<iostream>
using namespace std;
int main()
{int x[10]={0},i=0,j,k,m,n,p=0,r,b,c;
char a[100];
cin.get(a,100);
n=strlen(a);
if(isalpha(a[0]) || isdigit(a[0]))
    p=1;
for(i=1;i<n;i++)
    if(a[i]==' ' && a[i+1]!=' ')
        p++;
cout<<endl<<"Sunt "<<p<<" cuvinte in sir"<<endl;

if(isalpha(a[0]))
    a[0]=toupper(a[0]);
for(i=0;i<n-1;i++)
    if(a[i]==' ' && isalpha(a[i+1]))
        a[i+1]=toupper(a[i+1]);
cout<<endl<<a<<endl<<endl;

for(i=0;i<n;i++)
    if(isdigit(a[i]))
        {p=a[i]-'0';x[p]++;}
  
for(i=0;i<10;i++)
    cout<<"cifra "<<i<<" apare de "<<x[i]<<" ori"<<endl;
cout<<endl<<endl;


}

by DlMuresan
Categories: , , , | Leave a comment

Mecatronica - 17 octombrie

Becuri verzi

#include<avr/io.h>
void main()
{
DDRC=0xFF;
PRTC=0x25;


}
Becurile se sting si se apring
#include<avr/io.h>
#include<util/delays.h>
void main()
{
DDRC=0xFF;
while(1)
{
PORTC=0xFF;
_DELAY_MS(500);
PORTC=0x00;
_DELAY_MS(500);
}


}
#include<avr/io.h>
#include<util/delays.h>
#include<compat/deprecated.h>
void main()
{
DDRC=0xFF;
while(1)
{
for(int i=0;i<8;i++)
{
sbi(portc,i);
_delay_ms(200);
cbi(portc,i);
}
for(int i=7;i>=0;i--)
{
sbi(portc,i);
_delay_ms(10);
cbi(portc,i);
}
}

}

by DlMuresan
Categories: | Leave a comment

Problema inlocuire cifre cu litere

Să se înlocuiască toate cifrele dintr-un şir de caractere cu corespondentul lor în litere.

#include<iostream>
using namespace std;
int main()
{int x[10]={0},i=0,j,k,m,n,r=0,b,c;
char ch,aux[1000],a[1000],*p, cuv[10][1000]={"zero","unu","doi","trei","patru","cinci","sase","sapte","opt","noua"};
cin.get(a,100);
for(p=a;*p;)
    if (isdigit(*p)) {   aux[0]=NULL;   //sterg auxiliarul
                         ch=*p;         //cifra de inlocuit
                         strcpy(p,p+1);    //sterg cifra din sirul a
                         strncat(aux,a,p-a);   
                         strcat(aux,cuv[ch-'0']);
                         strcat(aux,p);
                         strcpy(a,aux);
       
                        }
       else p++;
 cout<<a<<endl;
    
    }

luni, 18 octombrie 2010 by DlMuresan
Categories: , , , | Leave a comment

Problema 15 octombrie

#include<iostream>
using namespace std;
int main()
{
    char s[100],*p;
    int i,j,k,x[10]={0},c[100]={0};
    j=0;
    cin.get(s,100);
    if(isalpha(a[0])  || isdigit(a[0]))
        i=1;
    for(p=s;*p!=0;p++)
    {
        if(isdigit(*p))
        {
            x[j]=*p-'0';
            if(isdigit(*p-1))
            {
            x[j]=x[j]*10+(*p-'0');
            }
            else j++;
        }
    }
    i=0;
    for(i=0;i<j;i++)
    {
        k=x[i];
        while(k>0)
            {k=k/10;
            c[i]++;
            }
    }
    for(i=0;i<j;i++)
        if(c[i]<=1)
            switch
       

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

Probleme pointeri - 13 octombrie

1) Se dă un tablou de n numere întregi
a) să se citească elementele tabloului folosind pointeri
b) să se afişeze elementele tabloului folosind pointeri
c) să se afişeze elementele care sunt egale cu media aritmetică a vecinilor
d) să se inverseze elementele tabloului folosind pointeri

#include<iostream>
using namespace std;
int main()
{int aux,a[100],*p,n,i,*q,k,j;
cout<<"n=";cin>>n;
p=a;
for(i=0;i<n;i++,p++)
    cin>>*p;
p=a;
cout<<endl;

for(i=0;i<n;i++,p++)
    cout<<*p<<endl;
p=a+1;
cout<<endl;

for(i=1;i<n-1;i++,p++)
    if( (float)( *(p-1)+*(p+1) )/2==*p)
        cout<<*p<<" este egal cu media aritmetica dintre "<<*(p-1)<<" si "<<*(p+1)<<endl;

if(n%2==0)  
    {p=a+n/2-1;
    q=a+n/2;}
else {p=a+n/2-1;
      q=a+n/2+1;}
cout<<endl;

for(i=0;i<n/2;i++)
{aux=*p;
*p=*q;
*q=aux;
p--;
q++;}

p=a;
for(i=0;i<n;i++,p++)
    cout<<*p<<endl;
}

marți, 12 octombrie 2010 by DlMuresan
Categories: , , , | 1 comment

Test

http://www.savefile.ro/5ayiqal2nxfl/Test_clasa_X.txt.htm

Primul rand:

1. Se citeste un sir de caractere.Sa se verifice daca poate repr o serie si un nr de buletin.
Ex: KX525025(8caractere,2 caractere-litere mari, restul cifre)

#include<iostream>
using namespace std;
int main()
{int ok=1,n,i;
char a[100];
cout<<"Sirul de caractere:"<<endl;
cin.get(a,100);
n=strlen(a);

if(n!=8)ok=0;

for(i=0;i<2;i++)
    if(isdigit(a[i]))
        ok=0;
    else if(islower(a[i]))
        ok=0;

   
for(i=2;i<n;i++)
    if(isalpha(a[i]))
        ok=0;
   
if(ok==1)
    cout<<"Sirul poate fi o serie si un numar de buletin";
else cout<<"Nu";

}


2.Se citeste un sir ce contine un test codificat, in care unele litere se repeta succesiv.
Sa se "simplifice" sirul inlocuind fiecare succesiune de litere egale, cu litera respectiva.
 AAAVVVVVVIOOOOOOONNN devine AVION

#include<iostream>
using namespace std;
int main()
{int j=0,ok=1,n,i;
char a[100],b[100];
cout<<"Sirul de caractere:"<<endl;
cin.get(a,100);
n=strlen(a);

b[j]=a[0];
j++;

for(i=1;i<n;i++)
    if(a[i]!=a[i-1])
        {b[j]=a[i];j++;}
       
b[j]=0;

cout<<b;

}


Al 2lea rand ( incomplet )

1.Sa se verifice daca un sir de caractere poate reprezenta un CNP,

Randul 2 are doar o sg problema doar ca celelalte cerinte la problema cu CNP sunt
necunoscute

#include<iostream>
using namespace std;
int main()
{int j=0,ok=1,n,i;
char a[100],b[100];
cout<<"Sirul de caractere:"<<endl;
cin.get(a,100);
n=strlen(a);

if(n!=13)
    ok=0;

for(i=0;i<n;i++)
    if(isdigit(a[i]))
        j++;  // asta e fortuita, poate fi orice instructiune care nu atribuie ceva lui ok; adica daca a[i] e digit(numar) se intampla ceva, orice; doar daca nu e numar ok va primi 0
    else ok=0;

if(ok==1)
    cout<<"Sirul poate fi un CNP";
else cout<<"Nu";

}

duminică, 10 octombrie 2010 by DlMuresan
Categories: , , , , , | Leave a comment

Orar - versiunea 1.3

Modificări(versiunea 1.2)
- Dirigenţia s-a mutat miercuri de la ora 14
- Geografia s-a mutat joi de la 14
- ordinea primelor 3 ore de miercuri: de la Info-Info-Română la Info-Română-Română
- sala orei de Română de miercuri va fi 29 şi nu 21



joi, 7 octombrie 2010 by DlMuresan
Categories: , | 2 comments

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;
   
}

by DlMuresan
Categories: , , , , | Leave a comment