Está en la página 1de 28

1) ODD NUMBERS

Develop a program that meets next requirements:

Integer numbers are requested, reading one by one. Maximum number of integers is N, being N
symbolic constant with datatype. Reading will also stop when M odd consecutive numbers are
entered, being M symbolic constant with datatype, that is defined within the main.

Program will display a message telling how many integers are entered and whether M odd straight
numbers were also entered.

WHILE statement is not allowed.

Initialize constants, for instance N=10 and M=4.

Running examples (in spanish)


2) MATRIX

Develop a program that meets next requirements:

A character bidimensional array will be drawn, using a symbol entered by the user. Ths symbol is
requested by a message and is read using a statement, pressing the enter key. SCANF is not
allowed.

If the symbol is a lowercase vowel it will be used to draw the array. If the symbol is an uppercase
vowel, the symbol will be its lowercase vowel.

In any other case symbol # will be used. (mandatory SWITCH for this requirement).

Tha array drawn will be of MxM positions where M is a symbolic constant without datatype
(mandatory FOR for this part), realizing that only positions left and below the diagonal (including)
are drawn.

Running example using M=5 (in spanish)


GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – PRIMER CONTROL EVALUACIÓN CONTINUA
GRUPO 22 - 20 OCTUBRE 2021

NOMBRE Y APELLIDOS:

1) MEDIA DEL EXPEDIENTE

Realiza un programa que cumpla las siguientes especificaciones:

Se solicitan por pantalla notas de asignaturas para calcular la nota media del expediente de un
estudiante y ser aceptado en el programa Erasmus si cumple una serie de requisitos.

Para ello, el estudiante introduce el nombre de la asignatura y la nota (valor real), utilizando scanf
solo cuando sea estrictamente necesario. El número de asignaturas que tienen que introducirse
es MAX, siendo MAX constante simbólica sin tipo. Si, en un momento dado, se han introducido
un número mínimo de asignaturas (MIN, constante simbólica sin tipo) y la media en ese momento
es superior a 7 se para la introducción de datos y se da un mensaje de alumno aceptado en el
programa Erasmus, indicando la media.

Si se llega al máximo de asignaturas y la media es superior o igual a 6 se da también el mensaje


de aceptación.

En cualquier otro caso se da un mensaje de no aceptación, indicando también la media.

Ejemplos de ejecución con MAX=7 y MIN=4:


#include <stdio.h>

#define MAX 7 ambas son constantes simbólicas sin tipo

#define MIN 4

main()
{

int asignaturas=0; inicializamos el número de asignaturas leídas

char asignatura[20]; para almacenar el nombre de la asignatura


float totalnotas=0;

para llevar la cuenta del total de los valores las notas introducidas

float media=0; para almacenar la media

float nota; aquí leeremos cada nota


while(asignaturas<MAX&&(asignaturas<MIN||media<7))

mientras no hayamos llegado al total MAX de asignaturas y tampoco al número MIN con media
mayor que 7 leemos datos

{
printf("Asignatura: ");
gets(asignatura);
printf("Nota: ");
scanf("%f",&nota);

asignaturas++; aumentamos el contador de asignaturas

totalnotas=totalnotas+nota; aumentamos el total de valores de notas

media=totalnotas/asignaturas; calculamos la media en este momento


}
if (media>=6) printf("Estudiante aceptado, media=%.2f",media);

si hemos salido ya, sea por MAX o por MIN y media>=7 basta que la media sea 6 para que esté
aceptado

else printf("Estudiante no aceptado, media=%.2f",media);


}
2) MATRIZ

Realiza un programa que cumpla las siguientes especificaciones:

Se quiere dibujar una matriz de caracteres, mediante unos símbolos introducidos por el usuario.
Para ello se solicita un símbolo mediante un mensaje y se lee pulsando el símbolo sin verse por
pantalla.

En función del símbolo introducido, si es un dígito, será el símbolo a dibujar. Si es una letra
minúscula, el símbolo a dibujar será C, donde C es una constante simbólica con tipo definida fuera
del programa principal. En cualquier otro caso se tomará por defecto el símbolo #. (SWITCH no
permitido para esta parte).

La matriz dibujada será de 10 x 10 posiciones (FOR obligatorio para esta parte), teniendo en cuenta
que se dibujan las posiciones a la parte superior derecha, incluyendo la diagonal.

