Está en la página 1de 9

UNIVERSIDAD DEL NORTE

DEPARTAMENTO DE SISTEMAS
CÒDIGO: 200120042
NOMBRE: Gisel Viviana Molina Moré
FECHA: 31 Octubre 2018

Práctica No. 9
1. Escribir una función para calcular sumatoria (dado un vector)

Inicio // Programa Principal


Entero n // n es el número de elementos del vector
Entero A[100] // Vector de 100 elementos
Escriba “Digite el valor de n”
Lea n
Leer (A,n) // Subrutina que lee el valor de A
Escriba “Suma de los elementos del vector A=”+Suma(A,n))
// Suma es la función que suma los elementos del vector
Fin

Leer (A[],n) // Esta es una subrutina


Entero i
Para i=1,n,1 haga
Lea A[i]
Fin_para
Fin_Subrutina_Leer

Entero Suma(Entero A[],Entero x) // Esta es una función


Entero j,Suma
Suma0
Para j=1,x, haga
Suma  Suma + A[j]
Fin_para
Retorne Suma
Fin_Funcion_Suma
2. Escribir una función que calcule el promedio de un vector (utilizando función de
sumatoria)

Inicio // Programa Principal


Entero n // n es el número de elementos del vector
Entero A[100] // Vector de 100 elementos
Escriba “Digite el valor de n”
Lea n
Leer (A,n) // Subrutina que lee el valor de A
Escriba “Suma de los elementos del vector A=”+Suma(A,n))
// Suma es la función que suma los elementos del vector
Escriba “Promedio de los elementos del vector =”Prom(A,n)
Fin

Leer (A[],n) // Esta es una subrutina


Entero i
Para i=1,n,1 haga
Lea A[i]
Fin_para
Fin_Subrutina_Leer

Entero Suma(Entero A[],Entero x) // Esta es una función


Entero j,Suma
Suma0
Para j=1,x, haga
Suma  Suma + A[j]
Fin_para
Retorne Suma
Fin_Funcion_Suma

Entero Prom(Entero A[],Entero x) // Esta es una función


Entero j,Promedio
Promedio  Suma(A,n)/x // Llama a la función Suma
Retorne Promedio
Fin_Funcion_Prom
3. Escriba una función que pida al usuario un número válido (entre un límite
inferior y superior)

Inicio // Programa Principal


Entero n,Mínimo,Máximo
Escriba “Digite el límite inferior”
Lea Mínimo
Escriba “Digite el límite superior”
Lea Máximo
Escriba “Digite un número que se encuentre en el intervalo ”
Lea n
Escriba “1. Número válido”
Escriba “2. Número inválido”
Validar (n,Mínimo,Máximo) // Función que valida n
Escriba “El número ingresado es=”+Validar(n,Mínimo,Máximo)
Fin
Entero Validar(Entero n, Entero Mínimo, Entero Máximo)
Entero x
Si (n>=Mínimo y n<=Máximo) entonces
x=1
Si_no
x=2
Fin_si
Retorne x
Fin_Funcion_Validar
4. Una función que retorne falso verdadero si un número dado como parámetro es
primo o no.
Inicio // Programa Principal
Entero k
Escriba “Digite el número a validar como primo”
Lea k
Escriba “1. Verdadero”
Escriba “2. Falso”
Validar (k)
Escriba “El número ingresado es=”+Validar(k)
Fin

Entero Validar(Entero k) // Esta es una función


Entero i,x
ik-1
Mq (k%i<>0) haga
ii-1
Fin_Mq
Si (i==1) entonces
x=1
Si_no
x=2
Fin_si
Retorne x
Fin_Funcion_Validar
5. Una función que devuelva el enésimo número primo (utilizando la función para
verificar si un número es primo o no).

Inicio // Programa Principal


