Está en la página 1de 18

Ejercicio N.

º 03:
Con los datos registrados anteriormente, implementar un menú, con las siguientes opciones:
1. Registro de Estudiantes
2. Listado de estudiantes y sus notas
3. Búsqueda de estudiantes
4. Salir
Implementar la funcionalidad de listado de alumnos.
Implementar la funcionalidad de búsqueda de alumnos.

Desarrollo:
1. Análisis.
a. Datos de entrada.
Ejemplo.
ListaNotas: real
id: real
nota: real
promedio: Real
opción: Real

//Datos de salida.
ListaEstudiantes, ListaCursos, nombre: Caracter
_enctrd: Lógico

//Proceso.
Cantidad de estudiantes: 100
Mientras opcion <> 99 Hacer
Si opcion == 0 Entonces
Escribir "// REGISTRO DE ESTUDIANTES //"
Escribir "Opciones: "
Escribir " 0) Volver a mostrar menu de opciones"
Escribir " 1) Registrar estudiante"
Escribir " 2) Ver registro de estudiante"
Escribir " 3) Listar todos los estudiantes"
Escribir " 4) Buscar estudiante"
Escribir " 99) Salir"
FinSi
Escribir "[>] Introduzca su opcion: ", Sin Saltar;
Leer opcion

Si opcion == 1 Entonces
Escribir "Introduzca el nombre del estudiante: ", Sin Saltar;
Leer nombre
ListaEstudiantes[id] <- nombre
Para i<-1 Hasta 6 Con Paso 1 Hacer
Escribir "Introduzca la nota del cursor (",ListaCursos[i],") [0-20]: ", Sin Saltar;
Leer nota
Mientras nota > 20 o nota < 0 Hacer
Escribir "No se permite notas mayores de 20 ni menores de 1"
Escribir "Introduzca la nota del cursor (",ListaCursos[i],") [0-20]: ", Sin Saltar;
ListaNotas[id,i] <- nota
id = id + 1
Escribir "El estudiante ",nombre," fue registrado correctamente."

2. Diseño.
a. Pseudocódigo (Pseint)
Algoritmo Lista de estudiantes_Notas
Declarar
Definir ListaNotas, id, nota, promedio, opcion Como Real
Definir ListaEstudiantes, ListaCursos, nombre Como Caracter
Definir _enctrd Como Logico
Dimension ListaNotas[100, 6]
Dimension ListaEstudiantes[100]
Dimension ListaCursos[6]
ListaCursos[1] <- "Comunicación"
ListaCursos[2] <- "Matematica"
ListaCursos[3] <- "Quimica"
ListaCursos[4] <- "Religion"
ListaCursos[5] <- "EPT"
ListaCursos[6] <- "Historia"
id = 1
opcion = 0
// 0 -> Falso
// 1 -> Verdadero
// Cursos tomados en cuenta: Comunicacion, Matematica, Quimica,
Religion, EPT, Historia
// Cantidad de estudiantes: 100
Mientras opcion <> 99 Hacer

Si opcion == 0 Entonces
Escribir "// REGISTRO DE ESTUDIANTES //"
Escribir "Opciones: "
Escribir " 0) Volver a mostrar menu de opciones"
Escribir " 1) Registrar estudiante"
Escribir " 2) Ver registro de estudiante"
Escribir " 3) Listar todos los estudiantes"
Escribir " 4) Buscar estudiante"
Escribir " 99) Salir"
FinSi
Escribir "[>] Introduzca su opcion: ", Sin Saltar;
Leer opcion

Si opcion == 1 Entonces
Escribir "Introduzca el nombre del estudiante: ", Sin Saltar;
Leer nombre
ListaEstudiantes[id] <- nombre
Para i<-1 Hasta 6 Con Paso 1 Hacer
Escribir "Introduzca la nota del cursor
(",ListaCursos[i],") [0-20]: ", Sin Saltar;
Leer nota
Mientras nota > 20 o nota < 0 Hacer
Escribir "No se permite notas mayores de
20 ni menores de 1"
Escribir "Introduzca la nota del cursor
(",ListaCursos[i],") [0-20]: ", Sin Saltar;
Leer nota
FinMientras
ListaNotas[id,i] <- nota
FinPara
id = id + 1
Escribir "El estudiante ",nombre," fue registrado
correctamente."
FinSi

