Sei sulla pagina 1di 21

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE INGENIERÍA QUÍMICA


CARRERA DE INGENIERÍA QUÍMICA

ASIGNATURA

SIMULACION DE PROCESOS INDUSTRIALES II

DEBER # 8

EJERCICIOS DE PROGRAMACION FUNCIONES (PARES)

ESTUDIANTE

PERERO LUCIO ALFONSO SALVADOR

DOCENTE

ING. VILLA MANOSALVAS GONZALO IVAN

PARALELO

7-4

FECHA DE ENTREGA

20/06/2019

PERIODO LECTIVO

2019 - 2020 CI
2. Escriba una función primo(n) para determinar si un número n
dado es primo. Escriba un programa de prueba que mediante la
función escrita, encuentre los números primos existentes entre 1
y n, siendo n un dato.

ENTRADA n: Numero Entero


VARIABLES
SALIDA i: Numero Primo

function p=primo(n);
c=0;
for d=1:n
if mod(n,d)==0;
c=c+1;
end
SCRIPT 1 end
if c>2
p=0;
else
p=1;
end
end

n=input('Ingrese un numero Entero: ');


for i=1:n
if primo(i)==1
SCRIPT 2
disp(i);
end
end

RESULTADO
4. Escriba una función divisores(n) que entregue un vector
conteniendo todos los divisores enteros positivos que tiene un
número entero dado n. Escriba un programa de prueba que use la
función escrita para encontrar para cada número entero del 20 al
30, sus divisores enteros

ENTRADA n: Numero Entero


c: Numero de Divisores
VARIABLES
SALIDA d: Divisores
g, l : salida de matriz

function c=ndiv(n)
c=0;
e=[];
for d=1:n
if mod(n,d)==0
c=c+1;
SCRIPT 1 e=[e d];
end
end
disp('Los Divisores son: ')
e=e'
disp('Numero de divisores:')
end

n=input('Ingrese un Numero Entero: ');


c=ndiv(n)
m=0;
g=[];
l=[];
for i=1:30
for j=20:1:30
if mod(j,i)==0
SCRIPT 2 m=m+1;
g=[g;j m];
l=[l;j i'];
end
end
end
disp('Los Divisores son: ')
g=g'
l=l'

RESULTADO
6. Escriba una función perfecto(n) que determine si un número
entero dado n es un número perfecto. Un número perfecto debe ser
igual a la suma de todos sus divisores enteros menores que el
valor del número.
Ejemplo: 28 = 1 + 2 + 4 + 7 + 14
Escriba un programa de prueba que use la función escrita y
encuentre los números perfectos entre 1 y 1000

ENTRADA n: Numero entero


VARIABLES
SALIDA s: Sumatoria de numero

function n_perfecto
cot=0;
for n=1:1000
s=0;
for i=1:n-1
if mod(n,i)==0
s=s+i;
end
end
if n==s
SCRIPT 1 cot=cot+1;
z=true;
[n s]
else
z=false;
end
end
disp('la cantidad de valores es:');
disp(cot);
end

n=input('Ingrese un Numero Entero: ');


s=0;
for i=1:n-1
if mod(n,i)==0
s=s+i;
end
SCRIPT 2
end
if n==s
disp('El número es perfecto')
else
disp('El número no es perfecto')
end

RESULTADO
8. Escriba una función cuad(n) que determine si el cuadrado de
un número natural n dado, es igual a la suma de los primeros n
números impares.
Ej. 36 = 1+3+5+7+9+11
Escriba un programa de prueba que ingrese un dato desde el teclado,
use la función y muestre el resultado en la pantalla.

ENTRADA n: Numero Entero


VARIABLES
SALIDA h: Vector de Números Impares

function cuad
n=input('Ingrese un Numero Entero: ');
disp('El cuadrado del entero es: ');
c=n^2;
disp(c)
s=0;
h=[];
for i=1:2:c
s=s+i;
SCRIPT 1
h=[h i];
if s==c
break
end
end
disp('Los numeros impares que sumando son el numero
cuadrado son:');
disp(h)
end

SCRIPT 2

RESULTADO
10. Escriba una función conteo(x) que reciba una cadena de
caracteres x, y determine la cantidad de palabras que contiene.
Suponga que las palabras están separadas por un espacio. Escriba
un programa de prueba que ingrese un dato desde el teclado, use
la función y muestre el resultado en la pantalla.

VARIABLES ENTRADA x: ingrese texto


SALIDA a: contador de palabras

function conteo_palabras
x=input('Ingrese el texto: ','s');
a=0;
for i=1:length(x);
if x(i)==' '
SCRIPT 1
a=a+1;
end
end
fprintf('numero de palabras en el texto %d\n\n',a+1)
end

SCRIPT 2

RESULTADO
12. Escriba una función alfin(n) que entregue como resultado la
cantidad de veces que debe lanzarse un dado hasta que salga un
número n dado como parámetro. Escriba un programa de prueba que
ingrese un dato desde el teclado, use la función y muestre el
resultado en la pantalla.

ENTRADA x: numero a encontrar


VARIABLES
SALIDA c: contador de intentos

function alfin
x=input('Ingrese un numero del 1 al 6: ');
c=0;
if x<=6
while (fix(rand*6)+1)~=x
c=c+1;
SCRIPT 1 end
fprintf('Numero de intentos hasta conseguir numero
%d\n\n',c+1)
else
disp('Error es un dado no sea cojudo');
end
end

SCRIPT 2

RESULTADO
16. Escriba una función suma(n) que reciba un numero entero n y
devuelva la suma de sus dígitos. Escriba un programa de prueba
que genere números aleatorio entre 1 y 100 hasta que la suma de
los dígitos de alguno de ellos sea múltiplo de 7

VARIABLES ENTRADA

FORMULA

SALIDA

function suma_n_s
n=input('Ingrese un numero: ');
s=0;
v=num2str(n);
for i=1:length(v)
SCRIPT 1 s=s+str2double(v(i));
end
disp('La suma de los valores del dato ingresado es: ')
disp(s)
end

SCRIPT 2

RESULTADO
18. Escriba una función mcd(a, b) que reciba dos números enteros
a y b, y devuelva el máximo común divisor entre ellos. Escriba un
programa de prueba que genere dos números aleatorios entre 1 y
100, use la función y muestre el resultado en la pantalla

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1

SCRIPT 2

RESULTADO
20. Escriba un a función rango(v,a,b) que reciba un vector v, y
determine cuantos elementos están en el rango [a, b]

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1

SCRIPT 2

RESULTADO
22. Escriba una función recursiva para obtener la cantidad de
dígitos impares que contiene un número entero positivo.

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1

SCRIPT 2

RESULTADO
24. Escriba una función polar(x, y) que reciba las coordenadas
cartesianas de un punto y entregue sus coordenadas polares r,
theta

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1

SCRIPT 2

RESULTADO
26. En una expresión aritmética en notación INFIX se escriben
los operandos (números) separados por un operador aritmético
conocido (+, –, *, /).
En una expresión aritmética en notación POSTFIX, primero se
escriben los operandos y luego el operador, como se muestra en
los ejemplos.

INFIX POSTFIX
2 + 3 2 3 +
9 – 6 9 6 –
5 * 4 5 4 *
8 / 7 8 7 /

Suponga que los operandos aritméticos son números de una sola


cifra.

a) Escriba la función infix que reciba una cadena de 3


caracteres y verifique que está bien escrita en notación infix.
La función devuelve 1 si es una cadena con la expresión infix
válida y 0 si no lo es.
b) Escriba la función postfix que reciba una cadena de 3
caracteres, previamente validada con la función infix y cambie la
expresión de notación INFIX a POSTFIX.
c) Escriba un programa de prueba para verificar que las
funciónes producen resultados correctos.

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1
SCRIPT 2

