Está en la página 1de 4

PROBLE

PROBLEMA
N1:
MAS
Calcule la variacin del pH de 0.50 L de una solucin reguladora cuando se
adiciona
agua. Considrese el par regulador CH COOH/CH COO con
RESUELT
concentraciones de 0.10 M y 0.12 M respectivamente. El volumen se varia en el
rango 0.500 L V 10.5 L con repetidas adicionales de 2.00 L de agua. Para
OS DE
solucionar el problema se parte del algoritmo:
[H O ] + (K + C )[ H O ] K C = 0
WHILE
3

+ 2

Donde:
Ca=0.10x0.50/V
Cb=0.12x0.50/V
Ka=1.8x10-5
SOLUCION:

% Variacion del pH de una solucion reguladora con la adicion de agua


clear
clc
% Datos del programa
Ka= 1.8e-05;
% Constante de equilibrio
% Titulo de cada columna de resultados
fprintf('V(mL)
pH\n\n');
% Ciclo while para definir la variacion del volumen
V=0.50;
while V<=10.50
Ca=0.10*0.50/V;
% Concentracion de la especie acida
Cb=0.12*0.50/V;
% Concentracion de la especie basica
H=(-(Ka+Cb)+sqrt((Ka+Cb)^2+4*Ka*Ca))/2;
pH=-log10(H);
% Se escriben resultados
fprintf('%5.2f',V);
fprintf('%15.4f\n',pH);
V=V+2.00;
end

PROBLEMA N2:

Dado el siguiente vector, hacer un programa que indique en que posiciones se


encuentran los nmeros negativos.
V=[1, 2, 25, -12, -8, 32, -4, 88, -7,-21 ]
SOLUCION:
% programa que imprime las posiciones con nmeros negativos en un vector
clc;
V=[1, 2, 25, -12, -8, 32, -4, 88, -7,-21 ];
i=1;
while (i<=length(V))
if(V(i)<0)
fprintf('En la posicin %d hay un nmero negativo \n' , i )
end
i=i+1;
end

PROBLEMA N3:
Realizar un programa que calcule el factorial de un nmero N.
SOLUCION:
N=input ('dame un numero para multiplicar= ');
S=0 ;
%Dar un valor para que realice la multiplicacion en forma de bucle
while S<=10
A=N*S;
disp (A)
S=S+1;
end
disp ('Fin de programa');

PROBLEMA N4:
Hacer un programa que recoja nmeros del usuario hasta que se introduzca un
0 y despus devuelva la media de los nmeros introducidos.
SOLUCION:
contador=0;
n=input('Introduce un numero=');
sumatorio=0;
while(n~=0)
sumatorio=sumatorio+n;
contador=contador+1;
n=input('Intoduce un numero=');
end
med=sumatorio/contador;
fprintf('La media vale %f',med)

PROBLEMA N5:
Hacer un programa que pida un nmero hasta que este nmero sea mayor que
0 indicando con un mensaje que el nmero introducido es mayor que 0.Caso
contrario que pida reintroducir otro valor.
SOLUCION:
n=input('Dame un valor: ');
if n>0
disp ('El numero introducido es mayor que cero')
else
while n<=0
n=input('Reintroduce el valor correcto: ');
end
disp('El numero introducido es mayor que cero')
end
disp('Fin del programa')

PROBLEMA N6:

Realizar un programa que pida un nmero y que combinado combinado con


otros dos nmeros menores o iguales a este nmero, te del valor del nmero
que se pidi.
SOLUCION:
N=input ('Dame un valor=');
M=0;
while M<=N
S=0;
while S<=N
if N==M+S;
fprintf('Combinacion: %d=%d+%d\n',M+S,M,S)
%disp(M)
%disp(S)
end
S=S+1;
end
M=M+1;
end
disp ('Fin de programa')

PROBLEMA N7:

Realizar un programa que sume una serie de nmeros ingresados por el usuario.
Dicha suma se realizara cuando el usuario introduzca el nmero 0.

SOLUCION:
% programa que suma nmeros mientras no sean 0
n=1;
sumatoria=0;
while(n ~= 0)
n=input('ingrese un nmero, para terminar digite 0:');
sumatoria=sumatoria + n;
end
disp('la suma de los numeros ingresados es :')
disp(sumatoria);

PROBLEMA N8:
Crear un programa que realice lo siguiente: Una empresa le paga a sus
empleados una comisin segn el valor de las ventas realizadas en el mes. La
comisin se paga de la siguiente manera: si vendi 400 millones o menos le
paga 1% de comisin del valor de la venta, si vendi ms de 400 millones y
menos de 1000 le paga 3%, si vendi 1000 o ms le paga 5%. Dado un vector
con las ventas de los 10 vendedores de la empresa realizar un programa usando
ciclos que presente una tabla con dos columnas, la primera columna contendr
el valor de las ventas y la segunda el valor de la comisin. Luego realizar un
grfico de ventas contra comisiones: ventas=[2000 5000 100 800 300 1000
2200 350 50 1300]
SOLUCION:
clc; % limpia pantalla
clear all; % borra variables
ventas=[2000 5000 100 800 300 1000 2200 350 50 1300]; % vector de ventas
i=1; % se encargar de recorrer todas las posiciones del vector ventas
while(i <= length (ventas)) % length(ventas) = 10 ya que el vector tiene
10 elementos.
if(ventas(i)<=400)
comisiones(i)=ventas(i).*0.01;
elseif(ventas(i)>400 && ventas(i)<1000)
comisiones(i)=ventas(i).*0.03;
else
comisiones(i)=ventas(i).*0.05;
end
i=i+1;
end
% creamos la tabla a graficar
tabla=[ventas' comisiones'];
disp('las comisiones por venta son: ');
disp(tabla);
plot(ventas , comisiones, 'b*')