Si opcion == 2 Entonces
_enctrd = Falso
promedio = 0
Escribir "Introduzca el nombre del estudiante: ", Sin Saltar;
Leer nombre
Para i<- 1 Hasta 100 Con Paso 1 Hacer
si ListaEstudiantes[i] == nombre Entonces
_enctrd = Verdadero
Escribir
"+------------------------------------------------"
Escribir "| ID: ",i
Escribir "| Nombre: ", ListaEstudiantes[i]
para i2 <- 1 hasta 6 Con Paso 1 Hacer
Escribir "| Nota del curso de
(",ListaCursos[i2],"): ",ListaNotas[i,i2]
promedio = promedio +
ListaNotas[i,i2]
FinPara
promedio = promedio/6
Escribir "| Promedio de notas: ", promedio
Escribir
"+------------------------------------------------"
FinSi
FinPara
Si _enctrd == Falso Entonces
Escribir "Estudiante no encontrado."
FinSi
FinSi

Si opcion == 3 Entonces
_enctrd = Falso
Escribir "Todos los estudiantes registrados: "
Escribir "+------------------------------------------------"
para i<- 1 Hasta 100 Con Paso 1 Hacer
Si ListaEstudiantes[i] <> '' Entonces
_enctrd = Verdadero
Escribir "| ID: ",i
Escribir "| Nombre: ", ListaEstudiantes[i]
Escribir
"+------------------------------------------------"
FinSi
FinPara
Si _enctrd == Falso
Escribir "| No hay ningun estudiante registrado"
Escribir "+------------------------------------------------"
FinSi
FinSi

Si opcion == 4 Entonces
_enctrd = Falso
Escribir "Introduzca el nombre del estudiante: ", Sin Saltar;
Leer nombre
Para i<- 1 Hasta 100 Con Paso 1 Hacer
Si ListaEstudiantes[i] == nombre Entonces
_enctrd = Verdadero
Escribir "Estudiante encontrado!"
Escribir
"+------------------------------------------------"
Escribir "| ID: ",i
Escribir "| Nombre: ", ListaEstudiantes[i]
Escribir
"+------------------------------------------------"
FinSi
FinPara
Si _enctrd == Falso Entonces
Escribir "Estudiante no encontrado!"
FinSi
FinSi
FinMientras
FinAlgoritmo

b. Diagrama de Flujo
3. Pruebas.
a. Pantallazos del resultado esperado del algoritmo.
Ejercicio N.º 05:
Implementar una matriz donde almacene los datos de los estudiantes de la Escuela de Ingeniería de
Sistemas, se debe registrar el nombre del estudiante, y las notas de sus cursos de su carrera
profesional. (NOTA trabajar con 100 alumnos como límite).

Desarrollo:
1. Análisis.
a. Datos de entrada.

Nombre, DNI, Nota1, Nota2, Nota3, Nota4, estudiantes, index: Caracter


definitiva: Real
opc, n: Entero
estadi: Logico

b. Datos de salida.
Nombre, DNI, Nota1, Nota2, Nota3, Nota4, estudiantes, index: Caracter
eval: Real

c. Proceso.

n=n+1
Si n > 0 y n < 100
Si eval > 0 y eval <= 20 Entonces
estudiantes[n,4] = Nota1
estado = Verdadero
Si eval > 0 y eval <= 20 Entonces
estudiantes[n,6] = Nota3
Si n > 0 y n <= 100 Entonces
Para x = 1 Hasta n Con Paso 1 Hacer

2. Diseño.
a. Pseudocódigo (Pseint)
Algoritmo Estudiantes_Notas
//Declaración de variables
Definir Nombre, DNI, Nota1, Nota2, Nota3, Nota4, estudiantes, index Como Caracter
Definir definitiva Como Real
Definir opc, n Como Entero
Definir eval Como Real
Definir estadi Como Logico
Dimension estudiantes[100,20]

