Sie sind auf Seite 1von 13

RESUMEN SISTEMA DE COMPUTACION PEP 1

Cadenas de control para "fprintf"


%d = numero entero
%f = numero flotante
%c = carcter
%s = string

OPERADORES
== : igual a
|| :
&& : y
~= : distinto de
>,< : mayor o menor

(1) Secuencia: Conjunto de instrucciones agrupadas para resolver un problema.


Problema: Sumar 2 numeros enteros y mostrar el resultado
Seudo Codigo:
0. Inicio
1. Leer (A)
2. Leer (B)
3. C=A+B
4. Mostrar C
5. Fin
MatLab:
A=input('Ingrese el valor de A: ');
B=input('Ingrese el valor de B: ');
C=A+B;
disp(C);
(2) Bifurcaciones: Son estructuras de control que permiten tomar decisiones.
(si; si-sino; casos)
(2.A) Si - Sino
Problema: Identificar el mayor de 2 numeros enteros.
Seudo Codigo:
0. Inicio
1. Leer(A)
2. Leer(B)
3. Si (A==B)
disp('Los numeros son iguales')
Si (A>B)
disp(A)
Sino
disp(B)
Fin Si
4. Fin
MatLab:
A=input('Ingrese el valor de A: ');
B=input('Ingrese el valor de B: ');
if (A==B)
disp('Los numeros son iguales')
elseif (A>B)
disp(A)
else disp(B)
end

MatLab: (de otra forma):


A=input('Ingrese el valor de A: ');
B=input('Ingrese el valor de B: ');

if (A==B)
disp('Los numeros son iguales')
elseif (A>B)
fprintf('El numero mayor es A=%d\n', A);
else fprintf('El numero mayor es B=%d\n', B);
end
(2.B) Casos
Casos n:
<op-1>: <Instruccion 1>
.
.
<op-n>: <Instruccion n>
.
.
.
En otro caso: <Instruccion n+1>
Fin Casos
Problema: Determinar a qu vocal corresponde una determinada letra ingresada por el
usuario.
Seudo Codigo:
0. Inicio
1. Leer (L)
2. Casos (L)
'A': Mostrar('La letra es A')
'E': Mostrar('La letra es E')
'I': Mostrar('La letra es I')
'O': Mostrar('La letra es O')
'U': Mostrar('La letra es U')
En otro caso: Mostrar('No es vocal')
Fin Casos
3. Fin
MatLab:
L=input('Ingrese una letra: ','s');
L=upper(L);
switch L
case 'A', fprintf('La letra es la vocal A\n');
case 'E', fprintf('La letra es la vocal E\n');
case 'I', fprintf('La letra es la vocal I\n');
case 'O', fprintf('La letra es la vocal O\n');
case 'U', fprintf('La letra es la vocal U\n');
otherwise, fprintf('La letra no es una vocal\n');
end

(3) Ciclos: Ejecutan un conjunto de instrucciones hasta que se cumpla una condicion.
En todo Ciclo hay una variable de control que marca el paso del ciclo
Sintaxis:

Mientras <Condicion>

<Instrucciones>
Fin Mientras
Problema: Sumar los "n" primeros pares.
Seudo Codigo:
0. Inicio
1. Leer (n)
2. cont = 1%Variable de Control
3. Suma = 0%Acumulador
4. Mientras (cont<=n)
Suma = Suma + 2*cont
cont = cont + 1;
Fin Mientras
5. Mostrar (Suma)
6. Fin
MatLab:
n=input('Ingrese numero para sumar esa misma cantidad de primero pares: ');
cont=1;
suma=0;
while (cont<=n)
suma = suma+2*cont;
cont= cont + 1;
end
fprintf('La suma de los %d primeros pares es %d\n',n,suma);
(3.B) Para : En la sentencia de control Para, el incremento y la iniciacion de la variable de
control esta implita en la Instruccion
Sintaxis:
Para Vc = Vi hasta Vf con Inc = n hacer
<Instrucciones>
Fin Para
Vc = Variable de control
Vi = Valor inicial de la variable de control
Vf = Valor final de la variable de control
Inc = Incremento que se le da a la variable de control
Seudo Codigo:
0. Inicio
1. Leer (n)
2. suma = 0
3. Para cont = 1 hasta n con Inc = 1 Gacer
suma = suma + 2*cont
Fin Para
4. Mostrar suma
5. Fin
MatLab:
n=input('Ingrese el numnero de pares a sumar: ');
suma = 0;
for cont=1:1:n %cont=1:n
suma = suma+2*cont
end
fprintf('La suma de los %d primeros pares es %d\n',n,suma);