Entero n
Escriba “Digite la cantidad de números a validar”
Lea n
Validar (n)
Escriba “El enésimo número primo es=”+Validar(n)
Fin
Entero Validar(Entero n) // Esta es una función
Entero i,x,k
HH
in-1
Mq (n%i<>0) haga
ii-1
Fin_Mq
Si (i==1) entonces
k=1
Si_no
k=0
nn-1
Fin_si
Fin_HH (k==1)
x=n
Retorne x
Fin_Funcion_Validar
6. Crear una función para calcular la sumatoria de la triangular de una matriz.
Utilizar una función que calcule la sumatoria de una fila (desde un índice
inferior hasta un límite superior).
Inicio // Programa Principal
Entero i,j,n,k
Entero A[100][100]
Escriba “Digite el valor de n = ”
Lea n
Escriba “Digite el límite superior = ”
Lea k
Para i=1,n,1 haga
Para j=1,n,1 haga
Si (i==j) entonces
Escriba “Digite A[“+i+”][“+j+”]
Lea A[i][j]
Fin_si
Fin_Para
Fin_Para
Validar (n,k,A)
Escriba “La suma de las filas es = ”+Validar(n,k,A)
Fin
Inicio Validar (Entero n,Entero A[][]) // Esto es una función
Entero i,j,suma
suma0
Para i=1,k,1 haga
Para j=1,k,1 haga
Suma=suma+A[i][j]
Fin_Para
Fin_Para
Retorne suma
Fin

7. Realizar un algoritmo que calcule el salario y la retención de un trabajador según


las siguientes reglas. Para calcular el salario, se necesita el número de horas
trabajadas en el mes, y el número de años en la empresa. Si las horas suman 40 y
la persona lleva 10 años, el salario es de 20,000. La retención en este caso es de
1500. Si las horas suman 40 pero la persona lleva 20 años, el salario es de
30,000 y la retención es de 4,000. En caso contrario gana 10,000 y la retención
es de 2,000. Realizar dos versiones: una usando funciones, y otra versión usando
subrutina.

Inicio // Programa Principal


Entero h,a,s
Escriba “Digite el número de horas trabajadas al mes = ”
Lea h
Escriba “Digite el número de años en la empresa = ”
Lea a
Salario (h,a)
Escriba “El salario del trabajador es = ”+Salario (h,a)
Retención (s)
Escriba “La retención es de = ”+Retención (s)
Fin

Inicio Salario (Entero h, Entero a) // Esto es una función


Entero s
Si ((h==40) y (a==10)) entonces
s=20000
Si_no
Si ((h==40) y (a==20)) entonces
s=30000
Si_no
Si (h<>40) entonces
s=10000
Fin_si
Fin_si
Fin_si
Retorne s
Fin
Inicio Retención (Entero s) // Esto es una función
Entero r
Si (s==20000) entonces
r=1500
Si_no
Si (s==30000) entonces
r=4000
Si_no
r=2000
Fin_si
Fin_si
Retorne r
Fin
subrutina
Inicio // Programa Principal
Entero h,a,s
Escriba “Digite el número de horas trabajadas al mes = ”
Lea h
Escriba “Digite el número de años en la empresa = ”
Lea a
Datos (h,a)
Salario (h,a)
Escriba “El salario del trabajador es = ”+Salario (h,a)
Retención (s)
Escriba “La retención es de = ”+Retención (s)
Fin

Inicio Datos (Entero h, Entero a) // Esto es una subrutina


Escriba “Digite el número de horas trabajadas en el mes = ”
Lea h
Escriba “Digite el número de años en la empresa =”
Lea a
Fin_Subrutina_Datos

Inicio Salario (Entero h, Entero a) // Esto es una función


