Este documento define los requisitos del sistema para la Práctica de Programación II, un recurso académico compuesto por 50 ejercicios de programación resueltos en dos lenguajes: PSeInt (pseudocódigo) y C#. El recurso está orientado a la materia Programación II de UNIFRANZ, bajo la cátedra del Ing. Jesus Larrazabal Salas.
El propósito central del recurso es que el estudiante pueda copiar y pegar el código de cada ejercicio en su entorno de trabajo, ejecutarlo y observar su comportamiento, cubriendo progresivamente los fundamentos de la programación: declaración de variables y tipos de datos, salida por consola, condicionales, ciclos, arreglos, matrices, cadenas, funciones/métodos y programación orientada a objetos.
El idioma de trabajo del recurso y de la interacción es el español.
El "sistema" es un documento técnico-académico de práctica que reúne 50 ejercicios autocontenidos. Cada ejercicio se compone de:
El recurso debe ser utilizable tanto en el entorno PSeInt (perfil Flexible) como en Visual Studio mediante una Aplicación de consola en C#. El documento debe respetar y hacer explícitas las diferencias de indexación entre lenguajes (arreglos con base 0 en C# y base 1 en PSeInt) y la inclusión de bloques Funcion/SubProceso dentro del mismo bloque copiable.
Program.cs, pegando el bloque completo y ejecutándolo con Ctrl + F5, para probar la solución en C#.Funcion o SubProceso que aparecen antes de Algoritmo se incluyan dentro del mismo bloque gris, para copiar el ejercicio completo de una sola vez.bool EsPrimo(int numero) que devuelva true si el número es primo y false en caso contrario, y que se use para mostrar todos los números primos entre 1 y 1000 (Ejercicio 44).bool NotaValida(double nota) que verifique que una nota esté entre 0 y 100, y que se use para solicitar las notas de cinco estudiantes (Ejercicio 45).Estudiante con atributos Nombre, Apellido, Edad, Carrera y Nota final, un método que determine si el estudiante aprobó, y que desde Main() se creen al menos tres objetos de tipo Estudiante (Ejercicio 46).CuentaBancaria con número de cuenta, titular y saldo, que implemente los métodos Depositar(), Retirar() y ConsultarSaldo(), y que no permita retirar una cantidad superior al saldo disponible (Ejercicio 47).Producto (código, nombre, precio, cantidad) y un menú de consola (Ejercicio 48).Sub-requisitos del Ejercicio 48:
Como estudiante, quiero registrar productos en el inventario (Ejercicio 48).
Como estudiante, quiero mostrar los productos registrados (Ejercicio 48).
Como estudiante, quiero buscar productos por código (Ejercicio 48).
Como estudiante, quiero modificar las cantidades de un producto (Ejercicio 48).
Como estudiante, quiero calcular el valor total del inventario (Ejercicio 48).
Como estudiante, quiero un sistema de gestión de estudiantes con programación orientada a objetos, donde cada estudiante tenga código, nombre, apellido, edad, carrera y nota final, almacenados en una colección apropiada, con un menú de consola (Ejercicio 49).
Sub-requisitos del Ejercicio 49:
Como estudiante, quiero registrar estudiantes (Ejercicio 49).
Como estudiante, quiero listar estudiantes (Ejercicio 49).
Como estudiante, quiero buscar estudiantes por código (Ejercicio 49).
Como estudiante, quiero buscar estudiantes por nombre (Ejercicio 49).
Como estudiante, quiero mostrar los estudiantes aprobados (Ejercicio 49).
Como estudiante, quiero mostrar los estudiantes reprobados (Ejercicio 49).
Como estudiante, quiero calcular el promedio general (Ejercicio 49).
Como estudiante, quiero un sistema completo de ventas para una pequeña tienda, como aplicación de consola en C# con programación orientada a objetos, con las clases Producto (código, nombre, categoría, precio, stock), Cliente (código, nombre, apellido, teléfono), Venta y DetalleVenta, y un menú principal de 8 opciones (Ejercicio 50).
Sub-requisitos del Ejercicio 50:
Estos requisitos derivan de las declaraciones, sentencias y estructuras que el material fuente utiliza explícitamente en el pseudocódigo PSeInt y en C#.
Declaración de variables numéricas:
Como Real) para manejar números decimales, como en los ejercicios de área, temperatura, promedios e importes.Como Entero) para manejar números enteros, como en los contadores, edades, años y posiciones.Definir a (y sus variables asociadas de tipo entero o real) para almacenar operandos de operaciones aritméticas.Definir b para almacenar el segundo operando de las operaciones.Definir c para almacenar un tercer operando o variable auxiliar.Definir importe para almacenar el monto de una compra.Definir total para almacenar una suma acumulada o el total final.Definir m para representar una matriz de valores.Definir n para almacenar un número ingresado por el usuario o un límite de iteración.Definir n Como Entero para el conteo o límite entero de los ciclos.Definir f para almacenar un valor calculado, como un factorial.Definir r como variable de retorno de las funciones y subprocesos.Definir secreto para almacenar el número aleatorio a adivinar.Definir pre (y Definir preP como arreglo de precios) para almacenar precios de productos.Definir cod y Definir codP para almacenar códigos de producto.Definir op Como Entero para almacenar la opción seleccionada del menú.Definir edad Como Entero para almacenar la edad de una persona.Definir anio Como Entero para almacenar un año.Definir i Como Entero como variable contadora de las estructuras repetitivas.Definir x Como Entero para almacenar un número a evaluar o buscar.Definir notas como arreglo de calificaciones.Declaración de variables de cadena de texto:
Definir nombre de tipo Cadena para almacenar cadenas de texto, como nombres de estudiantes y productos.Definir t de tipo Cadena para almacenar el texto a evaluar como palíndromo.anterior Como Cadena para rastrear la posición o el carácter anterior durante el recorrido de una frase.Estructuras de control (anidamiento y bloques):
FinSi FinSi, para resolver clasificaciones y decisiones múltiples.FinSi FinPara, para evaluar condiciones en cada iteración.FinSi FinFuncion, para devolver resultados lógicos desde bloques de función.Falso (y Verdadero) dentro de condicionales, para representar estados booleanos como banderas de hallazgo o validación.Repetir ... Hacer (equivalente a Hacer ... Repetir en la semántica del bucle), para repetir bloques hasta cumplir una condición.Actores de sistema (no personas):
Funcion/SubProceso antes de Algoritmo, incluir también esos bloques en la copia.Program.cs.Program.cs.Al no especificarse un diseño visual en el material fuente, se adoptan valores por defecto apropiados al dominio educativo-técnico:
Concepto "código en parejas": cada ejercicio presenta de forma paralela y contigua su solución en PSeInt y en C#, permitiendo al estudiante comparar la lógica equivalente en pseudocódigo y en un lenguaje real. El diseño enfatiza la portabilidad por copia y pegado de bloques autocontenidos y resalta visualmente la correspondencia de estructuras (declaración de variables, condicionales, ciclos, arreglos) entre ambos lenguajes.
Como Entero, Como Real, Como Cadena, Como Logico) debe ser coherente con el uso que se le da en cada ejercicio.System (consola, Math, Random) y System.Collections.Generic (uso de List<T> en los sistemas de los Ejercicios 48, 49 y 50).Math.Max().Math.Pow().Array.Sort(), exigiendo un algoritmo de ordenamiento manual.Main().Definir) y arreglos/matrices (Dimension).No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No user flows yet.
The User Flow Agent will generate per-persona navigation diagrams after SRD updates.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No user flows yet.
The User Flow Agent will generate per-persona navigation diagrams after SRD updates.
No comments yet. Be the first!