Вы находитесь на странице: 1из 5

Ejercicio

1. Escriba un programa que calcule el área de un triángulo rectángulo, pidiendo al


usuario la altura y la base. La salida por pantalla debe ser "Un triángulo rectángulo de
altura y base, tiene un área de " (sustituyendo los espacios en blanco por los valores)
NOTA area = (base * altura) /2

2. Escriba un programa que calcule el perímetro de una circunferencia. NOTA perímetro


= 2 * PI * r). Se recomienda definir PI como una constante usando la directiva define.

3. Dado el siguiente fragmento de código, identifique las declaraciones de variables, las


instrucciones de asignación, los operadores y las expresiones. ¿Cuál será el resultado
de evaluar esas expresiones?

int i1, i2, i3;


float r1, r2, r3;
i1=12;
i2=5;
r1=12.0;
r2 =5;
r3= r1/r2;
r3=i1/i2;
i3=i1/r2;
Nota: El operador división se comporta de diferente forma según el tipo de datos de los
operandos: si son números enteros el resultado será también un número entero. Si los
operandos son números reales, el resultado será también un número real. Si uno de los dos es
entero y otro real, el entero se convierte a real y la operación se hace entre reales.

4. Encuentre los errores del siguiente programa

void main(void) {

foat radio, perimetro;


printf ( introduzca el radio");
scanf("%f", &radio);
perimetro= 2*PI*radio
printf("%f", perimetro);

5. Escriba un programa que lea tres enteros (a, b, c) y muestre por pantalla un 1 si los
valores introducidos siguen un orden creciente (a>b>c) y 0 en caso contrario.

6. Escriba y compile el siguiente programa en C:

#include <stdio.h>
void main(void) {
int a, b;
char cadena[8];
int c; a=7;
b=14;
c=128;
printf ("Asigne un valor a la cadena de caracteres ");
scanf("%[^\n]", cadena);
printf ("La cadena es %s\n", cadena);
printf ("El valor asignado a las variables es:\na=%d\nb=%d\nc=%d\n", a, b, c);
}

¿Detecta algún error? Ejecute el programa anterior asignando a cadena el valor "Hola", ¿qué
sucede? Repita la ejecución asignando a cadena el valor "Buenos días", ¿qué observa?
8. Implemente una función que reciba como parámetro un valor entero e imprimir los
divisores del entero.

9. Escriba un programa que pida dos números que son las pendientes de una recta, y
determine cuál de ellos tiene el ángulo mayor con respecto al eje x positivo e imprimir
el ángulo mayor. Libro base: Geometría Analítica, Pag. 23 sección 1.2.

10 Implementar una función que calcule el valor numérico de los f(x) con las siguientes
condiciones:

F(x) (x + 3)^2/2 para x ≤ 0


X^2 + 2x para x > 0

11 Escriba un programa que solicite un número, si el número ingresado es mayo o igual a


10 imprimir los siguientes: Suma de sus dos dígitos. Cuántos de sus dígitos son pares,
cuáles son los divisores.
12 Escriba un programa en C que, introducidos por teclado tres valores enteros,
elementos de un vector (i, j ,k) y muestre en pantalla el módulo del vector. Libro base:
Geometría Analítica, Pag. 329 sección 10.1.

13 Escriba un programa en C que muestre el siguiente menú:

CALCULO DE AREAS

===========================

1 - Calcular el volumen de un cubo

2 - Calcular el área de un trapecio


3 - Calcular el volumen de una esfera

Y lea la opción introducida por el usuario. En función de la opción el programa deberá pedir los
datos necesarios para calcular el área, realizar el cálculo y mostrar el resultado por pantalla

Utilice una función para mostrar el menú, y otras tres para calcular el área de los distintos
polígonos (triángulo, trapecio rectángulo). El valor de retorno de cada una de estas tres últimas
funciones debe ser el área calculada

14 Escribir un programa que tras solicitar al usuario las coordenadas (x, y) de dos puntos
calcule la pendiente de la recta que pasa por ambos puntos y la distancia entre ambos
puntos. Libro base: Geometría Analítica, Pag. 20 sección 1.1.
La pendiente de dicha recta se calcula como:

15 Crear una función que reciba como parámetro un número entero y que retorne su
factorial.

16 Escriba una función que devuelva el resultado de elevar un número a cualquier


potencia.

17 La nota del examen de una asignatura corresponde en un 20% al primer parcial, un


20% al segundo parcial y un 60% el examen final. La nota final es la mejor entre la nota
del examen y la nota obtenida con la evaluación continua (teniendo en cuenta los dos
parciales). Escriba un programa que pida estas tres notas y calcule la nota final de un
alumno. A continuación, el programa debe preguntar al usuario si quiere calcular una
nueva nota o finalizar (pulsando la tecla ‘s’). Utilice una función para calcular la nota y
otra para obtener el máximo. Considerando la nota final obtenida determinar la
calificación que le corresponde en el rango [1,5]

18 Escriba un programa que pida al usuario su nombre y contraseña y le de tres


oportunidades para introducir los datos correctos, que serán root y 1234. Si los datos
introducidos son correctos se mostrará por pantalla “Bienvenido al sistema”. En caso
contrario se mostrará un mensaje por pantalla indicando que se ha superado el número
de intentos permitido. Notas: Puesto que las cadenas de caracteres finalizan con el
carácter nulo (‘\0’), usuario y contraseña se declararán como cadenas de longitud 5
(char usuario[5]). Para leer cualquiera de estas cadenas con la función scanf se usará el
descriptor de formato %s y dado que el nombre de la cadena ya es una dirección, éste
no debe ir precedido del símbolo &(scanf(“%s”, usuario)). Para comparar cadenas se
debe usar la función strcmp (string compare), por ejemplo strcmp(usuario, "root"), que
devolverá un 0 si las cadenas son iguales y otro valor si son distintas.

19 Implementar una función que tenga como parámetro un número natural y el número
de decimales que se quiere contemplar al calcular su raíz y mostrar por pantalla el
resultado de: a) Realizar la raíz cuadrada usando el método de las aproximaciones
sucesivas. b) Calcular la factorial de ese número. c) Indicar si el número introducido es
primo o no. Un número primo es aquel que sólo es divisible por sí mismo y por el
número 1. Por convenio, el número 1 no se considera primo

