Ejercicio 1: Fundamentos de programación
Define qué es la programación estructurada y enumera sus principales ventajas.
Es un procedimiento que consiste en implementar programas de forma clara y sencilla
para que puedan ser mantenidos con facilidad. Fue expuesta por E.W Dijkstra en 1965
y su base teoría se apoyó en los trabajos de Bohm y Jacopini. Sus ventajas son :
Facilidad de mantenimiento, reducción de errores y reutilización de código.
Explica en qué consiste el teorema de Böhm y Jacopini y cómo se aplica en la
programación estructurada.
El teorema de Bohm y Jacopini se basa en tres principios :
- Un único punto de entrada y uno de salida
-Toda acción de algoritmo debe ser accesible
-No deben existir bucles infinitos.
Estos principios garantizan que los programas sean claros, predecibles y fáciles de
seguir.
Ejercicio 2: Algoritmia y herramientas de diseño
Diferencia entre un algoritmo y la algoritmia.
Un algoritmo es una secuencia de pasos y diferentes operaciones que debe realizar
el programa para conseguir resolver el problema planteado
La algoritmia es un conjunto ordenado y finito de operaciones que permite encontrar
la solución a un problema cualquiera.
Nombra y describe dos herramientas de diseño utilizadas para representar
algoritmos.
Diagrama de flujo. Representaciones graficas de los paso de un proceso, utilizando
símbolos estándar.
Pseudocódigo: Representación textual que describe las operaciones a realizar en un
lenguaje cercano al natural.
Ejercicio 3: Ciclo de vida de un proyecto software
Explica las etapas del ciclo de vida de un proyecto software y su propósito.
1:Analisis, en esta etapa se miran las necesidades del cliente y se busca la
solución mas optima, se crea un documento de requisitos. Se puede hacer mediante
diferentes técnicas como : entrevistas, brainstroming, prototipos...
2.Diseño, aquí se diseña la arquitectura del programa que puede ser estructurado o
dirigido a objetos.
3.Implementación, en esta etapa es la parte donde se codifica el programa.
4.Pruebas, se realizan pruebas de integración y de validación del código
5. Mantenimiento: aquí se procede a revisar, actualizar y/o modificar el código.
¿Por qué es importante realizar pruebas de validación en un software?
Es la ultima etapa de la integración aquí se realizan nuevas pruebas de la
aplicacion en su conjunto y ver si cumple con el documento de requisitos y ver si
cubre con las necesidades del usuario.
Ejercicio 4: Prueba de programas
Describe los tipos de pruebas de software: caja blanca y caja negra. Da un ejemplo
de cuándo usar cada una.
La pruebas de caja blanca buscan validar la estructura del programa, mientras que
las puebras de caja negra, analizan la entrada y la salida sin tener en cuenta el
funcionamiento interno.
¿Cuál es el objetivo principal del testing en programación?
Es importante realizar el testing para encontrar posibles defectos, tiene como
objetivo comprobar los requisitos funcionales y no funcionales del programa y
probar todo tipos de casos para buscar anomalías.
Ejercicio 5: Tipos de datos
Clasifica los tipos de datos simples en C#. Proporciona un ejemplo para cada tipo.
Un tipo de dato simpleno es compuesto y tiene un valor único, pueden haber
predefinidos como int, float, bool, son indivisibles, tienen existencia propia y
permiten operadores relacionales.Tambien están los definidos por el usuario como
puede ser un tipo de dato enum: enum días {D,L,M,X,J,V,S};
Explica qué es un array bidimensional y cómo se accede a sus elementos.
Un array bidimensional es un tipo de dato compuesto, se puede decir que es una
unión de varios vectores de tipo simple. La sintaxis de la matriz bidimensional es
la siguiente: <tipo> [,] <nombre> = new <tipo> [filas,columnas];
Ejercicio 6: Estructuras de selección
Escribe la estructura general de un condicional if-else y explica su
funcionamiento.
if condición Entonces
Instrucción1
Else
Intruccion2;
En este tipo de estructura de selecicion lo que pasa es lo siguiente: por ejemplo
si queremos saber si el numero introducido es par, la condición se vería asi (num %
2 == 0), si el numero introducido por teclado es par ejecutara la instrucción1 si
no, entrara en la parte del else y ejecutara la instruccion2.
Explica el propósito de la instrucción switch y cómo funciona la cláusula default.
Un switch es una especie de menú, básicamente puedes poner dependiendo de lo
introducido por teclado que el programa ejecute un caso o otro; por ejemplo en una
calculadora si queremos que sume introducimo el caso donde hemos programado la suma
(por ejemplo el 1), este reconocería el numero asociado y ejecutaría el caso. Por
otro lado la parte de default es cuando el usuario no introduce ningún caso
desarrollado, tenemos por ejemplo del 1-5 y el usuario introduce el 6, esto
entraría en el default.
Ejercicio 7: Estructuras de repetición
Compara las estructuras de repetición while, do-while y for. ¿Cuándo usarías cada
una?
While se ejecuta mientras una condición se cumpla, un do-while como mínimo se
ejecuta una vez y si la condición se cumple sigue, y un for es un bucle para ir
sumando o restando cada vez que entra en el bucle;
Proporciona un ejemplo práctico donde sería útil usar foreach.
Un foreach es útil para recorer información de un array, para devolver un array a
la inversa también. Por ejemplo creamos un array que almacene Fibonacci y mediante
un foreach podemos mostrar por pantalla todas las posiciones del array.
Ejercicio 8: Tratamiento de cadenas
¿Qué es un objeto de tipo string en C#? Menciona tres métodos útiles de la clase
string y describe su función.
Un string es una cadena de caracteres, es decir una palabra, una frase.
1.ToUpper() : Convierte todos los caracteres en mayúsculas
2. Split() : Divide la cadena en partes según un delimitador
3. Contains(): Verifica si una cadena contiene un texto especifico
¿Qué mostrará por pantalla el siguiente código?
string frase = "Hola Mundo";
Console.WriteLine(frase.ToUpper());
HOLA MUNDO
Ejercicio 9: Depuración de errores
Identifica y describe los tres tipos de errores que pueden surgir en un programa.
Error de compilación: errores en el código,
error en tiempo de ejecución: Fragmentos de código que parecen estar bien pero no
se ejecutan
Error lógico: dan resultados erroneos
¿Qué herramientas y técnicas se pueden usar para depurar un programa en Visual
Studio?
Uso de puntos de interrupción (breakpoints)
Ejecución paso a paso (F10)
Inspección de variables durante la ejecución