Ejemplo de ejecución con C=’&’, pulsando r:

Ejemplo de ejecución con C=’&’, pulsando 3:

#include <stdio.h>
#include <conio.h>

main()
{

const char C='&'; constante con tipo, necesariamente char


char simbolo;
puts("Introduce simbolo");

simbolo=getch(); leemos pulsando sin verse

analizamos casos con if else


if (simbolo>='0'&&simbolo<='9'){
}
else if (simbolo>='a'&&simbolo<='z') simbolo=C;
else simbolo='#';
puts("\nLa matriz es");
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10;j++)
{
if (i<=j) printf("%c ",simbolo);

imprime el carácter si estamos por encima de la diagonal, incluyéndola, es decir el valor de la fila
es menor o igual que el de la columna, en caso contrario imprime un espacio

else printf(" ");


}

puts(""); para saltar a la siguiente fila


}
}
GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – PRIMER CONTROL EVALUACIÓN CONTINUA
GRUPO 24 - 20 OCTUBRE 2021

NOMBRE Y APELLIDOS:

1) NÚMERO CON N DIVISORES

Realiza un programa que cumpla las siguientes especificaciones:

Se solicita por pantalla un número entero de 3 cifras sin utilizar printf. Se lee este número y en el
caso en el que no tenga 3 cifras se vuelve a solicitar hasta que tenga 3 cifras (WHILE obligatorio
para este requisito).

Una vez cumpla el requisito se calculan cuantos valores entre los números 2 y 20 son divisores del
número introducido. Es decir, el número introducido es múltiplo de cada uno de estos valores.
(DO WHILE obligatorio para este requisito). Si al menos N números no son divisores se vuelve a
repetir todo el proceso, incluyendo por supuesto la lectura del número. Se indicará cuantos
números han sido divisores del número introducido.

N es una constante simbólica sin tipo al que debéis dar un valor, por ejemplo 3.

Ejemplos de ejecución con N=3:


2) MATRIZ

Realiza un programa que cumpla las siguientes especificaciones:

Se quiere dibujar una matriz de caracteres, mediante unos símbolos introducidos por el usuario.
Para ello se solicita un símbolo mediante un mensaje y se lee simplemente pulsando el símbolo y
viéndolo por pantalla.

En función del símbolo introducido, si es aritmético (+ - / * %), será el símbolo a dibujar. Si no es


aritmético se tomará por defecto el símbolo @. (SWITCH obligatorio para esta parte).

La matriz dibujada será de M x M posiciones donde M es una constante simbólica entera. (FOR
obligatorio para esta parte)

Observad en los ejemplos de ejecución que se dibujan los caracteres correspondientes a la parte
superior izquierda, incluyendo la diagonal.

Ejemplo de ejecución con M=4:

Ejemplo de ejecución con M=7

NO SE PERMITE EL USO DE VARIABLES GLOBALES.


GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – PRIMER CONTROL EVALUACIÓN CONTINUA
GRUPO 21 - 19 OCTUBRE 2022

NOMBRE Y APELLIDOS:

NORMAS DEL EXAMEN:


SOLO SE PERMITE ABRIR EL COMPILADOR (DEV C++). UNA VEZ TERMINADOS LOS DOS PROGRAMAS QUE SE PIDEN
EN ESTE EXAMEN HAY QUE SUBIRLOS A AULA GLOBAL. COMPROBAD QUE HABÉIS SUBIDO LOS DOS FICHEROS.

NO SE PERMITE EL USO DE VARIABLES GLOBALES.

NO SE PERMITE EL USO DE SENTENCIAS NO ESTRUCTURADAS.

NO SE PERMITE EL USO DE FUNCIONES DEFINIDAS POR EL USUARIO.

NO SE PERMITE EL USO DE TIPOS DE VARIABLES AÚN NO EXPLICADOS EN LA ASIGNATURA.

NO SE RESUELVEN DUDAS RELATIVAS A ERRORES DE COMPILACIÓN.

NO PUEDEN CAMBIARSE LAS ESPECIFICACIONES DEL PROGRAMA.

EJERCICIO 1: INTRODUCIR UN NÚMERO PRIMO


Realiza un programa que cumpla las siguientes especificaciones:

