infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de...

9
Pc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include <stdio.h> #include <stdlib.h> typedef enum {manevra,ianuarie,februarie,martie,aprilie,mai,iunie, iulie,august,septembrie,octombrie,noiembrie,decembrie} lunile; int an; int nr_zi,lu,zi; char ch; lunile luna,lunaprec; int main() { system("cls"); printf("Determinarea numarului zilei in an pentru o data calendaristica:\n"); do { printf("Introduceti data:ziua(1-31),luna(1-12),an(intreg): "); scanf("%d%d%d",&zi,&lu,&an); printf("Data: %d ",zi); switch(lu) { case 1: lunaprec=manevra; printf("ianuarie ");break; case 2: lunaprec=ianuarie; printf("februarie ");break; case 3: lunaprec=februarie; printf("martie ");break; case 4: lunaprec=martie; printf("aprilie ");break; case 5: lunaprec=aprilie; printf("mai ");break; case 6: lunaprec=mai; printf("iunie ");break; case 7: lunaprec=iunie; printf("iulie ");break; case 8: lunaprec=iulie; printf("august ");break; case 9: lunaprec=august; printf("septembrie ");break; case 10:lunaprec=septembrie; printf("octombrie ");break; case 11:lunaprec=octombrie; printf("noiembrie ");break; case 12:lunaprec=noiembrie; printf("decembrie ");break; }

Transcript of infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de...

Page 1: infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include  #include  typedef enum

Pc66.c

/*Aplicatie pentru tipuri definite de utilizator - enumerare*/

#include <stdio.h>#include <stdlib.h>

typedef enum {manevra,ianuarie,februarie,martie,aprilie,mai,iunie, iulie,august,septembrie,octombrie,noiembrie,decembrie} lunile;

int an;int nr_zi,lu,zi;char ch;

lunile luna,lunaprec;

int main() { system("cls"); printf("Determinarea numarului zilei in an pentru o data calendaristica:\n"); do { printf("Introduceti data:ziua(1-31),luna(1-12),an(intreg): "); scanf("%d%d%d",&zi,&lu,&an); printf("Data: %d ",zi); switch(lu) { case 1: lunaprec=manevra;

printf("ianuarie ");break; case 2: lunaprec=ianuarie;

printf("februarie ");break; case 3: lunaprec=februarie;

printf("martie ");break; case 4: lunaprec=martie;

printf("aprilie ");break; case 5: lunaprec=aprilie;

printf("mai ");break; case 6: lunaprec=mai;

printf("iunie ");break; case 7: lunaprec=iunie;

printf("iulie ");break; case 8: lunaprec=iulie;

printf("august ");break; case 9: lunaprec=august;

printf("septembrie ");break; case 10:lunaprec=septembrie;

printf("octombrie ");break; case 11:lunaprec=octombrie;

printf("noiembrie ");break; case 12:lunaprec=noiembrie;

printf("decembrie ");break; } printf("%d ",an); nr_zi=zi; for(luna=ianuarie;luna<=lunaprec;luna++) switch(luna) { case ianuarie:case martie:case mai:case iulie:case august:case octombrie: nr_zi=nr_zi+31;break; case aprilie:case iunie:case septembrie:case noiembrie:nr_zi=nr_zi+30;break; case februarie:if (an%4==0) nr_zi=nr_zi+29;

Page 2: infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include  #include  typedef enum

else nr_zi=nr_zi+28; } printf("este a %d -a zi din an.\n",nr_zi); printf("Continuati? (d/n)"); scanf("%1s",&ch); } while (ch!='n'); return 0;}

/* faceti verficarile in asa fel incit sa nupoata fi depasite limitele pentru zi, luna, an)si daca e vorba de prima zi din an sa scrie corect,nu a 1-a zi...*/

pc66a.c

/*Aplicatie pentru tipuri definite de utilizator - enumerare cu variatiuni*/

#include <stdio.h>#include <stdlib.h>

typedef enum {manevra,ianuarie,februarie,martie,aprilie,mai,iunie, iulie,august,septembrie,octombrie,noiembrie,decembrie} lunile;

int an;int nr_zi,lu,zi;lunile luna,lunaprec, lunaex;char ch;

