ejercicios funciones y archivos

Upload: rompecaminos02

Post on 05-Jul-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 Ejercicios Funciones y Archivos

    1/5

    UNMSM – EAP Ingeniería Química-Computación Aplicada a la Ingeniería Página 1 de 5 

    Prof. Heber Helfer

    Ejercicios. Funciones y Archivos

    Función atrian – Calcula el área de un triángulo a partir de suslados sin verificar los datos.

    function area = atrian(a,b,c) 

    % atrian - Calcula el área de un triángulo a partir de 

    % los lados 

     p = (a+b+c)/2; 

    area = sqrt(p*(p-a)*(p-b)*(p-c)); 

    end  

    Función atriang – Calcula el área de un triángulo a partir de suslados verificando los datos.

    function area = atriang(a,b,c) 

    % atriang - Calcula el área de un triángulo a partir de 

    % los lados 

     p = (a+b+c)/2; 

    area = sqrt(p*(p-a)*(p-b)*(p-c)); 

    end  

    Programa que usa la función atriang

    clc 

    clear all 

    disp('Programa que calcula el área de un triángulo'); 

    disp('a partir de sus lados'); 

    x = input('Digite la longitud del primer lado: '); 

    y = input('Digite la longitud del segundo lado: '); 

    z = input('Digite la longitud del tercer lado: '); 

    a = atriang(x,y,z); 

    fprintf('El área del triángulo es %9.2f\n', a); 

  • 8/16/2019 Ejercicios Funciones y Archivos

    2/5

    UNMSM – EAP Ingeniería Química-Computación Aplicada a la Ingeniería Página 2 de 5 

    Prof. Heber Helfer

    Función que calcula el número de elementos contenidos en un archivo,el número de positivos, la suma y promedio de los elementos positivos.

    function [n,npos,suma,prom]= calcsp(x) 

    n=length(x); 

    suma=0; 

    npos = 0; 

    for i=1:n 

    if x(i) > 0 

    npos=npos+1; % cuenta positivos 

    suma=suma+x(i); % suma los positivos 

    end  

    end  

     prom=suma/npos; 

    end  

    Programa que usa el archivo calc.txt y la función calcsp para hacer cálculos de los datos positivos.

    clc 

    clear all 

    disp('Programa que calcula la suma y promedio de'); 

    disp('los datos positivos de un archivo.') 

     w=load('calc.txt'); 

    [n,np,s,p]=calcsp(w); 

    fprintf('Número total de datos: %d\n',n); 

    fprintf('Número de datos positivos: %d\n',np); 

    fprintf('La suma de los datos positivos es %8.2f\n',s); 

    fprintf('El promedio de los datos positivos es %8.2f\n',p); 

  • 8/16/2019 Ejercicios Funciones y Archivos

    3/5

    UNMSM – EAP Ingeniería Química-Computación Aplicada a la Ingeniería Página 3 de 5 

    Prof. Heber Helfer

    1.  Habiendo leído una matriz de 3 filas y 3 columnas, calcule y presente en la pantalla la suma de sus

    filas. Use bucles para el cálculo.

    Rpta.:

    Usando la función suma

    >> A=[1 2 3;4 5 6;7 8 9];

    >> sum(A,2)

    Programando

    clc 

    clear all 

     A=[1 2 3;4 5 6;7 8 9]; 

    suma = 0; 

    for i=1:3 

    % Cálculo de la suma de una fila 

    for j=1:3 

    suma = suma + A(i,j); 

    end  

    fprintf('La suma de la fila %d es %8.2f\n',i,suma); 

    % Para calcular la suma de la siguiente fila 

    % hacemos suma = 0 para que no se acumule con la anterior 

    suma=0; 

    end  

    Programa que calcula el promedio de los pH ácidos

    clc 

    clear all 

    disp('Programa que calcula el promedio de los pH ácidos.'); 

    x = load('phagua.txt'); 

    n=length(x); 

    ac=0; % Número de pHs ácidos 

    sumac=0; % Suma de los pHs ácidos 

    for i=1:n 

    if x(i)

  • 8/16/2019 Ejercicios Funciones y Archivos

    4/5

    UNMSM – EAP Ingeniería Química-Computación Aplicada a la Ingeniería Página 4 de 5 

    Prof. Heber Helfer

    Dados dos vectores de 5 elementos cada uno, a y b, calcule la sumatoria de las diferencias al cuadrado:

      25

    1

    i

    ii  ba  

    Rpta.: Usando la función sum de MATLAB 

    clcclear all a=[1 2 3 4 5]; b=[6 7 8 9 10];sum((a-b).*(a-b))

    Programando

    clc 

    clear all 

    disp('Cálculo de la sumatoria de las diferencias entre a y b'); 

    disp('elevada al cuadrado.'); 

    a=[1 2 3 4 5]; 

     b=[6 7 8 9 10]; 

    suma=0; 

    for i=1:5 

    c=a(i)-b(i); 

    suma=suma+c*c; 

    end  

    fprintf('La sumatoria es %8.2f\n', suma); 

    1.  Escriba un programa que genere un archivo de n datos reales. Luego escriba otroprograma que lea dicho archivo de datos y calcule la desviación estándar muestraldefinida como

    2

    2

    1

    i

    i

     x x

    n s

    n

     

    clc 

    clear all 

    disp('Programa que calcula la desviación estándar muestral'); x = load('ph2.txt');

     

    n=length(x); 

    sxi2=sum(x.*x); 

    sxi=sum(x); 

    s=sqrt((sxi2-sxi^2/n)/(n-1)); 

    fprintf('La desv. estándar muestral es %f\n',s); 

    fprintf('Usando la función std de MATLAB es %f\n',std(x)); 

  • 8/16/2019 Ejercicios Funciones y Archivos

    5/5

    UNMSM – EAP Ingeniería Química-Computación Aplicada a la Ingeniería Página 5 de 5 

    Prof. Heber Helfer

    Escriba un programa que genere un archivo de n datos reales. Luego escriba otro

    programa que lea dicho archivo de datos y calcule la desviación estándar muestral

    definida como

       clc

     

    clear all 

    disp('Programa que calcula la desviación estándar muestral'); 

    x = load('ph2.txt'); 

    n=length(x); 

     p=mean(x); 

    sumadifcuad=sum((x-p).^2); 

    s=sqrt(sumadifcuad/(n-1)); 

    fprintf('La desv. estándar muestral es %f\n',s); 

    fprintf('Usando la función std de MATLAB es %f\n',std(x));