El programa leerá números enteros hasta introducir un número primo. En ese caso terminará
mostrando por pantalla la media (con 2 decimales) de todos los números no primos introducidos
anteriormente. Existe un número máximo de números a introducir, que viene definido por N,
constante simbólica sin tipo, que, como ejemplo, tomará el valor 10. Si se llega al máximo de
números sin introducir un número primo se dará únicamente un mensaje indicando esta
circunstancia.

Requisitos: WHILE obligatorio para cualquier tipo de sentencia iterativa.


EJERCICIO 2: IMPRESIÓN DE NÚMEROS Y CARACTERES
Realiza un programa que cumpla las siguientes especificaciones:

El programa lee dos números enteros positivos, que indican el menor y el mayor número de una
serie de números. Los números volverán a solicitarse en el caso en el que no se cumpla esta
condición de menor y mayor.

Una vez leídos se imprimen todos los números que están entre ambos, 5 por línea, teniendo en
cuenta que si un número es múltiplo de 2 o de 3 (no de ambos) en lugar del número se imprimirá
una letra, comenzando con la A mayúscula y así sucesivamente, hasta llegar a la Z, que volveremos
a comenzar por la A, etc. Observad el siguiente ejemplo de ejecución. Intentad que los valores
queden encuadrados al imprimirlos.

Requisitos: FOR obligatorio para la impresión.


GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – PRIMER CONTROL EVALUACIÓN CONTINUA
GRUPO 22 - 19 OCTUBRE 2022

NOMBRE Y APELLIDOS:

NORMAS DEL EXAMEN:


SOLO SE PERMITE ABRIR EL COMPILADOR (DEV C++). UNA VEZ TERMINADOS LOS DOS PROGRAMAS QUE SE PIDEN
EN ESTE EXAMEN HAY QUE SUBIRLOS A AULA GLOBAL. COMPROBAD QUE HABÉIS SUBIDO LOS DOS FICHEROS.

NO SE PERMITE EL USO DE VARIABLES GLOBALES.

NO SE PERMITE EL USO DE SENTENCIAS NO ESTRUCTURADAS.

NO SE PERMITE EL USO DE FUNCIONES DEFINIDAS POR EL USUARIO.

NO SE PERMITE EL USO DE TIPOS DE VARIABLES AÚN NO EXPLICADOS EN LA ASIGNATURA.

NO SE RESUELVEN DUDAS RELATIVAS A ERRORES DE COMPILACIÓN.

NO PUEDEN CAMBIARSE LAS ESPECIFICACIONES DEL PROGRAMA.

EJERCICIO 1: ACERTAR NÚMERO


Realiza un programa que cumpla las siguientes especificaciones:

El programa comienza imprimiendo en mensaje presentándose, diciendo:

Me llamo NOMBRE, y tu?

donde NOMBRE es una constante con tipo llamada nombre, que, para probar el programa, tomará
como valor Siri.

El usuario introducirá su nombre y primer apellido. El programa mostrará en pantalla otro mensaje
saludando al usuario, de la forma:

Hola Nombre Apellido, tienes que acertar un numero entero entre 0 y 50

Intento 1:

El número entero a acertar se encuentra almacenado en N, una constante con tipo (dadle un valor
para probar el programa, obviamente entre 0 y 50).

El usuario dispone de 7 intentos para conseguirlo.

En cada caso, tras introducir un número, el programa mostrará un mensaje diciendo si el número
a acertar es MENOR, MAYOR que el introducido o si se ha acertado, de tal forma que, en caso de
no acertar, el siguiente mensaje mostrará el nuevo intervalo de valores posibles, tal como muestra
el ejemplo de ejecución.

Si el número introducido no pertenece al intervalo se tendrá en cuenta para el total de intentos.

Si se llega al final de intentos sin acierto se dará un mensaje explicativo.

Requisitos: WHILE obligatorio para cualquier tipo de sentencia iterativa.


EJERCICIO 2: TRIÁNGULO
Realiza un programa que cumpla las siguientes especificaciones:

El programa solicitará un número impar menor que 26. Lo solicitará hasta que se cumpla este
requisito. Posteriormente dibujará un triángulo con símbolos @, hasta completar una línea con
tantos símbolos como el número leído, tal como muestra el ejemplo.