int main() { system("cls"); printf("Determinarea numarului zilei in an pentru o data calendaristica:\n"); do { printf("Introduceti data:ziua(1-31),luna(1-12),an(intreg): "); scanf("%d%d%d",&zi,&lu,&an); printf("Data: %d ",zi); switch(lu) { case 1: lunaprec=manevra;

printf("ianuarie ");break; case 2: lunaprec=ianuarie;

printf("februarie ");break; case 3: lunaprec=februarie;

printf("martie ");break; case 4: lunaprec=martie;

printf("aprilie ");break; case 5: lunaprec=aprilie;

printf("mai ");break; case 6: lunaprec=mai;

printf("iunie ");break; case 7: lunaprec=iunie;

printf("iulie ");break; case 8: lunaprec=iulie;

printf("august ");break; case 9: lunaprec=august;

printf("septembrie ");break;

Page 3: infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include  #include  typedef enum

case 10:lunaprec=septembrie; printf("octombrie ");break;

case 11:lunaprec=octombrie; printf("noiembrie ");break;

case 12:lunaprec=noiembrie; printf("decembrie ");break;

}

/*variatii*/ putchar('\n'); /*lunaex=martie+mai; operatii aritmetice cu variabile de tip enumerare */ scanf("%d",&lunaex); /*citire scriere variabila enumerare*/ printf("%d\n",lunaex);

printf("%d ",an); nr_zi=zi; for(luna=ianuarie;luna<=lunaprec;luna++) switch(luna) { case ianuarie:case martie:case mai:case iulie:case august:case octombrie: nr_zi=nr_zi+31;break; case aprilie:case iunie:case septembrie:case noiembrie:nr_zi=nr_zi+30;break; case februarie:if (an%4==0) nr_zi=nr_zi+29; else nr_zi=nr_zi+28; } printf("este a %d -a zi din an.\n",nr_zi); printf("Continuati? (d/n)"); scanf("%1s",&ch); } while (ch!='n'); return 0;}

Pc67.c

/* Citirea si scrierea elementelor unui vector*/#include <stdio.h>#include <stdlib.h>

int main() { float v[100]; int n,i;

system("cls"); printf("Precizati numarul elementelor vectorului: "); scanf("%d",&n); for(i=0;i<n;i++){ printf("v[%d]=",i); scanf("%f",&v[i]); } printf("Elementele vectorului sunt:\n"); for(i=0;i<n;i++) printf("%.2f ",v[i]); getch(); return 0;}

Page 4: infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include  #include  typedef enum

/* scrieti programul gasind o varianta care sa nu necesiteprecizarea numarului elementelor vectorului*/

pc68.c

#include <stdio.h>#include <stdlib.h>

#define NMAX 50

int main() { int m,n,i,j; float mat[NMAX][NMAX];

system("cls"); printf("Introduceti numarul de linii ale matricei: "); scanf("%d",&m); printf("Introduceti numarul de coloane ale matricei: "); scanf("%d",&n);

printf("Introduceti valorile elementelor matricei:\n"); for(i=0;i<m;i++) for(j=0;j<n;j++) {

printf("mat[%d,%d] = ",i,j);scanf("%f",&mat[i][j]);

} putchar('\n'); for(i=0;i<m;i++) { for(j=0;j<n;j++) printf("%.2f ",mat[i][j]); putchar('\n'); }

/* elementele de pe si de sub diagonala principala*/ printf("\n\n"); printf("Elementele de pe si de sub diagonala principala\n"); for(i=0;i<m;i++) for(j=0;j<=i;j++) printf("%.2f ",mat[i][j]); getch();

/* elementele de pe diagonala secundara*/

printf("\n\n"); printf("Elementele de pe diagonala secundara\n"); for(i=0;i<m;i++) printf("%.2f ",mat[i][n-1-i]);

/* elementele de deasupra diagonalei secundare*/

printf("\n\n"); printf("Elementele de deasupra diagonalei secundare\n"); for(i=0;i<m-1;i++) for(j=0;j<m-i-1;j++)

Page 5: infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include  #include  typedef enum

printf("%.2f ",mat[i][j]); getch(); return 0;}

/* completati programul cu verificarile potrivite: pentru dimensiunile matricelor, daca e vorba de matrici patrate pentru actiunile legate de diagonale*/

