Orar semigroup #2

Orar semigroup #2

Archive for noiembrie 2010

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