Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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:
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;
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