Requisitos: DO WHILE obligatorio para cualquier tipo de sentencia iterativa. FOR obligatorio para
el dibujo del triángulo.
GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – PRIMER CONTROL EVALUACIÓN CONTINUA
GRUPO 24 - 19 OCTUBRE 2022

NOMBRE Y APELLIDOS:

NORMAS DEL EXAMEN:


SOLO SE PERMITE ABRIR EL COMPILADOR (DEV C++). UNA VEZ TERMINADOS LOS DOS PROGRAMAS QUE SE PIDEN
EN ESTE EXAMEN HAY QUE SUBIRLOS A AULA GLOBAL. COMPROBAD QUE HABÉIS SUBIDO LOS DOS FICHEROS.

NO SE PERMITE EL USO DE VARIABLES GLOBALES.

NO SE PERMITE EL USO DE SENTENCIAS NO ESTRUCTURADAS.

NO SE PERMITE EL USO DE FUNCIONES DEFINIDAS POR EL USUARIO.

NO SE PERMITE EL USO DE TIPOS DE VARIABLES AÚN NO EXPLICADOS EN LA ASIGNATURA.

NO SE RESUELVEN DUDAS RELATIVAS A ERRORES DE COMPILACIÓN.

NO PUEDEN CAMBIARSE LAS ESPECIFICACIONES DEL PROGRAMA.

EJERCICIO 1: SÍMBOLOS CONSECUTIVOS


Realiza un programa que cumpla las siguientes especificaciones:

El programa leerá caracteres del teclado, solo pulsándolos, hasta que se introduzcan N símbolos
seguidos que sean iguales. Nos dará como resultado cuantos símbolos se han introducido en total
y cuál es el símbolo repetido.

N es una constante simbólica sin tipo que, para probar el programa, tomará el valor 4.

Requisitos: WHILE obligatorio para cualquier tipo de sentencia iterativa.


EJERCICIO 2: MÁXIMO COMÚN DIVISOR POR EUCLIDES
Realiza un programa que cumpla las siguientes especificaciones:

El programa solicitará 2 números enteros positivos y calculará el máximo común divisor de ambos
utilizando el algoritmo de Euclides.

Mientras los números no sean positivos los volverá a solicitar.

El algoritmo de Euclides es el siguiente:

Dados dos números a y b, donde a es mayor que b:

Si b es 0, el mcd (a,b) es a y el algoritmo termina.

En otro caso el mcd (a,b) es igual al mcd (b,r) donde r es el resto de dividir a entre b.

Ejemplo: mcd de 244 y 116

244 dividido 116 da como resto 12

116 dividido 12 da como resto 8

12 dividido 8 da como resto 4

8 dividido 4 da como resto 0, por lo que el mcd es 4

Requisitos: DO WHILE obligatorio para cualquier tipo de sentencia iterativa.


BACHELOR IN INDUSTRIAL ELECTRONICS AND AUTOMATION
ENGINEERING

PROGRAMMING – FIRST EXAM

GROUP 29 – OCTOBER 20TH 2022

EXAM RULES:
THE COMPILER (DEV C++) IS THE ONLY PROGRAM ALLOWED TO OPEN. ONCE YOU HAVE COMPLETED BOTH
PROGRAM REQUESTED IN THIS EXAM, YOU HAVE TO UPLOAD THEM TO GLOBAL CLASSROOM. THERE IS A SPECIFIC
LINK. PLEASE, MAKE SURE BOTH FILES ARE UPLOADED.

GLOBAL VARIABLES ARE NOT ALLOWED.

NON-STRUCTURED STATEMENTS ARE NOT ALLOWED.

USER-DEFINED FUNCTIONS ARE NOT ALLOWED.

VARIABLE DATATYPES NOT EXPLAINED YET ARE NOT ALLOWED.

QUESTIONS RELATED TO COMPILATION ERRORS WILL BE NOT ANSWERED.

PROGRAM REQUIREMENTS CAN NOT BE CHANGED.

EXERCISE 1: SCORING GAME


Develop a program that meets next requirements:

A player is getting (reading) scores, with values between -5 and 5. If a score is wrong is read again.

Scores are added, ending the game when the maximum number of plays is reached. This
maximum number is stored in a symbolic constant N, which will take the value 10.

Player wins the game if the final sum is positive, loses if the value is negative, and it is a stalemate
if the sum is 0. A message must be displayed in each situation.