LISTA DE PROGRAMAS
Escriba un programa en MatLab que solicite al usuario el ingreso de una
determinada palabra y determine la cantidad de cada una de las vocales existente
en ella .

palabra=input('Ingrese una palabra para contar sus vocales: ','s');


palabra = upper(palabra);
z = length(palabra)
suma = 0
contA = 0;
contE = 0;
contI = 0;
contO = 0;
contU = 0;
for i = 1:1:z
switch palabra(i)
case 'A', contA = contA + 1;
case 'E', contE = contE + 1;
case 'I', contI = contI + 1;
case 'O', contO = contO + 1;
case 'U', contU = contU + 1;
end
end
fprintf('El numero de A en la palabra %s es %d\n',palabra, contA);
fprintf('El numero de E en la palabra %s es %d\n',palabra, contE);
fprintf('El numero de I en la palabra %s es %d\n',palabra, contI);
fprintf('El numero de O en la palabra %s es %d\n',palabra, contO);
fprintf('El numero de U en la palabra %s es %d\n',palabra, contU);
Escriba un programa en MatLab que permita determinar si un numero es o no
primo
n = input('Ingrese un numero para determinar si es primo: ')
primo=1; %significa que el numero es primo
for cont = 2:fix(n/2)
if mod(n, cont) == 0
primo = 0;
break; %Quiebra un ciclo
end
end
if primo %es lo mismo que escribir primo==1
fprintf('El numero %d es primo\n', n)
else
fprintf('El numero %d no es primo\n', n)
end

Escriba un programa en MatLab que determine la cantidad de numero impares en


una matriz
fila = input('Ingrese cantidad de fila: ');
col = input('Ingrese cantidad de columnas: ');
M= []
impares = 0;

for i = 1:fila
for j = 1:col
fprintf('Ingrese la fila %d y la columna %d\n', i, j);
M(i,j)=input(' ');
end
end
disp (M)
for i = 1:fila
for j = 1:col
if M(i,j) ~= 0
if mod(M(i,j),2)~=0
impares = impares + 1;
end
end
end
end
Escriba un programa en MatLab que determine el mayor de los numeros pares de
una matriz
fila = input('Ingrese cantidad de fila: ');
col = input('Ingrese cantidad de columnas: ');
M= []
mayor_par = 0;
for i = 1:fila
for j = 1:col
fprintf('Ingrese la fila %d y la columna %d\n', i, j);
M(i,j)=input(' ');
end
end
disp (M)
for i = 1:fila
for j = 1:col
if M(i,j) ~= 0 %no quiero considerar al cero como par o impar
if mod(M(i,j),2)==0
if (M(i,j))>mayor_par
mayor_par = M(i,j);
end
end
end
end
end
fprintf('El mayor par en la matriz es %d\n',mayor_par);

Escriba un programa en Matlab que determine el factorial de un numero


n = input('Ingrese un numero para calcular su factorial: ');
cont = 2;
fact = 1;
while (cont <= n)
fact = fact*cont;

cont = cont + 1;
end
fprintf('El factorial del numero %d es %d\n', n, fact);
Programa que cuenta las vocales de una palabra.
palabra=input('Ingrese una palabra para contar sus vocales: ','s');
palabra = upper(palabra);
z = length(palabra)
suma = 0
contA = 0;
contE = 0;
contI = 0;
contO = 0;
contU = 0;
for i = 1:1:z
switch palabra(i)
case 'A', contA = contA + 1;
case 'E', contE = contE + 1;
case 'I', contI = contI + 1;
case 'O', contO = contO + 1;
case 'U', contU = contU + 1;
end
end
fprintf('El numero de A en la palabra %s es %d\n',palabra, contA);
fprintf('El numero de E en la palabra %s es %d\n',palabra, contE);
fprintf('El numero de I en la palabra %s es %d\n',palabra, contI);
fprintf('El numero de O en la palabra %s es %d\n',palabra, contO);
fprintf('El numero de U en la palabra %s es %d\n',palabra, contU);

Programa que crea un vector indicando al usuario el largo que desea y que ingrese
los elementos que posee el vector.
largo = input('Ingrese el largo de un vector: ')
for j = 1:largo
A(j) = input('Ingrese el elemento: ');
end
for i = 1:length(A)
if A(1) == 3
end
end
disp(A)
Programa que pide al usuario que ingrese una matriz y determina los numeros
impares que posee la matriz.
fila = input('Ingrese cantidad de fila: ');
col = input('Ingrese cantidad de columnas: ');
M= []
impares = 0;
for i = 1:fila
for j = 1:col

