jueves, 30 de septiembre de 2021

Leyendo datos numéricos de un archivo. Un programa sencillo en C

//
// Aquest programa recupera n dades numèriques
// d'un fitxer de disc
// Joan Aranès Clua (1992)
//
#include <stdio.h>
#include <string.h>
#include <conio.h>
main()
  {
    FILE *fp;
    int i,n;
    float a;
    float v[10];
    char s[80];

    clrscr();
    printf("nom del fitxer que vols recuperar?\n ");gets(s);
    printf("nombre de dades numèriques ?\n");scanf("%d",&n);

    fp=fopen(s,"r+t");
    for(i=0;i<n;++i)
      {
	fscanf(fp,"%f\n",&v[i]);
	printf("\nv[%d]=%f",i,v[i]);
      }

    fclose(fp);
    printf("\nLectura efectuada");
    getch();
}

Escribiendo datos numéricos en un archivo. Un programa en C.

// Aquest programa escriu n dades numèriques
// en un fitxer de disc
// Joan Aranès Clua (1992)
//
#include <stdio.h>
#include <string.h>
#include <conio.h>
main()
  {
    FILE *fp;
    int i,n;
    float a;
    float v[10];
    char s[80];

    clrscr();
    printf("nom del fitxer ?\n ");gets(s);
    printf("nombre de dades numèriques ?\n");scanf("%d",&n);

    fp=fopen(s,"w+t");
    for(i=0;i<<n;++i)
      {
	printf("v[%d]=",i);scanf("%f",&v[i]);
	fprintf(fp,"%f\n",v[i]);
      }

    fclose(fp);
    printf("\nDades guardades en el fitxer de disc");
    getch();
 }
 

Llei de radiació de Planck (1900)

//-----------------------------------------------------------------
// radiació del cos negre 
//
// Joan Aranès Clua
// data: 13/12/2001
// 
// Aquest programa calcula la densitat d'energia per unitat de volum
// (en Joule/m^3) a partir de la longitud d'ona 
//de la radiació (en metres) i de la temperatura 
// (en graus Kelvin) d'un "cos negre" - llei de radiació de Planck (1900) -

// estimació dels ordres de magnitud: 
// Pera una longitud d'ona -> 2*10^-7 m
// i una temperatura de radiació: de 2*10^3 K
// cal esperar una densitat d'energia de l'ordre de 10^-6 Joule/m^2
//
// el fitxer adicional ll_planck.jpg mostra una representació en 3D 
// d'aquesta funció (densitat d'energia (z) 
// amb les dues variables independents (lambda (x) i temperatura (y) 
// construïda amb el programa DERIVE
//-----------------------------------------------------------------


// definició de les constants físiques
#define PI 3.1416
#define _h 6.6256E-34
#define _c 2.9979E8
#define _k 1.3805E-23

// llibreries
#include <stdio.h>
#include <math.h> //pow() i exp()



void main()
{

    double T,lambda;//variables d'entrada
	double densitat; //variable de sortida

    printf("introdu\x08Bu el valor de la temperatura en graus Kelvin:\n");
    scanf("%lf",&T);

    printf("introdu\x08Bu la longitud d'ona en m:\n");
    scanf("%lf",&lambda); 
	
	//-------------------------------------------
	// càlcul de la densitat
	densitat=8*_h*_c/pow(lambda,5);
    densitat=densitat/(exp(_h*_c/lambda/_k/T)-1); 
	//-------------------------------------------
	
	printf("densitat d'energia monocrom\x085tica:%e\n",densitat);    

}