Game is ended also if after a score is impossible to change the final result, even with scores
remaining to get.

REQUIREMENTS: WHILE is mandatory for each iterative statement.

First example: game ended before 10 plays (after 8 plays) because was impossible to change the
result
Second example: player loses after 11 plays (1 play is wrong)

Symbolic constant N is a define directive


#define N 10

We need 3 integer variables, one to read the score, a counter for the plays, and another to
calculate the result of the game.

int score;
int plays=0;
int game=0;

A message asking for scores…

puts("Enter scores (-5,5)");

While loop until number of plays is 10 or the game is decided


while(plays<10&&abs(game)/(N-plays)<5)

abs function could be done evaluating both values game and -game.

And inside the loop… just read the score, and if the score is right, add the score to the game, and
increase the counter of plays

{
scanf("%i",&score);
if (score>=-5&&score<=5)
{
plays++;
game=game+score;
}
}

When the loop has ended, it is just to check the possible values of game to display a message.

if (game>0) puts("player wins");


else if (game<0) puts ("player loses");
else puts("stalemate");
EXERCISE 2: LOWERCASE STRINGS
Develop a program that meets next requirements:

The program reads characters, just pressing a key, that are displayed in the screen. Lowercase
letters are of special interest, more specifically lowercase letter strings.

Output will be the longest lowercase string (number of characters) but considering that if the
lowercase is not the character before or the character after in the alphabet to the previous one
the string is broken. For instance, to keep the string, after c, only b or d could be entered.

Program ends when a 10-lowercase string is entered or when N non lowercase symbols are
entered.

N is an integer constant that will take value 20.

REQUIREMENTS: DO WHILE is mandatory for each iterative statement.

In this example Longest lowercase string meeting requirements is defgfe

Integer constant N is
const int N=20;

We need variable key and previous to check the values of the characters, integer longest to store
the length of the longest string, int nonlowercase to count the number of non-lowercase symbols,
and integer string to store the length of the current string. Some variables need to be initialized.

char key;
char previous;
int longest=0;
int nonlowercase=0;
int string=0;

We need to read the first symbol before the do while loop to be able to compare them in the
condition at the end of the loop.

key=getche(); //pressing and displaying


if (key>='a'&&key<='z') string++; //increasing the current string
else nonlowercase++; //increasing the counter if it’s not a lowercase

Do while loop until we reach the maximum number of non-lowercase allowed or the current
lowercase string has length 10.

do
{
//loop code
}
while(nonlowercase<N&&string<10);

And the code inside the loop…

previous=key; //previous symbol is the symbol we read before


key=getche(); //reading a new symbol
if (key>='a'&&key<='z') //if lowercase
{
if (key+1==previous||key-1==previous) string++;
// increasing the counter when after or before (alphabet)
else //break the string
{
if (string>longest) longest=string;
//checking if the current string is the longest
string=1; //starting a new string due it’s lowercase
}
}
else //it’s not a lowercase
{
nonlowercase++; //increasing the counter
if (string>longest) longest=string;
//checking also if the current string is the longest
string=0; //cleaning the current string length
}

When leaving the loop it’s necessary again to check if the current string is the longest because
this case could be length 10.

if (string>longest) longest=string;
printf("\nLongest lowercase string is %i",longest);
BACHELOR IN ROBOTICS ENGINEERING
PROGRAMMING – FIRST EXAM
GROUP 250 – OCTOBER 20TH 2022

NAME AND SURNAME:

EXAM RULES:
THE COMPILER (DEV C++) IS THE ONLY PROGRAM ALLOWED TO OPEN. ONCE YOU HAVE COMPLETED BOTH
PROGRAM REQUESTED IN THIS EXAM, YOU HAVE TO UPLOAD THEM TO GLOBAL CLASSROOM. THERE IS A SPECIFIC
LINK. PLEASE, MAKE SURE BOTH FILES ARE UPLOADED.

GLOBAL VARIABLES ARE NOT ALLOWED.

NON-STRUCTURED STATEMENTS ARE NOT ALLOWED.

USER-DEFINED FUNCTIONS ARE NOT ALLOWED.

VARIABLE DATATYPES NOT EXPLAINED YET ARE NOT ALLOWED.

QUESTIONS RELATED TO COMPILATION ERRORS WILL BE NOT ANSWERED.