pc69.c

#include <stdio.h>#include <stdlib.h>

int Citeste_vector(int *v[],char car) { int i,n;

for (i=0;i<10;i++) v[i]=0; printf("Numarul de elemente ale vectorului %c: ", car); scanf("%d",&n); for (i=0;i<n;i++) { printf("Elementul %c [%d] este: ",car,i); scanf("%d",&v[i]); } return n;}

void Afiseaza_vector(int x[],int nr,char car) { int i;

printf("Sirul %c are urmatoarele elemente: ",car); for (i=0;i<nr;i++) printf("%d ",x[i]); printf("\n");}

int Gasit(int *x[],int nr,int elem) { int i=0;

while (x[i]!=elem && i<nr) i++; return x[i]==elem;}

int main() { int a[10],b[10]; int na,nb,indice; char c[2];

system("cls"); do { na=Citeste_vector(&a,'a'); nb=Citeste_vector(&b,'b'); Afiseaza_vector(a,na,'a'); Afiseaza_vector(b,nb,'b');

Page 6: infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include  #include  typedef enum

indice=0; while((!Gasit(&b,nb,a[indice])) && indice<na) indice++; if (indice<na) printf("Sirurile au cel putin un element comun\n"); else printf("Sirurile nu au nici un element comun\n"); printf("Reluati? (d/n): "); scanf("%1s", c); } while(c[0]!='n'); return 0;}

/* Completati programul cu afisarea elementelor comune celor doua siruri */

Pc69a.c

#include <stdio.h>#include <stdlib.h>

int Citeste_vector(int *v,char car) { int i,n;

for (i=0;i<10;i++) v[i]=0; printf("Numarul de elemente ale vectorului %c: ", car); scanf("%d",&n); for (i=0;i<n;i++) { printf("Elementul %c [%d] este: ",car,i); scanf("%d",&v[i]); } return n;}

void Afiseaza_vector(int *x,int nr,char car) { int i;

printf("Sirul %c are urmatoarele elemente: ",car); for (i=0;i<nr;i++) printf("%d ",x[i]); printf("\n");}

int Gasit(int *x,int nr,int elem) { int i=0;

while (x[i]!=elem && i<nr) i++; return x[i]==elem;}

int main() { int a[10],b[10]; int na,nb,indice; char c[2];

Page 7: infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include  #include  typedef enum

system("cls"); do { na=Citeste_vector(a,'a'); nb=Citeste_vector(b,'b'); Afiseaza_vector(a,na,'a'); Afiseaza_vector(b,nb,'b'); indice=0; while((!Gasit(b,nb,a[indice])) && indice<na) indice++; if (indice<na) printf("Sirurile au cel putin un element comun\n"); else printf("Sirurile nu au nici un element comun\n"); printf("Reluati? (d/n): "); scanf("%1s", c); } while(c[0]!='n'); return 0;}

Pc70.c

/*Bubble sort */

#include <stdio.h>#include <stdlib.h>

Cit_sir(int m,int *sir_x) { int i;

for(i=0;i<m;i++) { printf("Sir [%d] = ",i); scanf("%d",&sir_x[i]); }}

Sortare(int m,int *sir_x) { int i,ordonat=0,aux;

while(!ordonat) { ordonat=1; for(i=0;i<=m-2;i++) if (sir_x[i]>sir_x[i+1]) {

aux=sir_x[i]; sir_x[i]=sir_x[i+1]; sir_x[i+1]=aux; ordonat=0;

} }}

int main() { typedef int tab_val[50];

tab_val sir; int n,i;

Page 8: infoanul1.files.wordpress.com …  · Web viewPc66.c /*Aplicatie pentru tipuri definite de utilizator - enumerare*/ #include  #include  typedef enum

system("cls"); printf("Introduceti numarul elementelor sirului care trebuie sortat: "); scanf("%d",&n); Cit_sir(n,&sir); Sortare(n,&sir); printf("Numerele ordonate crescator sunt: "); for (i=0;i<n;i++) printf("%d ",sir[i]); getch(); return 0;}

/* scrieti programul fara a indica numarul elementelor din sir;indicati ce elemente care nu apartin standardului ANSI Csunt prezente in acest program */