//Proceso
n=0
Repetir
Mostrar "Digite una opcion:"
Mostrar "1 - Registrar nuevo estudiante"
Mostrar "2 - Listar estudiantes"
Mostrar "3 - Salir"
Leer opc
Segun opc Hacer
1:
n=n+1
Si n > 0 y n < 100 Entonces
FinSi
index = ConvertirATexto(n) // 100
estudiantes[n,1] = index
Mostrar "Nuevo registro:"
Mostrar "Digite el nombre y apellido del estudiante"
Leer Nombre
Leer estudiantes[n,2]
Mostrar "Digite el DNI del estudiante"
Leer estudiantes[n,3]
Repetir
Mostrar "Digite la Nota del curso de Introduccion a la Ingeniería de Sistemas: " Sin Saltar
Leer Nota1
eval = ConvertirANumero(Nota1)
Si eval > 0 y eval <= 20 Entonces
estudiantes[n,4] = Nota1
estado = Verdadero
SiNo
Mostrar "Error al digitar la nota"
estado = Falso
FinSi
Hasta Que estado = Verdadero
Repetir
Mostrar "Digite la nota del curso de Personal Branding: " Sin Saltar
Leer Nota2
eval = ConvertirANumero(Nota1)
Si eval > 0 y eval <= 20 Entonces
estudiantes[n,5] = Nota2
estado = Verdadero
SiNo
Mostrar "Error al digitar la nota"
estado = Falso
FinSi
Hasta Que estado = Verdadero
Repetir
Mostrar "Digite la nota del curso de Compromiso ético: " Sin Saltar
Leer Nota3
eval = ConvertirANumero(Nota3)
Si eval > 0 y eval <= 20 Entonces
estudiantes[n,6] = Nota3
estado = Verdadero
SiNo
Mostrar "Error al digitar la nota"
estado = Falso
FinSi
Hasta Que estado = Verdadero
Repetir
Mostrar "Digite la nota del curso de Cultura y redacción: " Sin Saltar
Leer Nota4
eval = ConvertirANumero(Nota4)
Si eval > 0 y eval <= 20 Entonces
estudiantes[n,7] = Nota4
SiNo
Mostrar "Error al digitar la nota"
estado = Falso
FinSi
Hasta Que estado = Verdadero
definitiva = (ConvertirANumero(Nota1) + ConvertirANumero(Nota2) +
ConvertirANumero(Nota3) + ConvertirANumero(Nota4))
Mostrar "Registros completos " , n
2:
Mostrar "Listado de estudiantes"
ListarEstudiantes(estudiantes, n)
3:
Mostrar "Hasta la proxima"
De Otro Modo:
Mostrar "Error en la opcion"
FinSegun
Hasta Que opc = 3
FinAlgoritmo
Funcion ListarEstudiantes(estudiantes,n)
Si n > 0 y n <= 100 Entonces
Para x = 1 Hasta n Con Paso 1 Hacer
Mostrar estudiantes[x,1]," " estudiantes[x,2], " , ",estudiantes[x,3], " , ",estudiantes[x,4], " ,
",estudiantes[x,5], " , ",estudiantes[x,6], " , ",estudiantes[x,7],estudiantes[x,8]
FinPara
FinSi
FinFuncion
FinAlgoritmo

b. Diagrama de Flujo
3. Pruebas.

a. Pantallazos del resultado esperado del algoritmo.


Ejercicio N.º 06:
Una empresa de colectivos tiene 3 líneas de 12 automóviles cada una. Por cada viaje el chofer entrega
al llegar a la terminal una planilla con el número de automóviles (de 1 a 12) número de línea (de 1 a 3)
y la recaudación del viaje. Se pide informar por pantalla.
• La recaudación total por línea de colectivo (por filas).
• La recaudación total por coche (por columnas).
• La recaudación total general.

Desarrollo:

1. Análisis.
a. Datos de entrada.
b. Datos de salida.
c. Proceso.
2. Diseño.
a. Pseudocódigo (Pseint).

Algoritmo Recaudación_Linea

b. Diagrama de flujo.
3. Pruebas.
a. Pantallazos del resultado esperado del algoritmo.

Ejercicio N.º 09:


Hacer un programa que genere una matriz de 3 x 3, que asigne ceros a todos los elementos, excepto a
los de la diagonal principal, que a estos les ponga unos y que imprima la matriz.

Desarrollo:

1. Análisis.
a. Datos de entrada.
f: entero
c: entero

b. Datos de salida.
f: entero
c: entero
matriz: entero

c. Proceso.
Dimensión matriz[3,3]
Para f<-0 Hasta 2 Con Paso 1 Hacer
Para c<-0 Hasta 2 Con Paso 1 Hacer
si f == c Entonces
matriz[f,c] = 1

2. Diseño.
a. Pseudocódigo (Pseint)

Algoritmo ejercicio_09
//Declaración de variables
Definir f Como Entero
Definir c Como Entero
Definir matriz Como Entero
//Proceso
Dimension matriz[3,3]
Para f<-0 Hasta 2 Con Paso 1 Hacer
Para c<-0 Hasta 2 Con Paso 1 Hacer
Si f == c Entonces
matriz[f,c] = 1
FinSi
Fin Para
Fin Para
//Salida de datos
Para f<-0 Hasta 2 Con Paso 1 Hacer
Para c<-0 Hasta 2 Con Paso 1 Hacer
Escribir (matriz[f,c]) Sin Saltar
FinPara
Escribir ""
FinPara
FinAlgoritmo