PROGRAM REQUIREMENTS CAN NOT BE CHANGED.

EXERCISE 1: CHECK MOBILE PHONE PIN


Develop a program that meets next requirements:

Program is about controlling the reading of a PIN number. PIN number has 4 digits. To check if
the PIN is correct, the program reads each digit pressing a key, without an enter. If pressed key is
a digit, an asterisk will be displayed, otherwise nothing will be displayed. Only digits will be
considered to check the pin.

Once four digits have been entered, it will be checked if it corresponds to the PIN stored in the
program. This value is stored in the integer constant pin. To test this program, this constant will
take the value 3682.

If entered PIN is not the stored PIN an error message will be displayed. User will have 3 attempts
before phone being blocked.

REQUIREMENTS: DO WHILE is mandatory for each iterative statement. SWITCH is mandatory for
each conditional statement.

Example:

If 6tyrieho67?r has been pressed, the program will display ***, and is waiting for the last digit

If 345oooooo9 has been pressed, the program will display ****, will check that the PIN is wrong,
and an error message will be displayed.


EXERCISE 2: 0s & 1s STRINGS
Develop a program that meets next requirements:

Program reads float numbers, in a loop. For each float, the program approximates it to the
corresponding smaller integer. So, if number is 4.67, approximate integer will be 4.

Output will be the longest string made up of zeros and ones, that is, if the numbers read are:

1.76 0.45 2.3 0.7 1.1 1.3 0 1.2 0 1.4 3.5 0 1 0 1

Longest string is 7.

Program ends when a string of zeros and ones of length 10 is obtained, or when N numbers have
been entered, being N a constant with no datatype, that in this case will take the value 30.

REQUIREMENTS: WHILE is mandatory for each iterative statement.


GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – SEGUNDO CONTROL EVALUACIÓN CONTINUA
25 NOVIEMBRE 2020

NOMBRE Y APELLIDOS:

Se pide realizar un programa que lea números enteros y cuente aquéllos que son capicúas.
Número capicúa es el que lee igual de izquierda a derecha que de derecha a izquierda.

El programa necesitará declarar, definir y utilizar las siguientes funciones:

Inverso: Esta función recibe un número entero y devuelve su inverso, es decir, si recibe 456
devolverá 654.

Para ello irá extrayendo los dígitos mediante las operaciones %10 y /10 y formando el inverso con
la operación *10

Ejemplo:

456 %10 →6 *10→60 +5→65 *10→650 +4→654

/10 → 45 %10→5

/10→4 %10→4

/10→0

Capicua: Esta función recibirá un número entero y el contador de números capicúas. No devuelve
nada. Utilizará la función inverso para ver si el número es capicúa o no y en caso afirmativo
aumentará el contador de números capicúa.

Lectura: Leerá un número entero. Este número debe tener al menos dos cifras y ser menor que un
valor n definido como constante simbólica (por ejemplo, a esta constante se le puede dar el valor
555555). La función devolverá true si el número leído es correcto y false en caso contrario. La
función recibirá una variable para almacenar el número leído en caso de que sea correcto. En caso
contrario este valor no se tendrá en cuenta.

El programa principal solicitará números enteros utilizando la función lectura hasta que esta
función devuelva un valor false.

Para cada número leído llamará a la función capicúa que comprobará si lo es o no.

Al terminar el programa mostrará por pantalla el número total de números introducidos y cuántos
de ellos han sido capicúas.
GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – SEGUNDO CONTROL EVALUACIÓN CONTINUA
25 NOVIEMBRE 2020

NOMBRE Y APELLIDOS:

Se pide realizar un programa que gestione una hucha de un niño. El programa contará el dinero
según se va introduciendo y cuando el niño llegue a un tope sabrá que ha conseguido suficiente
para romper la hucha. El tope es una constante simbólica que, por ejemplo, en nuestro programa
puede tomar el valor 80.

El programa necesitará declarar, definir y utilizar las siguientes funciones:

euros: Esta función recibe un número entero y un carácter. Los casos válidos posibles son las
combinaciones:

50e, 20e, 10e, 5e, 2e, 1e, 50c, 20c, 10c, 5c, 2c, 1c

La función devolverá el valor en euros en el caso en el que la entrada sea correcta. Devolverá 0 en
caso contrario e imprimirá un mensaje de error.