fprintf('Ingrese la fila %d y la columna %d\n', i, j);


M(i,j)=input(' ');
end
end
disp (M)
for i = 1:fila
for j = 1:col
if M(i,j) ~= 0
if mod(M(i,j),2)~=0
impares = impares + 1;
end
end
end
end
fprintf('La cantidad de impares en la matriz es %d\n',impares);
Programa que pide al usuario que ingrese un numero y determina si es primo o no.
n = input('Ingrese un numero para determinar si es primo: ')
primo=1; %significa que el numero es primo
for cont = 2:fix(n/2)
if mod(n, cont) == 0
primo = 0;
break; %Quiebra un ciclo
end
end
if primo %es lo mismo que escribir primo==1
fprintf('El numero %d es primo\n', n)
else
fprintf('El numero %d no es primo\n', n)
end

Programa que pide al usuario que ingrese un numero para luego calcular su
factorial.
n = input('Ingrese un numero para calcular su factorial: ');
cont = 2;
fact = 1;
while (cont <= n)
fact = fact*cont;
cont = cont + 1;
end
fprintf('El factorial del numero %d es %d\n', n, fact);
Programa que llena una matriz definida por el usuario tanto filas, columnas y sus
elementos.
filas=input('Ingrese numero de filas: ');
col=input('Ingrese numero de columnas: ');
M=0;
for i=1:1:filas
for j=1:1:col
fprintf('Ingrese el elemento %d,%d',i,j);
M(i,j)=input('\n');
end

end
disp(M)
Programa que Pide al usuario ingresar un matriz y luego cambiar la diagonal por 1.
filas=input('Ingrese numero de filas: ');
col=input('Ingrese numero de columnas: ');
M=0;
for i=1:1:filas
for j=1:1:col
fprintf('Ingrese el elemento %d,%d',i,j);
M(i,j)=input('\n');
end
end
disp(M)
for n=1:1:filas
%ojo en esta parte que hay que cambiar i,j por otras letras, por
ejemplo n,m
for m=1:1:col
if n==m;
M(n,m)=1;
end
end
end
disp(M)

Programa que pide al usuario ingresar una matriz y luego cambiar la la triangular
superior con 1
filas=input('Ingrese numero de filas: ');
col=input('Ingrese numero de columnas: ');
M=0;
for i=1:1:filas
for j=1:1:col
fprintf('Ingrese el elemento %d,%d',i,j);
M(i,j)=input('\n');
end
end
disp(M)
for n=1:1:filas
for m=1:1:col
if n<=m;
M(n,m)=1;
end
end
end
disp(M)
Programa que pide al usuario que ingrese una matriz y luego determina cual es el
Par Mayor.
fila = input('Ingrese cantidad de fila: ');
col = input('Ingrese cantidad de columnas: ');
M= []
mayor_par = 0;
for i = 1:fila
for j = 1:col
fprintf('Ingrese la fila %d y la columna %d\n', i, j);

M(i,j)=input(' ');
end
end
disp (M)
for i = 1:fila
for j = 1:col
if M(i,j) ~= 0 %no quiero considerar al cero como par o impar
if mod(M(i,j),2)==0
if (M(i,j))>mayor_par
mayor_par = M(i,j);
end
end
end
end
end
fprintf('El mayor par en la matriz es %d\n',mayor_par);
Programa que pide al usuario ingresar una matriz y luego entrega al usuario un
vector que contiene todos los nmeros pares de la matriz.
filas=input('Ingrese numero de filas: ');
col=input('Ingrese numero de columnas: ');
M=0;
cont=1;
for i=1:1:filas
for j=1:1:col
fprintf('Ingrese el elemento %d,%d',i,j);
M(i,j)=input('\n');
end
end
disp(M)
for n=1:1:filas
for m=1:1:col
if mod(M(n,m),2)==0;
par(cont)=M(n,m);
cont=cont+1;
end
end
end
disp(par)

Programa que permite al usuario ingresar una matriz y luego entrega un vector que
contiene la suma de los nmeros impares de la matriz, y luego indica si aquel
numero es primo o no.
filas=input('Ingrese numero de filas: ');
col=input('Ingrese numero de columnas: ');
M=0;
cont=1;
suma=0;
for i=1:1:filas
for j=1:1:col

fprintf('Ingrese el elemento %d,%d',i,j);


