Anda di halaman 1dari 25

Clculo Numrico 2011

PRACTICA N1 tema: Instrucciones de asignacin e instrucciones de control. 1. Desarrolle un algoritmo que le permita calcular el rea de un triangulo conociendo las coordenadas de sus vrtices en el plano. DIAGRAMA DE FLUJO:

PSEUDOCDIGO
disp('este programa calcula rea de triangulo conociendo las coordenadas de sus vrtices en el plano') disp('------------------------------------------------------------------') x1=input('ingrese x1: '); y1=input('ingrese y1: '); x2=input('ingrese x2: '); y2=input('ingrese y2: '); x3=input('ingrese x3: '); y3=input('ingrese y3: '); %............................... d1=sqrt((x1-x2)^2+(y1-y2)^2); d2=sqrt((x1-x3)^2+(y1-y3)^2); d3=sqrt((x3-x2)^2+(y3-y2)^2); if (d1>0 & d2>0 & d3>0); A=(abs((x1*y2+x2*y3+x3*y1)-(x2*y1+x3*y2+x1*y3)))/2; disp('el area es: ') disp(A) else disp('elija otras coordenadas') end

1 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


2. Desarrolle un algoritmo que le permita calcular el rea de un cuadrilatero conociendo las coordenadas de sus vrtices en el plano. DIAGRAMA DE FLUJO:

inicio

escribir A

FIN

PSEUDOCDIGO
disp('este programa calcula el area de un cuadrilatero') disp('------------------------------------------------') x1=input('ingrese x1: '); y1=input('ingrese y1: '); x2=input('ingrese x2: '); y2=input('ingrese y2: '); x3=input('ingrese x3: '); y3=input('ingrese y3: '); x4=input('ingrese x4: '); y4=input('ingrese y4: '); A=(abs((x1*y2+x2*y3+x3*y4+x4*y1)-(x2*y1+x3*y2+x4*y3+x1*y4)))/2; disp('el area es: ') disp(A)

2 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


3. Desarrolle un algoritmo que le permita calcular la pendiente de una recta conociendo el ngulo de inclinacin. DIAGRAMA DE FLUJO

inicio leer

escribir error

escribir A

FIN PSEUDOCDIGO
disp('este programa calcula la pendiente de una recta conociendo el angulo de inclinacion') disp('-------------------------------------------------------------------') a=input('ingrese en angulo de inclinacion: '); if a~=90 & a~=270; m=tand(a); fprintf('la pendiente del angulo %d es %12.4f\n\n\n',a,m); else fprintf('error cambia de angulo\n\n\n') end

3 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


4. Desarrolle un algoritmo que le permita determinar el rea y el volumen de un cilindro de radio 'r' y altura 'h' se leen desde el teclado. DIAGRAMA DE FLUJO

inicio leer

escribir error

escribir A ,V

FIN PSEUDOCDIGO
disp('Este programa determina el area y el volumen de un cilindro') disp('------------------------------------------------------------') r=input('ingrese el valor del radio: '); h=input('ingrese el valor la altura: '); if r>0 & h>0; A=2*pi*r*(r+h); V=pi*r^2*h; fprintf('el valor del area es %d12.4f y el valor del volumen es %d12.4f\n\n\n',A,V) else fprinft('elija otros valores para el radio y la altura\n\n\n') end

4 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


5. Desarrolle un algoritmo que le permita leer un valor cualquiera N y escribir en la pantalla si dicho numero es positivo o negativo. DIAGRAMA DE FLUJO

inicio leer v F

escribir es positivo escribir escribir A ,V neutro escribir es negativo

FIN

PSEUDOCDIGO
disp('este programa determina siun numero es positivo o negativo') disp('----------------------------------------------------------') n=input('ingrese el numero: '); if n>0 fprintf('el numero %5.2f es positivo \n\n\n',n); elseif n==0 fprintf('es neutro'); else fprintf('el numero %5.2f es negativo\n\n\n ',n); end

5 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


6. Desarrolle un algoritmo que le permita leer dos valores A y B, y escriba cual de los dos valores ledos es mayor. DIAGRAMA DE FLUJO