Ejemplo, si recibe 20e devuelve 20, si recibe 50c devuelve 0.50.

ingresa: Esta función recibirá un valor en euros y el total actual de la hucha. Si la suma de los dos
valores llega al tope, imprime un mensaje para romper la hucha. Si no se ha llegado al tope, se
actualiza el valor de la hucha con la nueva entrada. La función devuelve true si se ha llegado al
tope y false en caso contrario.

lectura: Solicitará y leerá un número entero y un carácter. El número indicará el nominal del valor
de la moneda o billete en euros; el carácter será c para valor en céntimos o e para valor en euros.
La función simplemente lee y carga en dos parámetros que recibe. No controla que estos valores
sean correctos. La función no devuelve ningún valor.

El programa principal solicitará valores, obtendrá su correspondencia en euros y lo añadirá a la


hucha utilizando las funciones indicadas anteriormente. Cuando se conozca que se debe romper
la hucha parará de solicitar valores e imprimirá el total actual que tiene el niño en la hucha.
GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – SEGUNDO CONTROL EVALUACIÓN CONTINUA
24 NOVIEMBRE 2021

NOMBRE Y APELLIDOS:

Se pide realizar un programa que realice una serie de operaciones matemáticas sobre cadenas de
caracteres que incluyen dígitos.

El programa necesitará declarar, definir y utilizar las siguientes funciones:

1) ascii: Esta función recibe una cadena de caracteres de cualquier longitud y devuelve la
suma de los dígitos que contiene la cadena. Es decir, si recibe por ejemplo la cadena
23E4+8-h devuelve el valor 17, correspondiente a la suma de 2, 3, 4 y 8.

2) sumacifras: Esta función recibirá un número entero y cargará en él la suma de sus cifras.
Es decir, si recibe 167 cargará 14 en el valor que recibe, correspondiente a la suma de 1, 6
y 7. La función no devuelve nada.

3) potencia: Esta función recibirá dos enteros, por ejemplo, x e y, y almacenará en x el


resultado de elevar x a y. No está permitido utilizar la librería math.h.

El programa principal comenzará mostrando un mensaje solicitando cuántos números quieren


introducirse.

Una vez leído este valor, se solicitarán de uno en uno, indicándolo. Se leerán como cadenas de
caracteres con una sola instrucción.

Para cada cadena se utilizará la función ascii para conocer la suma de los dígitos de la cadena.
Si esta suma no está comprendida entre 1 y 40 vuelve a solicitarse la cadena y el valor anterior no
será tenido en cuenta para el total de cadenas a leer. Una vez cumplida esta última condición de
que el valor esté entre 1 y 40, se presentan los valores de esta suma elevada a P, siendo P constante
entera.

Posteriormente, se presenta la suma de las cifras de la potencia resultante. Todas estas


operaciones se realizan utilizando las funciones descritas al inicio.

Una vez leídas todas las cadenas, se presenta el listado de todas las sumas devueltas por la función
ascii, así como la suma de las cifras de todas estas sumas.

NO ESTÁ PERMITIDO EL USO DE VARIABLES GLOBALES.

CUALQUIER DESARROLLO QUE NO CUMPLA LAS ESPECIFICACIONES NO SERÁ TENIDO EN


CUENTA.
Ejemplo de ejecución (P=4)
GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – SEGUNDO CONTROL EVALUACIÓN CONTINUA
24 NOVIEMBRE 2021

NOMBRE Y APELLIDOS:

Se pide realizar un programa que lea por teclado una serie de cadenas de caracteres y las cifre
según una serie de requisitos.

El programa necesitará declarar, definir y utilizar las siguientes funciones:

1) esminuscula: Esta función recibe un carácter y devuelve 1 si es una letra minúscula y 0


en caso contrario.

2) cifrar: Esta función recibirá un carácter para cifrar y un número entero de desplazamiento.
No devuelve nada. El carácter cifrado será el resultado de añadir el desplazamiento al
carácter inicial, es decir, si el carácter es r y el desplazamiento es 3, el nuevo carácter será
u (r + 3 -> r, s, t, u).

