Skip to content

Examen: Parcial 2:2026_04_13:Robotica

Miguel edited this page Apr 20, 2026 · 1 revision

Examen Parcial 2: 2026-04-13. Robotica

  • Tiempo: 50 minutos
  • Descripción: Examen Parcial 1. Laboratorio. Grado en Ingeniería de Robótica Software
  • Fecha: 2025/Feb/24
  • Temario: Sesiones L1-L4

Contenido

Programa (10 ptos)

Los títulos en inglés (title/headings) se caracterizan por iniciar con mayúscula cada una de las palabras relevantes que lo componen. Hay diferentes estilos (Associated Press, APA, Chicago Manual of Style, MLA) que tienen pequeñas diferencias entre ellos.

El programa requerido en este ejercicio ha de llamarse headerCap.s y se pide realizar una transformación de una frase a un título de una forma simplificada que tiene que realizar las siguientes tareas:

  • Ha de pedir al usuario la frase a transformar.
  • La frase introducida por el usuario ha de almacenarse en memoria (no más de 120 caracteres).
  • El programa ha de transformar la frase introducida por el usuario en otra cuyas palabras empiezan por mayúscula (en la misma zona de memoria).       Esta transformación es independiente del tamaño de la palabra.       Si la palabra empieza por mayúscula, por dígito o carácter especial no hay que hacer ninguna transformación       La frase de entrada puede contener caracteres especiales o más de un espacio entre las palabras que se han de respetar en la cadena resultante
  • El programa ha de imprimir la frase transformada

Ejemplo1 de ejecución:

Introduzca frase a capitalizar: **** user input : Learning RISC-V assembler language
La frase transformada es: Learning RISC-V Assembler Language

Ejemplo 2 de ejecución:

Introduzca frase a capitalizar: **** user input : 3GPP gx interface   description
La frase transformada es: 3GPP Gx Interface   Description

NOTAS: Referencias de algunos caracteres ASCII que pueden ser útiles:

  • 'A' es 0x41
  • 'a' es 0x61
  • 'z' es 0x7A
  • El espacio en blanco es 0x20

Solución al programa

#Programa que transforma una frase a un título con todas las palabras en mayúsculas

	.include "servicios.asm"
	
	.eqv NEW_WORD 1
	.eqv NO_NEW_WORD 0
	.eqv A_MIN 0x61 #'a'
	.eqv Z_MIN 0x7A #'z'
	.eqv SPACE 0x20 #' '
	.eqv DIF -0x20 # a (0x61) - A(0x41)
	.eqv TITLE_SIZE 121
	
	.data
title:	.space TITLE_SIZE
msg1:	.string "Introduzca frase a capitalizar: "
msg2: 	.string "La frase transformada es: "
	
	.text
	#Imprimir mensaje para pedir frase
	li a7, PRINT_STRING
	la a0, msg1
	ecall
	
	#Leer la frase del usuario
	li a7, READ_STRING
	li a1, TITLE_SIZE
	la a0, title
	ecall

	#Imprimir salto de linea
	#li a7, PRINT_CHAR
	#li a0, '\n'
	#ecall

	#Transformación
	la t0, title
	li t1, NEW_WORD
	
bucle:	
	lb t2, 0(t0) #lee el siguiente caracter
	#comprueba si es el final de la cadena
	beqz t2, fin_transformacion
	
	#comprueba si es minúscula
	li t3, A_MIN	
	blt t2,t3, no_minuscula
	li t3, Z_MIN
	bgt t2, t3, no_minuscula
		#es minúscula
	li t4, NEW_WORD
	bne t1, t4, incrementa_puntero
		#es minúscula y tengo el flag que me indica que es nueva palabra => Tranformo
		
	addi t2, t2, DIF #transforma minúscula en mayúscula
	sb t2,0(t0)      #guarda en string
	li t1, NO_NEW_WORD # quita marca para no cambiar siguientes caracteres
	j incrementa_puntero

no_minuscula:
	li t1, NO_NEW_WORD #resetea el flag, solo se pone si hay un espacio
	#comprobar si es un espacio => para saber que siguiente vocal hay que transformarla.
	li t3, SPACE
	bne t2,t3,incrementa_puntero
	li t1, NEW_WORD
		
incrementa_puntero:	
	addi t0, t0, 1

	 j bucle	 

fin_transformacion:		
	#Imprimir mensaje para mostrar transformación
	li a7, PRINT_STRING
	la a0, msg2
	ecall

	#Imprimir frase transformada
	li a7, PRINT_STRING
	la a0, title
	ecall
	
	#Imprimir salto de linea
	li a7, PRINT_CHAR
	li a0, '\n'
	ecall
			
	#exit
	li a7, EXIT
	ecall

Evaluación

La evaluación se hace en dos fases:

  • Comprobación de la funcionalidad siguiendo indicaciones en descripción de ejercicio
  • Inspección visual del código: código limpio, claro, con definición de las constantes apropiadas, con comentarios, fallos de programación, nombre de fichero correcto, etc.

Autores

Licencia

Enlaces

Página principal


Sesiones de Prácticas

P1: Simulador RARs