inicio leer F v

F escribir son iguales escribir B es mayor

escribir A es mayor

FIN

PSEUDOCDIGO
disp('este programa permite ingresar dos nmeros y ver cual es mayor') disp('--------------------------------------------------------------') %ingresar dos nmero y ver cual es el mayor a=input('ingrese el primer numero: '); b=input('ingrese el segundo numero: '); if a~=b; if a>b fprintf('elnumero %12.4f es mayor que %12.4f\n\n\n',a,b) else fprintf('elnumero %12.4f es mayor que %12.4f\n\n\n',b,a) end else fprintf('los numeros son iguales\n\n\n') end

6 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


7. Desarrolle un algoritmo que le permita leer dos valores enteros A y B, e indicar si la suma de los dos es par. DIAGRAMA DE FLUJO inicio leer

escribir es par

escribir es impar

FIN

PSEUDOCDIGO
disp('este programa saber si un numero es par o impar') disp('-----------------------------------------------') %saber si un numero es par o impar a=input('ingrese el numero: '); if rem(a,2)==0; fprintf('el numero %8.4f es par\n\n\n',a) else fprintf('el numero %8.4f es impar\n\n\n',a) end

7 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


8. Desarrolle un algoritmo que le permita leer tres valores enteros A , B y C e indicar cuales el mayor para este caso se asume que los tres valores ledos por el teclado son diferentes. DIAGRAMA DE FLUJO

inicio leer V F

escribir A es mayor

escribir C es mayor

escribir B es mayor

escribir C es mayor

FIN

PSEUDOCDIGO
disp('este programa permite saber cul es el mayor de tres nmeros') disp('-------------------------------------------------------------') %dado tres numeros saber cual es mayor a=input('ingrese el primer numero: '); b=input('ingrese el segundo numero: '); c=input('ingrese el tercer numero: '); if a>b; if a>c fprintf('el numero %12.4f es mayor de los numeros \n\n\n',a); else fprintf('el numero %12.4f es mayor de los numeros \n\n\n',c) end elseif b>c fprintf('el numero %12.4f es mayor de los numeros \n\n\n',b); else fprintf('el numero %12.4f es mayor de los numeros \n\n\n',c); end

8 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


9. Desarrolle un algoritmo que le permita leer tres valores enteros A , B y C e indicar si la suma dos nmeros cualquiera es igual al tercero. DIAGRAMA DE FLUJO inicio leer

F V F

escribir C=A+B escribir A=B+C escribir B =A+C escribir error V F

PSEUDOCDIGO

FIN

disp('este programa permite saber si la suma de dos numeros es igual al tercero ') disp('-----------------------------------------------------------------') a=input('ingrese el primer numero: '); b=input('ingrese el segundo numero: '); c=input('ingrese el tercer numero: '); x=a+b; y=b+c; z=a+c; if x==c; fprintf('la suma de %7.4f y %7.4f es igual a %7.4f \n\n\n',a,b,c); elseif y==a fprintf('la suma de %7.4f y %7.4f es igual a %7.4f \n\n\n',b,c,a); elseif z==b fprintf('la suma de %7.4f y %7.4f es igual a %7.4f \n\n\n',a,c,b); else fprintf('ninguno es la suma de los otros dos \n\n\n'); end

9 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


10. Desarrolle un algoritmo para calcular las races de la ecuacin: DIAGRAMA DE FLUJO inicio leer F V

escribir C=A+B

F F

V V

escribir

escribir

FIN

10 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


PSEUDOCDIGO
disp('este programa calcula las raices de una ecuacion cuadratica ') disp('------------------------------------------------------------') %hallar las raices de una cuadratica a=input('ingrese el coeficiente cuadratico: '); b=input('ingrese el coeficiente lineal: '); c=input('ingrese el termino independiente: '); disp('-----------------------------------------------------------')