b. Diagrama de Flujo.
3. Pruebas.
a. Pantallazos del resultado del algoritmo.

Ejercicio N.º 10:


Crear un programa que llene a una matriz con un listado de 20 números generados aleatoriamente
por la misma aplicación (es decir, no serán definidos estáticamente por el programador ni ingresados
por el usuario). Cada número generado puede variar solamente entre -100 hasta-1 y de 1 hasta 100.
Luego se mostraran los siguientes resultados:
a) Lista de números aleatorios almacenados en la matriz, pero presentados de manera descendente.
b) Porcentaje de números impares, que se generaron en el listado aleatorio.

Desarrollo:

1. Análisis.
a. Datos de entrada.
b. Datos de salida.
c. Proceso.
2. Diseño.
a. Pseudocódigo (Pseint).
b. Diagrama de flujo.
3. Pruebas.
a. Pantallazos del resultado del algoritmo.

Ejercicio N.º 11:


Hacer un algoritmo, que dada una matriz de filas F y C Columnas, de números enteros, permita:
• Agregar una fila en la última posición
• Agregar una columna en la última posición
• Insertar una fila en una posición determinada
Insertar una columna en una determinada posición

Desarrollo:
1. Análisis.
a. Datos de entrada.
b. Datos de salida.
c. Proceso.
2. Diseño.
a. Pseudocódigo (Pseint).
b. Diagrama de flujo.
3. Pruebas.
a. Pantallazos del resultado del algoritmo.

Ejercicio N.º 12:


Ingresar 20 números en un arreglo y mostrar luego, primero la lista de todos los números ubicados en
posición par que fueron ingresados y luego la lista de los números ubicados en posición impar.

Desarrollo:
1. Análisis.
a. Datos de entrada.

b. Datos de salida.

c. Proceso

2. Diseño.
a. Pseudocódigo (Pseint).

b. Diagrama de flujo.

3. Pruebas.
a. Pantallazos del resultado del algoritmo.

Ejercicio N.º 13:


Leer una secuencia de 20 números y almacenar en un vector sus factoriales.

Desarrollo:
1. Análisis.
a. Datos de entrada.
Ejemplo.
i: Entero
x: Entero

b. Datos de salida.
fact: Entero

c. Proceso.
para i = 1 Hasta 19 Con Paso 1 Hacer
Escribir "Ingresa un numero" Sin Saltar
leer v1[i]
para i = 1 Hasta 19 Con Paso 1 Hacer
si v1[i] < 0 Entonces
x=1
fact = 1
Mientras x <= v1[i] Hacer
fact = fact * x
x=x+1
v2[i] = fact

2. Diseño.
a. Pseudocódigo (Pseint)
Algoritmo Ejercicio_13
//Declaración de variables
Definir i Como Entero
Definir fact Como Entero
Definir x Como Entero
Dimension v1[20], v2[20]
//Proceso
para i = 1 Hasta 19 Con Paso 1 Hacer
Escribir "Ingresa un numero" Sin Saltar
leer v1[i]
FinPara
para i = 1 Hasta 19 Con Paso 1 Hacer
si v1[i] < 0 Entonces
Escribir "El numero ",v1[i]," no se puede calcular"
SiNo
x=1
fact = 1
Mientras x <= v1[i] Hacer
fact = fact * x
x=x+1
FinMientras
v2[i] = fact
FinSi
FinPara
para i = 1 Hasta 19 Con Paso 1 Hacer
Escribir "vector 1: ",v1[i]," = "," vector 2 (factoriales): ",v2[i]
FinPara
FinAlgoritmo

b. Diagrama de Flujo
3. Pruebas.

a. Pantallazos del resultado del algoritmo.

8999
OPINIÓN PERSONAL

Los problemas presentados en la práctica calificada número 3 (PC3) de algoritmos, profundiza como en el
PC1, un poco más en el mundo de la ingeniería de sistemas, contando con los pseudocódigos, diagramas
de de flujo, aplicar las estructuras unidimensionales y bidimensionales . Cumpliendo un factor muy
importante empleando los métodos de solución, beneficiándonos la comprensión y nos sirve de ayuda
para poder resolver los problemas planteados, en simples palabras podemos manifestar que el
pseudocódigo es simplemente la metodología más cómoda de graficar visualmente el manejo de
programas para efectuar una función.Logrando así la aplicación lógica para conformar la realidad en
términos de expresión matemática en el campo de acción del Ingeniero de Sistemas, con determinación e
iniciativa.Guiándonos de los elementos de algoritmos como tipo de datos constantes variables operadores
y expresiones.

También podría gustarte