Entero s
Si ((h==40) y (a==10)) entonces
s=20000
Si_no
Si ((h==40) y (a==20)) entonces
s=30000
Si_no
Si (h<>40) entonces
s=10000
Fin_si
Fin_si
Fin_si
Retorne s
Fin
Inicio Retención (Entero s) // Esto es una función
Entero r
Si (s==20000) entonces
r=1500
Si_no
Si (s==30000) entonces
r=4000
Si_no
r=2000
Fin_si
Fin_si
Retorne r
Fin
8. Realizar un algoritmo que dado una pareja de puntos en el plano cartesiano, decir a cuál
cuadrante pertenece. La respuesta debe ser un cuadrante entre 1 y 4, 0 si está en uno de los ejes,
o -1 si está en el centro (x=0, y=0). Utilizar una función para solucionar el problema.
Inicio // Programa principal
Entero x,y
Escriba “Digite el punto a clasificar”
Escriba “Digite el valor de x”
Lea x
Escriba “Digite el valor de y”
Lea y
Validar (x,y)
Escriba “El punto está en el cuadrante numero”+ Validar (x,y)
Fin
Inicio // Validar (Entero x, Entero y) // Esto es una función
Entero c
Si ((x>0) y (y>0)) entonces
c=1
Si_no
Si ((x<0) y (y>0)) entonces
c=2
Si_no
Si ((x<0) y (y<0)) entonces
c=3
Si_no
Si ((x>0) y (y<0)) entonces
c=4
Si_no
Si ((x=0) y (y=0)) entonces
c=-1
Si_no
c=0
Fin_si
Fin_si
Fin_si
Fin_si
Fin_si
Retorne c
Fin
9. Hacer un algoritmo que implemente las reglas de ping pong. Las reglas son así:
a. Se juegan games hasta que uno de los jugadores gane 3 games.
b. Un game se gana cuando uno de los dos jugadores gane 11 puntos.
c. El algoritmo debe pedirle al usuario el ganador de cada uno de los puntos
(1 se ganó jugador 1, 2 si ganó el jugador 2).
El algoritmo debe implementar una función para determinar el ganador de un
game. Esta debe devolver el número del jugador ganador.

10. Realizar un algoritmo que “piense” N números entre 1 y 100, y le pida al usuario
que adivine el número que pensó. El algoritmo debe pedir el usuario el valor de
N. El algoritmo debe contar y decir cuántas veces necesitó el usuario para
adivinar cada uno de los N números que había pensado. Además, debe decir
después que el usuario adivine los N números, cuál es el promedio de veces que
necesitó para adivinar cada número. Para “pensar” un número, usar la
instrucción
x <- rand(),
donde x es el número pensado que nos arrojó una función que genera números
aleatorios. Usar una función que reciba x como parámetro, pida los números al
usuario hasta que adivine x, y devuelva el número de veces que necesitó para
adivinarlo.

11. Un hospital recibe pacientes y debe asignarles un tipo de cuarto, y un


especialista. Tipos de cuarto son: Individual (1), Compartido (2), Ninguno (3).
Especialista incluye médico general (0), otorrino (1), gastroenterólogo (2), y
neurólogo (3). Esto lo hará con la siguiente información: edad, sexo (M (1), F
(2)), tipo de dolor (estómago (1), oído (2), cabeza (3)) y estado de gravedad
(Ligero (1), Mal, (2), grave (3)). La asignación es así:
a. Si es una mujer u hombre mayor de 60 que tiene dolor de estómago
ligero, se le da cuarto compartido, y se le asigna gastroenterólogo.
b. Si no es mayor de 60, no se le da cuarto pero se le da el mismo
especialista.
c. Si es una mujer mayor de 60 con dolor de cabeza o de oído y está grave,
se le da un cuarto individual, y neurólogo u otorrino (dependiendo del
síntoma).
d. Si es hombre, misma edad, mismos síntomas, el cuarto será compartido,
mismos especialistas.
e. En todo otro caso se le debe asignar cuarto compartido, y médico
general.
Realizar un algoritmo que llame una subrutina que asigne cuarto, y especialista,
dado los datos del paciente.

12. Realizar un algoritmo que implemente la siguiente función:


sen ( x )  cos( x ) Si ( x  1) y ( y  0)

 1
f ( x, y )   x  Si ( y  0)
 sen ( x )sen ( x )

 e en caso contrario

13. Implementar sen (x)


14. Implementar cos(x)

También podría gustarte