20 Aug 2012

Introducere C - probleme rezolvate (2)

Salutare,
astazi continuam seria problemelor rezolvate.

1. De la tastatură se introduce un număr real ce reprezintă măsura unui unghi în radiani. Să se scrie un program pentru conversia acestuia în grade, minute şi secunde sexagesimale.

#include <stdio.h>

// asa ne definim noi o constanta
#define PI 3.14159265

int main(){
   // definire variabile
   float radiani, gf, mf;
   int grade, minute, secunde;

   printf(“Introduceti numarul de radiani: “);
   scanf("%f", &radiani);

   /** aici avem valoare introdusa de la tastatura
   * mai trebuie sa facem calculele necesare conversiei
   * primele doua initializari sunt interesante intrucat, mai intai, calculam
   * valoarea reala (cu virgula) a expresiei, iar apoi obtinem si partea intreaga a rezultatului
   * in variabila de tip int
   */
   grade = gf = radiani * 180 / PI;
   minute = mf = (gf - g) * 60;
   secunde = (mf - m) * 60;

   printf("%f radiani inseamna %d grade %d minute %d secunde.\n", radiani, grade, minute, secunde);

   return 0;
}

2. Să se calculeze abaterea media patratică a unor valori rezultate în urma unui experiment. Formula de calcul poate fi găsită aici, la finalul primei secțiuni. Pentru usurință, aceasta poate fi puțin prelucrată făcând reducerile necesare și dând factor comun.

#include <stdio.h>
#include <math.h>

int main(){
   int n,i;
   double a, suma1 = 0, suma2 = 0, amp;
  
   printf("Introduceti numarul valorilor: ");
   scanf("%d",&n);

   for (i=0;i<n;i++) {
      printf("Introduceti valoarea %d: ",i+1);
      scanf("%lf",&a);
      suma1+=a*a;
      suma2+=a;
    }

    amp=sqrt((n * suma1 - suma2 * suma2) / (n * (n - 1)));
    printf("Abaterea medie patratica este %lf.\n",amp);
    return 0;
}

Pana data viitoare, eu va doresc numai bine.

No comments:

Post a Comment