M(i,j)=input('\n');
end
end
disp(M)
for n=1:1:filas
for m=1:1:col
if mod(M(n,m),2)~=0;
impar(cont)=M(n,m);
cont=cont+1;
end
end
end
disp(impar)
for k=1:length(impar)
suma=suma + impar(k);
end
for t=2:fix(suma/2)
if mod(t,2)==0;
primo=0;
break;
end
end
if(primo==1)
fprintf('%d es primo', suma);
else
disp(suma)
fprintf('No es primo')
end

FUNCIONES
FUNCTION
function<variable_salida> = nombre_funcion(paramentros_entrada)
cuerpo de a funcion
ENTRADA -----> f(x) ------> SALIDA
**Las funciones no despliegan mensajes ni para recibir un paramentro ni para
mostrar resultados
Factorial.
function fact = factorial_2015(n)
cont = 1;
fact = 1;
while (cont<=n);
fact=fact*cont;
cont=cont+1;
end
Matriz Dominante

function dominante = matriz_dominante(M)


dominante = 1;
for i=1:size(M,1)
suma = 0;
for j=1:size(M,2) %da lo mismo M,1 o M,2 , se supone que es una matriz cuadrada
if(i~=j)
suma = suma + M(i,j);
end
end
if (suma > M(i,i))
dominante = 0;
break;
end
end
Determina si es primo o no.
function primo=det_primo(n)
primo = 1;
for i = 2:fix(n/2)
if mod(n, i) ~= 0
primo = 0;
break; %Quiebra un ciclo
end
end
Cuenta la cantidad de digitos de un numero.
function digitos = cantidad_digitos(n)
digitos = 0;
while (n>0)
n = fix(n/10);
digitos = digitos + 1
end

Calcula la cantidad de numeros pares e impares de una matriz


function cantidad = cantidad_par_impar_matriz(M)
cantidad = 0;
for i=1:size(M,1)
for j:1:size(M,2)
if M(i,j)~=0
if mod(M(i,j),2)==0
cantidad = cantidad + 1;
end
end
end
end

Palindro Forma 1
function palindrome = es_palindrome(palabra)
palindrome=1;
cuenta = 0;
for i=1:length(palabra)
if palabra(i)==palabra(length(palabra) + 1 - i)
cuenta = cuenta + 1
end
end
if cuenta = length(palabra)
palindrome==0
end

Palindro Forma 2
function palindromo = es_palindromo(palabra)
palindromo = 1
for i=1:length(palabra)
if (n(i)~=n(lentgh(n) - (i-1)))
palindromo = 0;
break;
end
end

Palindro Forma 3
function palindromo = es_palindromo(palabra)
palnueva='';
largo = length(palabra)
l1=largo;
n=1;
while (n<=l1)
palnueva=[palnueva palabra(l1)];
l1=l1 - 1;
end
if (palnueva == palabra)
palindromo=1;
else
palindromo=0;
end
Suponga que estamos en la Luna con g=1.6(m/s^2) y lanzamos un cuerpo
verticalmente
hacia arriba a una rapidez de 20(m/s).
Grafique usando MatLab la posicion vs tiempo y la velocidad vs tiempo
Posicin vs Tiempo
t=input('ingrese tiempo en segundos que desea observar el movimiento:');
z=0:1:t;
v =20;
g =1.6;
y = v.*z-((g.*z).^2)/2;
plot(z,y)
title('Posicin vs Tiempo')
xlabel('Tiempo (s)')
ylabel('Posicin (m)')

grid on
gtext('Altura Mxima')
Velocidad vs Tiempo
t=input('ingrese tiempo en segundos que desea observar el movimiento:');
z=0:1:t;
v =20;
g =1.6;
y = v - g.*z;
plot(z,y)
title('Tiempo vs Velocidad')
xlabel('Tiempo (s)')
ylabel('Velocidad (m/s)')
grid on

Funciones Nativas

mod(a,b): Devuelve el resto de a/b


mod(5,2) = 1
fix(n): Parte entera de n
fix(3.95) = 3
round(n): Redondea n
round(3.95) = 4
disp('mensaje'): Muestra un mensaje
input('mensaje'): Pregunta al usuario un valor
clc : borra el command window
clear: limpia las variables anteriores para que no haya problema de sustitucin
length(A) : Entrega el largo del vector A
det(M): Entrega el determinante de una matriz
plot(x,y) : dibuja un grafico
sqrt(n) : Raz cuadrada de n
tittle( ): Asigna ttulo al grafico
xlabel( ): Indica nombre al eje X del grafico
ylabel( ): Indica nombre al eje Y del grafico
gtext : permite poner texto en el grafico
grid on: dibuja grilla en el grafico

Das könnte Ihnen auch gefallen