Programare_Procedurala

download Programare_Procedurala

of 7

Transcript of Programare_Procedurala

  • 7/22/2019 Programare_Procedurala

    1/7

    Probleme - Programare proceduralaDavid Rodica-Mihaela, grupa 104

    1. Se citesc npuncte de la tastatur, date prin coordonatele lor:x[i], y[i], i=1,n. S se afiezeperechea de puncte ntre care distana este maxim (dac exist mai multe astfel de perechi, se poate

    afia oricare dintre ele), precum i aceast distan.#include#include

    float dist (int x1, int y1, int x2, int y2)

    {

    float d;

    d = (float)sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));

    return d;

    }

    int main()

    {int n, x[100], y[100],i,j;

    float max=0, aux;

    scanf("%d", &n);

    for(i=1; i

  • 7/22/2019 Programare_Procedurala

    2/7

    #include intnrcf(longn){

    if(n == 0)return1;intnr = 0; /* declar un contor in care sa numar cifrele */while(n) /* cat timp mai pot obtine o cifra */{

    n = n/10; /* o trunchiez pe ultima */nr++; /* incrementez contorul */

    }returnnr; /* functia intoarce numarul de cifre */

    }

    intmain(void){

    longN;printf("N = "); /* afisam un mesaj pentru utilizator */scanf("%ld", &N); /* citim numarul introdus de la tastatura */

    /* afisez numarul de cifre */printf("Numarul %ld are %d cifre!\n", N, nrcf(N));

    return0;}

    3. S se scrie un program care citete un ir de numere (pozitive i negative) i afieaz numrulde numere negative i numrul de numere pozitive din irul citit.

    #include

    int main()

    {

    int N, v[100], p=0, n=0, i;

    scanf("%d", &N);

    for(i=0; i=0)

    p++;

    else

    n++;

    }

    printf("Numere negative %d\n ", n);

    printf("Numere pozitive %d\n ", p);

    return 0;

  • 7/22/2019 Programare_Procedurala

    3/7

    }

    4. Scriei o funcie care s verifice dac un numr ntregnconine cifrac. Numerele nicsuntdate ca parametri.#include

    int cifra ( int n, int c ){

    int p = 0;

    while ( n )

    {

    if ( n % 10 == c )

    {

    p = 1;

    break;

    }

    n = n / 10;

    }

    return p;

    }

    int main ()

    {

    int N , C;

    scanf("%d%d", &N, &C);

    if ( cifra (N, C) == 1)

    printf("DA");

    else printf("NU");

    return 0;

    }

    5. Se citesc numere naturale pn la ntlnirea numrului0. S se afieze toate perechile(A,B)de numere citite consecutivcu proprietatea c al doilea numr reprezint restul mpririi primuluinumr la suma cifrelor sale.

    #include

    #include

    int suma(int p)

    {

    int s=0;

    while(p!=0)

    {

    s+=(p%10);

    p=p/10;

    }

    return s;

    }

    int main()

    {

    int v[10000];

  • 7/22/2019 Programare_Procedurala

    4/7

  • 7/22/2019 Programare_Procedurala

    5/7

    7. S se scrie o funcie pentru extragerea elementelor dintr-un vector ace se regasesc si intr-unal doilea vector b. Cei doi vectori sunt neordonati. Rezultatul va fi pus ntr-un al treilea vector, c.

    #include

    int numere( int A[], int nrA , int B[] , int nrB, int C[])

    {

    int i,j,k;

    k=0;

    for(i=0; i

  • 7/22/2019 Programare_Procedurala

    6/7

    {

    a=b;

    b=r;

    r=a%b;

    }

    return b;

    }

    int cmmmc( int a, int b)

    {

    int p;

    p=(a*b)/cmmdc(a,b);

    return p;

    }

    int main()

    {

    int x1, y1, x2, y2;

    scanf("%d%d%d%d",&x1,&y1,&x2,&y2);int mult;

    mult = cmmmc(y1,y2);

    x1=x1*(mult/y1);

    x2=x2*(mult/y2);

    y1=mult;

    y2=mult;

    printf("%d %d\n%d %d",x1,y1,x2,y2);

    return 0;

    }

    9. Program pentru interclasarea a doi vectori ordonai ntr-un singur vector ordonat.

    #include

    int main()

    {

    int N1, N2, v1[1000], v2[1000], v3[2000],i, j, k ;

    scanf("%d", &N1);

    for(i=0; i

  • 7/22/2019 Programare_Procedurala

    7/7

    else

    {

    v3[k]=v2[j];

    j++;

    }

    else

    if(i>=N1){

    v3[k]=v2[j];

    j++;

    }

    else

    {

    v3[k]=v1[i];

    i++;

    }

    }

    for(i=0; i