if a~=0 d=b^2-4*a*c; if d>=0 if d==0 x1=-b/(2*a); x2=x1; fprintf('las raices %6.2f y %6.2f son iguales \n\n\n ',x1,x2) else x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); fprintf('las raices son x1: %6.2f y x2: %6.2f \n\n\n ',x1,x2) end else d=-d; pr=-b/(2*a); pI=(sqrt(d))/(2*a); fprintf('las raices son x1: %6.2f + %6.2fi y x2: %6.2f - %6.2fi \n\n\n ',pr,pI,pr,pI) end else x1=-c/b; fprintf(' es una ecuacion lineal cuya raiz es:%6.2f \n\n\n ',x1) end

11 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


PRACTICA N 2 TEMA: Instrucciones repetitivas y arreglos. 1. Disee un diagrama de flujo de programas que le permita realizar la suma a los primeros N nmeros impares. DIAGRAMA DE FLUJO.

inicio leer

S=0

escribir S FIN

PSEUDOCDIGO
disp('este programa realiza la suma de los n numeros impares') disp('------------------------------------------------------') %este programa realiza la suma de los n numeros impares n=input('ingrese el n-esimo lugar: '); s=0; disp('------------------------------------------------------') for i=1:1:n; s=s+2*i-1; end fprintf('la suma es: %5.2f \n\n\n',s)

12 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


2. Disee un diagrama de flujo de programas que le permita calcular la factorial de un numero entero. DIAGRAMA DE FLUJO.

inicio leer V F V F

fact=1

fact=1 escribir fact escribir fact

escribir no existe factorial de numero negativo

FIN

PSEUDOCDIGO
disp('este programa calcula el factorial de un numero entero') N=input('ingrese el valor de N: '); if (N>=1) fact=1; for i=1:N; fact=fact*i; end fprintf('el factorial de %d es: %d\n\n\n',N,fact); else if N==0; fact=1; fprintf('el factorial de %d es: %d\n\n\n',N,fact); else fprintf('el factorial de %d no existe\n\n\n',N); end end

13 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


3. Disee un diagrama de flujo de programas que luego de ingresar los nombres y los sueldos de los 'n' trabajadores de una empresa, muestre el nombre, el descuento (13% del sueldo bruto por AFP) y el total liquido a pagar. DIAGRAMA DE FLUJO. inicio leer q

leer Ni, Si

escribir Ni, Di,Sti

FIN

14 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011

PSEUDOCDIGO
q=input('ingrese el numero de trabajadores: '); nombre1=''; for i=1:q nombre2=input('ingrese nombre del trabajador: ','s'); nombre1=char(nombre1,nombre2); s(i)=input('ingrese el sueldo del trabajador: '); end for i=1:q d(i)=0.13.*s(i); st(i)=s(i)-d(i); end disp('===========================================================') disp('PLANILLA DE PAGOS') for i=1:q fprintf('el trabajador %10s percibe un sueldo de %9.3f y un descuento %9.3f \n\n\n',nombre1(i+1,:),st(i),d(i)); end

15 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


4. En el curso de calculo numrico, 36 estudiantes rindieron su primera evaluacin. disee un diagrama de flujo de programa que muestre: a) La nota promedio b) El nmero de estudiantes aprobados (nota mayor o igual a 10.5) DIAGRAMA DE FLUJO. inicio ap=0 S=0

leer N

ap=ap+1

escribir desaprobado

escribir p, ap FIN

PSEUDOCDIGO
ap=0; s=0; for i=1:36 n=input('ingresar nota: '); s=s+n; if n>=10.5 ap=ap+1; else disp('desaprobado') end end p=s/36; fprintf('la nota promedio es: %9.2f y son %9.2f los aprobados \n\n\n',p,ap)

16 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


5. Disee un diagrama de flujos de programas que le permita leer 'n' valores, sumar todos los valores y decir cul es el mayor, cual es el menor y cul es la suma. DIAGRAMA DE FLUJO. inicio leer

escribir

FIN

17 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011 PSEUDOCDIGO


%suma los valores de n numeros e indica cual es el mayor y cual es el menor n=input('ingrese el enesimo lugar: '); for i=1:n a(i)=input('ingrese el numero: '); end s=0; for i=1:n s=s+a(i); end for j=1:(n-1) for k=1:(n-j) if a(k)>a(k+1) aux=a(k); a(k)=a(k+1); a(k+1)=aux; end end end fprintf('la suma de los n numeros es %5f\n',s) fprintf('el menor numero es %5f\n ', a(1)) fprintf('el mayor numero es %5f\n ', a(n))