RESULTADO
28. Escriba una función que reciba una matriz. La función debe
debe entregar un vector con la cantidad de elementos pares que
contiene cada columna de la matriz

3 4 5
Ejm. Entra [6 1 8] sale [2 3 1]
8 6 3
7 8 7

Escriba un programa que lea una matriz, llame a la función creada


y determine cual es la columna con la mayor cantidad de números
pares

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1

SCRIPT 2
RESULTADO
30. La operación xor en el sistema binario produce el siguiente
resultado
m k m x or k
0 0 0
0 1 1
1 0 1
1 1 0

Esta operación se usa para encriptar mensajes en binario en los


cuales m representa el mensaje, k la clave para encriptar el
mensaje, y e el mensaje encriptado.

Ejemplo. Mensaje que se envía: m = 11011001


Clave: k = 01100011 Mensaje encriptado: e = 10111010

El receptor del mensaje encriptado, aplicando la misma clave puede


conocer el mensaje:

Ejemplo. Mensaje encriptado: e = 10111010


Clave: k = 01100011
Mensaje recibido: m = 11011001

Escriba una función que reciba un dos vectores conteniendo números


en el sistema binario y entregue otro vector conteniendo los
números binarios con la operación xor. Esta función se usará para
encriptar un mensaje y para conocer el menaje enviado. La función
debe validar que los vectores contengan números binarios, caso
contrario, el resultado es un vector nulo.

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1
SCRIPT 2

RESULTADO
32. La función strfind entrega la posición inicial de todas las
ocurrencias de algún texto en una cadena de caracteres, como se
muestra en el ejemplo:

>> c='Cada proyecto tiene programas y compromisos';


>> t='pro';
>> v=strfind(c,t) v =
6 21 36

Escriba una función equivalente subcadena(c,t) que reciba iguales


datos que la función
strfind y produzca el mismo resultado, como en el ejemplo
anterior.

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1

SCRIPT 2
RESULTADO
34. Escriba una función recursiva que permita invertir una cadena
de caracteres.

VARIABLES ENTRADA

FORMULA

SALIDA

SCRIPT 1

SCRIPT 2

RESULTADO

Potrebbero piacerti anche