Fundamentos de programación/Evaluación final
Ejercicio #1
[editar]
Ejercicio #2
[editar]Escribir un programa en pseudocódigo que realice las tareas especificadas a continuación:
| « |
Escribir un programa que capture un número desde el teclado, abra un archivo predeterminado y recupere el número de línea que corresponde al proporcionado por el usuario. Una vez recuperada la línea, es necesario separarla en dos: el texto antes de la primera coma y el texto después de ese carácter. Una vez separada la línea se debe imprimir en pantalla el texto a la izquierda con una etiqueta indicando que se trata de un nombre de cliente de un banco y el texto a la derecha indicando que se trata del saldo de la cuenta bancaria de esa persona. Debe mostrarle al usuario mensajes de error significativos. Asuma que la función Puede suponer que existe una biblioteca llamada
Suponga que la función |
» |
| Solución propuesta |
|---|
// Cargando las bibliotecas necesarias.
cargar ("cadenas.bib")
cargar ("es_texto.bib")
cargar ("funciones_útiles.bib")
// Declaración de funciones.
cadena subrutina obtener_nombre_cliente (cadena línea_de_texto)
cadena sección_izquierda
entero posición_coma
posición_coma := posiciónCarácter (línea_de_texto, ',')
si posición_coma > 1 entonces
sección_izquierda := subcadena_izquierda (línea_de_texto, posición_coma)
sino
sección_izquierda := ""
fin_si
regresar sección_izquierda
fin_subrutina
cadena subrutina obtener_saldo_cuenta(cadena línea_de_texto)
cadena sección_derecha
entero posición_coma
posición_coma := posiciónCarácter (línea_de_texto, ',')
si (posición_coma < largo_cadena (línea_de_texto)) y (posición_coma > 0) entonces
sección_derecha := subcadena_derecha (línea_de_texto, posición_coma)
sino
sección_derecha := ""
fin_si
regresar sección_derecha
fin_subrutina
// Programa principal
cadena nombre_del_archivo := "lista_clientes.csv"
entero archivo_abierto
entero número_cliente
cadena número_cliente_texto
cadena línea_actual
entero número_de_línea := 0
lógico más_líneas := verdadero
lógico línea_encontrada := falso
lógico error_convirtiendo_número := falso
cadena nombre_cliente
cadena saldo_cuenta
// Capturar el número del cliente a recuperar
nueva_linea ()
desplegar_en_pantalla ("¿Cuál es el número de cliente que desea consultar? ")
número_cliente_texto := leer_texto ()
intentar
número_cliente := texto_a_entero (número_cliente_texto)
atrapar NúmeroInválido:
error_convirtiendo_número := verdadero
fin_intentar
si error_convirtiendo_número = falso entonces
archivo_abierto := abrir_archivo (nombre_del_archivo, "leer")
si archivo_abierto > 0 entonces
mientras (más_líneas = verdadero) y (línea_encontrada = falso) hacer
línea_actual := leer_línea_de_archivo (archivo_abierto)
si largo_cadena(línea_actual) = 0 entonces
más_líneas := falso
sino
número_de_línea := número_de_línea + 1
si número_de_línea = número_cliente entonces
línea_encontrada := verdadero
fin_si
fin_si
fin_mientras
si línea_encontrada entonces
nombre_cliente := obtener_nombre_cliente (línea_actual)
saldo_cuenta := obtener_saldo_cuenta (línea_actual)
si largo_cadena(nombre_cliente) > 0 y largo_cadena(saldo_cuenta) > 0 entonces
nueva_linea ()
desplegar_en_pantalla ("Nombre del cliente: ")
desplegar_en_pantalla (nombre_cliente)
nueva_linea ()
desplegar_en_pantalla ("Saldo de la cuenta: ")
desplegar_en_pantalla (saldo_cuenta)
sino
nueva_linea ()
desplegar_en_pantalla ("Error: El registro del cliente en el archivo no tiene el formato correcto.")
fin_si
sino
nueva_linea ()
desplegar_en_pantalla ("Error: El número de cliente indicado es superior al número de clientes en el archivo.")
fin_si
sino
nueva_linea ()
desplegar_en_pantalla ("Error: No fue posible abrir el archivo con la información de los clientes.")
fin_si
sino
nueva_linea ()
desplegar_en_pantalla ("Error: El texto digitado no corresponde a un número entero positivo.")
fin_si
|
| Proyecto: Fundamentos de programación |
| Anterior: Cuarta evaluación parcial — Evaluación final — Siguiente: Actividad > Simulador de un cajero automático |