18 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


6.

Disee un diagrama de flujos de programas que le permita leer 'n' valores, y escribir independientemente el promedio de los pares y de los impares DIAGRAMA DE FLUJO. inicio leer n

leer a(i) V F

escribir 'nulo'

escribir pp, pi

FIN

19 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011 PSEUDOCDIGO


n=input('ingrese el n-esimo lugar: '); for i=1:n a(i)=input('ingrese el numero: '); end if a(i)==0 disp('es nulo'); else s1=0; c1=0; s2=0; c2=0; for i=1:n if rem(a(i),2)==0 s1=s1+a(i); c1=c1+1; else s2=s2+a(i); c2=c2+1; end end pp=s1/c1; pi=s2/c2; end disp('---------------------------------------------------------') fprintf('el promedio de los pares es %1f:\n\n\n',pp); fprintf('el promedio de los impares es %1f:\n\n\n',pi);

20 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


7. Disee un diagrama de flujos de programas que le permita sumar los N primeros trminos de la sucesin.

DIAGRAMA DE FLUJO. inicio leer N ,x

escribir S

PSEUDOCDIGO

FIN

%PROGRAMA QUE CALCULA LA SUMA SE LA SERIE: X=input('ingrese el valor para x: '); n=input('ingrese el n-esimo termino que desea sumar: '); s=1; for i=2:n f=1; p=1; for k=1:(i-1) p=p*X; f=f*k; end s=s+(p)/f; end disp('---------------------------------------------------------') fprintf('el suma de los %1f primeros terminos es %1f:\n\n\n',n,s);

21 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


8. Disee un diagrama de flujos de programas que le permita encontrar la suma de elementos de la diagonal principal de una matriz cuadrada. DIAGRAMA DE FLUJO. inicio leer

escribir S FIN

PSEUDOCDIGO
n=input('ingrese el grado de la matriz cuadrada: '); for i=1:n for j=1:n a(i,j)=input('igrese elemento de la matriz: '); end end s=0; for i=1:n for j=1:n if i==j s=s+a(i,j); else disp('error'); end end end disp('---------------------------------------------------------') fprintf('la suma de los elementos de la diagonal es %1f:\n\n\n',s);

22 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


9. Disee un diagrama de flujos de programas que le permita encontrar el producto de dos matrices. inicio leer m, n

leer

leer p, q

leer

escribir 'no se puede multiplicar'

escribir

23 Universidad Nacional Jorge Basadre Grohmann


FIN

Clculo Numrico 2011 PSEUDOCDIGO


n=input('ingrese el valor de n: '); m=input('ingrese el valor de m: '); for i=1:n for j=1:m a(i,j)=input('ingrese elemento de la matriz: end end p=input('ingrese el valor de p: '); q=input('ingrese el valor de q: '); for k=1:p for l=1:q b(k,l)=input('ingrese elemento de la matriz: end end if m==p for i=1:n for j=1:m s=0; for k=1:p s=s+a(i,k)*b(k,j); c(i,j)=s; disp(c(i,j)); end end end else disp('las matrices no se pueden multiplicar') end

');

');

24 Universidad Nacional Jorge Basadre Grohmann

Clculo Numrico 2011


10. Disee un diagrama de flujos de programas que le permita encontrar el mayor y el menor elemento de un arreglo unidimensional. DIAGRAMA DE FLUJO. inicio leer n leer

escribir

FIN

PSEUDOCDIGO
n=input('ingrese el numero de elementos: '); for i=1:n a(i)=input('ingrese elemento del arreglo: '); end for j=1:(n-1) for k=1:(n-j) if a(k)>a(k+1) aux=a(k); a(k)=a(k+1); a(k+1)=aux; end end end fprintf('el menor numero es %5f\n ', a(1)) fprintf('el mayor numero es %5f\n ', a(n))

25 Universidad Nacional Jorge Basadre Grohmann