20 Solicitar al usurario que ingrese por teclado, de números enteros hasta que se
introduzca el valor 0 (cero) o se hayan introducido 20 números, y los almacene en un
vector, en orden inverso al de su introducción.

21 Escriba un programa que lea los valores de todos los elementos de dos vectores de
enteros introducidos por el usuario, copie esos dos vectores en un tercero (uno a
continuación del otro) y muestre sus valores por pantalla. Los tamaños de los dos
vectores deben declararse como constantes.

22 4. Escriba un programa que declare un array llamado tabla, cuadrado y de dos


dimensiones, rellene todos sus elementos con el valor 1 y muestre dicho array. Luego
el programa deberá poner a 0 todos los elementos de la diagonal principal y volver a
mostrar el resultado
23 Escriba un programa que pida al usuario que introduzca por teclado el expediente de
un alumno, sabiendo que éste se representa mediante una tabla de notas por
asignatura (5) y convocatoria (máximo 6).El programa debe calcular y mostrar en
pantalla la media ponderada de los aprobados, considerando que el peso de cada
convocatoria (a representar mediante un vector) es: 1.25 para la 1ª convocatoria, 1.0
para la 2ª, 0.9 para la 3ª, 0.75 para la 4ª, 0.6 para la 5ª y 0.5 para la 6ª. Nota. En la
resolución de este ejercicio no es necesario usar funciones.

24 Una empresa informática nos ha solicitado que desarrollemos una versión simplificada
del juego de los barquitos. Para su diseño nos dan las siguientes especificaciones: a. El
tablero es una cuadrícula de 8x8 casillas. b. Al inicio del juego se solicitarán las
coordenadas de cada uno de los barquitos. Por simplicidad se admitirá que hay 8
barquitos, que cada uno está colocado en una fila, y que el número de casillas que
ocupa cada barquito es 2. Por tanto, para situar un barquito en el tablero bastará con
dar una coordenada admitiéndose que la segunda casilla ocupada por el barquito se
corresponde con la casilla que está situada a la derecha de la indicada. Así, si las
coordenadas dadas por el usuario son (3,4) las casillas ocupadas por el barquito serán
(3,4) y (3,5). Para posicionar un barquito en el tablero el sistema debe comprobar que
las coordenadas introducidas son válidas. c. Una vez posicionados los 8 barquitos en el
tablero comienza el juego. El juego constará de 8 rondas. En cada ronda el jugador
dará las coordenadas de una casilla: Si la casilla está ocupada un barquito, el
barquito se considerará "hundido" y, por tanto, las 2 casillas ocupadas por este
barquito serán casillas “libres” en las siguientes rondas. Además, al hundir un barquito,
el sistema otorgará al usuario una ronda de juego adicional. Es decir, las rondas en las
que el usuario hunde un barquito no serán descontadas del total de rondas
disponibles. Si la casilla está libre, no es una casilla válida o está ocupada por un
barquito ya hundido, se considerará que el usuario ha consumido una ronda. d. El
juego finaliza cuando se han hundido todos los barquitos o se han agotado todas las
rondas. e. Una vez finalizado el juego se indicará por pantalla si el jugador ha ganado o
ha perdido. Si el jugador pierde la partida se mostrará por pantalla la distribución de
barquitos inicial. Se pide desarrollar un programa en C que implemente el juego de los
barquitos teniendo en cuenta las especificaciones pedidas.