Sei sulla pagina 1di 4

NOMBRES: Joel Astudillo, Bryan Enríquez, Michelle Gualoto

Curso: 2
Tarea
Siguiendo la metodología para resolver problemas en la computadora (describir los 5
pasos), (Deben usar ciclos anidados o funciones); diseñar un algoritmo en
seudocódigo e implementarlo en Matlab para:

1.- Ingresar un ángulo en grados sexagesimales, convertirlo a radianes y calcular


desplegando por pantalla el seno del ángulo en radianes usando la respectiva serie de
Taylor.
1. Definición del problema
Siguiendo la metodología para resolver problemas en la computadora diseñar un
algoritmo en seudocódigo e implementarlo en Matlab para ingresar desde el teclado
valor de un ángulo en grados sexagesimales, transformarlo a radianes y desplegar el
valor del seno mediante la serie de Taylor.
2. Análisis

3. Diseño en Pseudocodigo

4. Prueba de escritorio

5. Implementación en MatLab
Resultados
Ingresar el angulo en grados sexagesimal: 64.5
Seno x = 9.025853e-01
2.- Ingresar un numero entero N, validando que sea > 2 y generar los números primos
<= N, usando la función EsPrimo, vista en clases.
1. Definición del problema
Siguiendo la metodología para resolver problemas en la computadora diseñar un
algoritmo en seudocódigo e implementarlo en Matlab para ingresar desde el teclado un
numero entero >2 y generar los números primos <=N, haciendo uso de la función
EsPrimo vista en clase.
2. Análisis
Entradas: n: ENTERO
Salidas: Números primos menores o iguales a n
Proceso:
Se tienen dos funciones candidatas:
a) Función principal:
Lee n y mediante un ciclo va calculando los primos menorea a n y luego pregunta:
Si EsPrimo(i=1) Entonces
desplegar n;
b) Funcion EsPrimo(X) recibe un numero X, si X es primo devuelve verdadero caso contrario
falso
3. Diseño en Pseudocodigo
Programa PrimosMenores;
// Declaración de variables;
Var
n: Entero mayor a 2;

// Definición de procedimientos o funciones:

Funcion EsPrimo(X: ENTERO): LOGICO


// Declaración de variables:
Var
Divisor, Raiz: ENTERO;
Inicia EsPrimo
Si X < 4 Entonces // Es impar <4
Retornar VERDADERO;
Caso_Contrario Si X MOD 2 = 0 Entonces // Es par >= 4
Retornar FALSO;
Caso_Contrario // Es impar > 4
Inicia VerificarPrimo
Divisor  3:
Raíz  Redondea(sqrt(X));
Mientras (X MOD Divisor <> 0) Y (Divisor <= Raiz) Hacer
Divisor  Divisor + 2;
Retornar Divisor > Raiz;
Fin Proceso VerificarPrimo
Fin Funcion EsPrimo;
Inicia CicloInfinito
Repetir
// Ingreso y validación de datos:
Escribir(“Ingresar un entero(salir <=2:“);
LeerYSaltar(n);
Si n <= 2 Entonces
Salir;
// Resultados:
EscribirYSaltar(“Los números primos menores<=:”,n);
A= [];
i=1;
Repetir i<= n
Si Esprimo(i)==1 entonces;
A= [A,i];
i=i+1;
EscribirYSaltar(A);
Fin del programa PrimosMenores

4. Prueba de escritorio
Consola
Ingresar un entero (salir <=2): 4
Los números primos menores <=4:
A=
1 2 3
Memoria
Esprimo(3):1
x raiz X<4 C1<X>=4 C2<XMOD 2= 0 C1 y C2 NO(C1 y C2)
3 2 1 0 0 0 1

Esprimo(2):1
X raiz X<4 C1<X>=4 C2<XMOD 2= 0 C1 y C2 NO(C1 y C2)
2 1 1 0 1 0 1

Esprimo(1):1
X raiz X<4 C1<X>=4 C2<XMOD 2= 0 C1 y C2 NO(C1 y C2)
1 1 1 0 0 0 1

5. Implementación en MatLab
% EsPrimo.m
function ep = Esprimo(X)
if X < 4 %Es impar < 4
ep = true;
elseif mod(X, 2) == 0 % Es par >= 4
ep = false;
else % Es impar > 4
Divisor = 3;
Raiz = round(sqrt(x));
while (mod(X, Divisor) ~= 0) && (Divisor <= Raiz)
Divisor = Divisor + 2;
end;
ep = (Divisor > Raiz);
end;
return;

%PrimosMenores
while true % Ciclo infinito
% Ingreso y validacion de datos
n = input('Ingresar un entero (salir <= 2); ');
if n <= 2
break; %Sale del ciclo infinito
end;
fprintf('Los numeros primos menores <= %d: ', n);
A=[];
i=1;
while i<= n
if Esprimo(i)==1
A=[A,i];

end;
i=i+1;

end
display(A)
end;

Resultados
Ingresar un entero (salir <= 2); 4
Los numeros primos menores <= 4:
A=

1 2 3

Potrebbero piacerti anche