Sei sulla pagina 1di 7

Ejemplos de algoritmos y programas con sus respectivos diagramas de flujo.

Ejemplo 1:Calcule el área y el volumen de un cilindro dados su radio y altura

Diagrama de flujo: Área y volúmen de un cilindro.

Datos
r: radio del cilindro
a: altura del cilindro
Resultados:
s: área del cilindro
v: volumen del cilindro
Fórmulas:
s=2πra+2πr2
v=πr2a

En este caso, podemos elegir si desamos crear una función en Octave que calcule el volumen y el área
de cilindros o si deseamos crear un script.

Programa script: Volumen y área de un cilindro

clear
clc
r=input('Ingrese el radio del cilindro: ');
a=input('Ingrese la altura del cilindro: ');
s=2*pi*r*a+2*pi*r^2;
v=pi*r^2*a;
fprintf('El area del cilindro que corresponde a los datos ingresados son: %d\n',s)
fprintf('El volumen del cilindro que corresponde a los datos ingresados son: %d\n',v)

Función volumen y área de un cilindro

function[s,v]=volumenarea(a,r)
s=2*pi*r*a+2*pi*r^2;
v=pi*r^2*a;
fprintf('El area del cilindro que corresponde a los datos ingresados son: %d\n',s)

Métodos Numéricos (INQ-IEA-INI-IDM-IME) 1


fprintf('El volumen del cilindro que corresponde a los datos ingresados son: %d\n',v)
end

Muchos de estos ejemplos contienen la misma variable a la izquierda y a la derecha. La


variable a la derecha tiene el valor actual. Con este valor se realiza alguna operación y el
resultado es luego asignado a la misma variable que aparece a la izquierda. Este último valor
es el contenido actualizado de la variable con el que continúa el algoritmo.
Este tipo de asignación es usado frecuentemente en los algoritmos pues permite cambiar el
contenido de las variables durante la ejecución.
Cada variable puede contener un solo valor en cualquier momento de la ejecución del
algoritmo. El valor que contiene la variable es el último valor asignado o modificado.

Ejemplo 2: Dado un número positivo n calcular y mostrar la suma de los cubos de los primeros n
números naturales.

Diagrama de flujo: Suma de cubos.

n: cantidad de números naturales


x: cada número natural
s: suma de los cubos
i: conteo de ciclos

Métodos Numéricos (INQ-IEA-INI-IDM-IME) 2


Programa: suma de cubos

Primera versión

clear% borra variables


clc % limpia pantalla
n=input(‘Ingrese un numero positivo: ’); %muestra “Ingrese un numero positivo”
x=0;s=0; % establece el acumulador s en cero
for i=1:n
x=x+1;
s=s+x^3;
end
fprintf(‘La suma de los cubos de los primeros n naturales es \n’) % muestra mensaje
disp(s) % muestra resultado

Segunda versión (usando los valores del conteo de ciclos)

Variables
n: cantidad de números naturales
s: suma de los cubos
i: conteo de ciclos (son números naturales)

clear % borra variables


clc % limpia pantalla
n=input(‘Ingrese un numero positivo: ’); %muestra “Ingrese un numero positivo”
s=0; % establece el acumulador s en cero
for i=1:n
s=s+i^3;
end
fprintf(‘La suma de los cubos de los primeros n naturales es \n’) % muestra mensaje
disp(s) % muestra resultado

Métodos Numéricos (INQ-IEA-INI-IDM-IME) 3


Las estucturas de repetición son necesarias cuando un bloque del algoritmo debe ejecutarse
más de una vez para construir la solución. Es importante distinguir el uso de cada una:
Si se conoce la cantidad de ciclos que se deben realizar, entonces conviene usar la
repetición controlada con un conteo de ciclos.
Pero si el algoritmo que se propone para resolver un problema requiere repetir un bloque
pero no se puede anticipar la cantidad de ciclos que deben realizarse, entonces debería
usarse la repetición con una condición.

Ejemplo 3: Dada una cantidad inicial de bacterias, determine en que día la cantidad de bacterias excede
a un valor máximo, sabiendo que cada día se duplica esta cantidad.

Diagrama de flujo: Crecimiento de la cantidad de bacterias.

x: cantidad inicial de bacterias


m: cantidad máxima de bacterias
d: día

clear
clc
x=input(‘Ingrese la cantidad inicial de bacterias: ’);
m=input(‘Ingrese la cantidad maxima de bacterias: ’);
d=0; % establece el contador d en cero
while x<=m
x=2*x;
d=d+1;
end
fprintf(‘La poblacion de bacterias alcanzo su maximo el dia \n’) % muestra mensaje
disp(d) % muestra resultado

Métodos Numéricos (INQ-IEA-INI-IDM-IME) 4


Ejemplo 4: Para el pago semanal a un obrero se consideran los siguientes datos: horas trabajadas, tarifa
por hora y descuentos. Si la cantidad de horas trabajadas en la semana es mayor a 40, se le debe pagar
las horas extras con una bonificación de 50% adicional al pago normal. Proponga un algoritmo que se
refleje en un diagrama de flujo y construya el archivo.

Diagrama de flujo: Pago semanal a un obrero.

c: cantidad de horas trabajadas en la semana


t: tarifa por hora
d: descuentos que se aplican al pago semanal
p: pago que recibe el obrero

Programa Pago semanal a un obrero

clear
clc
c=input(‘Ingrese la cantidad de horas trabajadas por el obrero: ‘);
t=input(‘Ingrese la tarifa por hora: ’);
d=input(‘Ingrese los descuentos semanales: ’);
if c<=40
p=c*t-d
else
p=40*t+1.5*t*(c-40)-d
end
fprintf(‘El obrero recibira una paga semanal de \n’)
disp(p)

Para describir la selección de una acción entre varias opciones posibles se pueden
estructurar decisiones dentro de otras decisiones.

Métodos Numéricos (INQ-IEA-INI-IDM-IME) 5


Ejemplo 5: Supongamos que un local vende llantas para cierto tipo de carro con la siguiente política:

Cantidad Precio Unitario


Menos de 5 80
5o6 70
Más de 5 60

Genere un archivo que lea el número de llantas de una compra y muestre el valor que debe pagar.

Diagrama de flujo: Compra de llantas con descuentos. Variables:

n: cantidad de llantas compradas


p: precio unitario (80, 70 o 60)
t: valor de la compra

Programa: Compra de llantas con descuento

clear
clc
n=input('Ingrese la cantidad de llantas compradas: ');
if n<5
p=80;
fprintf('El precio por unidad es \n')
disp(p)
else

Métodos Numéricos (INQ-IEA-INI-IDM-IME) 6


if n==5 | n==6
p=70;
fprintf('El precio por unidad es \n')
disp(p)
else
p= 60;
fprintf('El precio por unidad es \n')
disp(p)
end
end
t=n*p
fprintf('El precio a pagar por las llantas compradas sera de \n')
disp(t)

Referencias

1. Ojeda, L.R: Matlab Programación. ESPOL (2014)

Métodos Numéricos (INQ-IEA-INI-IDM-IME) 7

Potrebbero piacerti anche