Hay que tener en cuenta que el resultado debe ser una letra minúscula por lo que si al
desplazar se obtiene un valor posterior a la z hay que volver a comenzar por la a. Es decir,
si se cifra w, con desplazamiento 5, el resultado será b (w +5 -> w, x, y, z, a ,b). En cada
llamada a la función el desplazamiento aumenta internamente en una unidad, para que
los cifrados no sean siempre los mismos. En el caso de llegar a valor 10 vuelve a resetearse
a 1 para el siguiente cifrado.

3) modificarcadena: Esta función recibirá una cadena de caracteres y un contador de


minúsculas. Devuelve la longitud de la cadena. La función cifra la cadena utilizando la
función cifrar, pero solo en el caso en el que el carácter a cifrar sea letra minúscula. En otro
caso cambia el carácter directamente por un símbolo #. La función actualiza el número de
minúsculas cifradas hasta el momento.

El programa principal comenzará mostrando un mensaje solicitando cadenas.

Una vez leída la cadena, con una sola instrucción, se cifra mediante la función modificarcadena.
Para cada una se muestra la cadena cifrada, la longitud total de las cadenas leídas hasta el
momento, y el total de minúsculas cifradas.

Se seguirán solicitando cadenas hasta llegar a cifrar al menos tantas minúsculas como indica una
constante simbólica llamada topeminusculas. Para cada nueva cadena, el primer valor del
desplazamiento al cifrarla es 1. Al llegar a este valor se indicará el número de cadenas leídas y se
dará por terminado el programa.

NO ESTÁ PERMITIDO EL USO DE VARIABLES GLOBALES.

CUALQUIER DESARROLLO QUE NO CUMPLA LAS ESPECIFICACIONES NO SERÁ TENIDO EN


CUENTA.
Ejemplo de ejecución (topeminusculas=20)
GRADO EN INGENIERÍA ELECTRÓNICA INDUSTRIAL Y AUTOMÁTICA
PROGRAMACIÓN – SEGUNDO CONTROL EVALUACIÓN CONTINUA
24 NOVIEMBRE 2021

NOMBRE Y APELLIDOS:

Se pide realizar un programa que lea cadenas construidas con símbolos correspondientes a
números romanos (sin tener en cuenta si están bien formadas o no) y realice sobre ellas una serie
de operaciones.

El programa necesitará declarar, definir y utilizar las siguientes funciones:

1) romanos: Esta función recibe un número entero y un carácter, y carga en el número el


valor arábigo correspondiente. La función no devuelve nada. Es decir, si recibe por ejemplo
el carácter M el valor arábigo sería 1000.

2) transformar: Esta función recibirá un número entero. Transformará el número


eliminando todas sus potencias de 2 y 3. Devolverá S si ha habido cambio en el número y
N en caso contrario. Es decir, si recibe el número 240:

240/2 =120/2= 60/2= 30/2= 15/3 =5

El número 240 quedará transformado en el 5 y la función devolverá el valor S.

Si recibe 155, el número se quedará igual y devolverá el valor N.

3) mayor: recibe un array de enteros y el número de valores que tiene el array. Devuelve la
posición del número mayor.

El programa principal comenzará mostrando un mensaje que solicita números (cadenas)


construidos con símbolos romanos. Se introducirán tantos números como indique una constante
simbólica N.

Los símbolos de cada cadena se introducirán uno a uno, mostrándose solo los que correspondan
a un símbolo romano. Para saber si es romano o no se utilizará la función romanos. Esta función
se utiliza también para ir construyendo el valor arábigo correspondiente.

No es necesario controlar el número de caracteres introducidos. Se supone que no vamos a pasar,


por ejemplo, de un valor de 20. En cuanto se introduzca un símbolo no romano se dará por
concluida la introducción del número, se mostrará el número romano introducido y su valor
arábigo. Además, se utilizará la función transformar para cambiar el valor arábigo. Si hay
cambio se mostrará el nuevo número y si no lo hay se mostrará un mensaje indicándolo.

Una vez introducidos todos los números romanos se mostrará un mensaje mostrando el mayor
número arábigo introducido. Para ello se utilizará la función mayor.

NO ESTÁ PERMITIDO EL USO DE VARIABLES GLOBALES.

CUALQUIER DESARROLLO QUE NO CUMPLA LAS ESPECIFICACIONES NO SERÁ TENIDO EN


CUENTA.
Ejemplo de ejecución (N=3)

También podría gustarte