L1: El simulador RARs
L2: Calculando expresiones
L3: Práctica 1-3. Variables

P2: E/S mapeada. Llamadas al sistema

L4: Pract 2-1. E/S mapeada
L5: Práctica 2-2: Inst. ecall
L6: Prác 2-3: Cadenas

P3: Bucles y Saltos condicionales

L7: Práct 3-1: Bucles y saltos
L8: Práct 3-2: Cadenas II

P4: Subrutinas

L9: Pract 4-1: Subrut. Nivel-1
L10: Pract 4-2: La pila
L11: Pract 4-3: Recursividad

P5: Memoria Dinámica

L12: Pract 5-1. Heap. Listas

VÍDEO DE DESPEDIDA

SESIONES ADICIONALES

L13: RV32I: Resto de instrucciones
L14: Macros
L15: Entrada/Salida a bajo nivel
L16: Multiplicaciones/divisiones. Unit Tests 🚧
L17: Biblioteca stdio: salida a alto nivel 🚧
Los registros de estado y control (CSR)
Interrupciones y excepciones
Borrador

SOLUCIONES

Soluciones a los ejercicios planteados en cada sesión para practicar:
Sesión L1
Sesión L2
Sesión L3
Sesión L4
Sesión L5
Sesión L6
Sesión L7
Sesión L8
Sesión L9
Sesión L10
Sesión L11
Sesión L12

Ejercicios de examen

Simulacro examen 1
GISAM. Ordinario. 2019-Dic-11
GISAM. Extra. 2020-Jul-03
GISAM. Ordinario. 2021-Ene-21
GISAM. Ordinario. 2022-Ene-10
GISAM. Extra. 2022-Jun-29
GISAM. Parcial 1. 2022-Oct-26
GISAM. Parcial 2. 2022-Nov-30
GISAM. Parcial 3. 2022-Dic-21
GISAM. Parcial 1. 2023-Oct-09
GISAM. Parcial 2. 2023-Nov-11
GISAM. Parcial 3. 2023-Dic-20
GISAM. Extra. 2024-Jun-17
GISAM. Parcial 1. 2024-Oct-14
GISAM. Parcial 2. 2024-Nov-13
GISAM. Parcial 3. 2024-Dic-16
GISAM. Extra. 2025-Jun-17
GISAM. Parcial 1. 2025-Oct-20
GISAM. Parcial 2. 2025-Nov-19
GISAM. Parcial 3. 2026-Enero-9
GISAM. Parcial 1. 2026-Oct-21
TELECO. Ordinario. 2019-Dic-13
TELECO. Extra. 2020-Jul-07
TELECO. Ordinario. 2021-Ene-21
TELECO. Extra. 2021-Jul-02
TELECO. Ordinario. 2022-Ene-10
TELECO. Extra. 2022-Jun-29
TELECO. Ordinario. 2023-Ene-10
TELECO. Extra. 2023-Jun-29
TELECO. Parcial 1. 2023-Oct-20
TELECO. Parcial 2. 2023-Nov-17
TELECO. Parcial 3. 2023-Dic-22
TELECO. Extra. 2024-Jun-17
TELECO. Parcial 1. 2024-Oct-10
TELECO. Parcial 2. 2024-Nov-21
TELECO. Parcial 3. 2024-Dic-19
TELECO. Extra. 2025-Jun-17
TELECO. Parcial 1. 2025-Oct-10
TELECO. Parcial 2. 2025-Nov-13
TELECO. Parcial 3. 2026-Ene-21
TELECO. Extra. 2026-Jun-25
TELECO. Parcial 1. 2026-Oct-09
Robótica. Ordinario. 2020-Jun-1
Robótica. Extra. 2020-Jul-13
Robótica. Ordinario. 2021-Mayo-20
Robótica. Extra. 2021-Junio-16
Robótica. Parcial 1. 2022-Feb-25
Robótica. Parcial 2. 2022-Abril-1
Robótica. Parcial 3. 2022-Mayo-6
Robótica. Parcial 1. 2023-Feb-27
Robótica. Parcial 2. 2023-Mar-27
Robótica. Parcial 3. 2023-May-08
Robótica. Parcial 1. 2024-Feb-26
Robótica. Parcial 2. 2024-Mar-20
Robótica. Parcial 3. 2024-May-06
Robótica. Extra. 2024-Junio-24
Robótica. Parcial 1. 2025-Feb-25
Robótica. Parcial 2. 2025-Mar-31
Robótica. Parcial 3. 2025-May-19
Robótica. Parcial 1. 2026-Feb-23
Robótica. Parcial 2. 2026-Abr-13
Robótica. Parcial 3. 2026-May-11
Datos. Parcial 1. 2023-Oct-09
Datos. Parcial 2. 2023-Nov-15
Datos. Parcial 3. 2023-Dic-20
Datos. Parcial 1. 2024-Oct-09
Datos. Parcial 2. 2024-Nov-13
Datos. Parcial 3. 2025-Ene-17
Datos. Parcial 1. 2025-Oct-15
Datos. Parcial 2. 2025-Nov-19

Clone this wiki locally