Sie sind auf Seite 1von 8

Prctica 3.

ESTRUCTURAS
DE CONTROL
CONDICIONALES
2 sesiones

Semanas: del 21 y 28 de septiembre

OBJETIVOS:
Revisar el concepto de algoritmo y entender la necesidad del diseo de algoritmos en el estudio
y resolucin de programas
Comprender y diferenciar perfectamente los distintos tipos de instrucciones utilizados en el
diseo de algoritmos
Conocer y manejar con habilidad las sentencias de control condicionales

No olvides que antes de pasar a la fase de diseo deberemos analizar


exhaustivamente el problema

Recuerda tambin que la escritura de un programa exige la indentacin o sangra del texto
en el margen izquierdo de las diferentes lneas, lo que facilita el entendimiento y comprensin del
programa realizado. Cualquier sentencia dentro del cuerpo de otra sentencia, debe sangrarse.

Margen izquierdo

Cdigo fuente

3-1

3-2

Programacin 1

Ejercicio propuesto 1. Resuelve


Disea un programa que pida introducir dos nmeros por teclado y nos indique cual es
el mayor, cual es el menor o si son iguales.

Ejercicio propuesto 2. Resuelve


Disea un programa que pida un nmero por teclado y nos diga si es mltiplo de 5, es
decir, si es divisible por cinco o no.

Ejercicio propuesto 3. Resuelve


Disea un programa que indique el color del babi para los nios de la guardera (Verde
para nios y Rojo para nias). El programa nos pide el sexo del nio (M/F) y
dependiendo del sexo se le asigna el color del babi.

Ejercicio propuesto 4. Resuelve


Realiza un programa de dado 1 nmero nos diga cules son sus divisores entre 1 y 10 o
si no tiene divisores en ese rango.

Ejercicio propuesto 5. Resuelve


Implementa un algoritmo que lea una fecha (por separado el da, el mes y el ao) y
muestre un mensaje indicando si la fecha es correcta o no (Se recuerda que son bisiestos
los aos mltiplos de 4, excepto los mltiplos de 100, y que s son bisiestos los
mltiplos de 400). En el caso de que sea correcta, deber mostrar el da siguiente.

Ejercicio propuesto 6. Resuelve


En una empresa se tiene el registro de la hora de entrada y salida de cada empleado.
Escribe un programa en C que pregunte al usuario la hora y minuto de entrada, as como
la hora y minuto de salida y calcule y escriba las horas y minutos que se han trabajado.
Ejemplo de ejecucin 1:
Introduce la hora de entrada:
7
Introduce los minutos de entrada:
12

Grado en Ingeniera Informtica

Estructuras de Control Condicionales 3-3

Introduce la hora de salida:


14
Introduce los minutos de salida:
23
El tiempo trabajado es: 7 horas y 11 minutos

Ejemplo de ejecucin 2:
Introduce la hora de entrada:
22
Introduce los minutos de entrada:
50
Introduce la hora de salida:
5
Introduce los minutos de salida:
10
El tiempo trabajado es: 6 horas y 20 minutos

Ejercicio propuesto 7. Resuelve


Las entradas del parque de atracciones, varan con respecto a la altura de las personas,
adems nos van a entregar una pulsera con el color de las atracciones a las que podemos
subir, siguiendo el criterio:
Menos de 1.00 m Atracciones para bebes. Pulsera de color Blanco.
Entre 1.00m y 1.20m Atracciones infantiles. Pulsera de color Amarillo.
Entre 1.20m y 1.40 Atracciones junior. Pulsera de color Naranja.
Ms de 1.40 Atracciones adulto. Pulsera de color Rojo.
Ejemplo:
Introduce tu altura: 1.35
Junior. Pulsera Naranja

Ejercicio propuesto 8. Resuelve


Implementa un algoritmo que lea un carcter e indique si es o no una letra. Adems, en
caso de ser letra, debe indicarse si es vocal o consonante y si est en minsculas o
maysculas. Ten en cuenta que en lenguaje C la comparacin de caracteres utiliza el
cdigo ASCII asociado a cada carcter. Sugerencia: buscar en Internet o en un libro
tabla cdigos ASCII.

Departamento de Ciencia de la Computacin e Inteligencia Artificial

3-4

Programacin 1

Ejercicio propuesto 9. (Ver Anexo). Resuelve


Escribe un programa en C que dibuje un cuadrado o un rectngulo en funcin de la
eleccin del usuario. Para ello, el programa preguntar al usuario si desea dibujar un
cuadrado o un rectngulo. En funcin de la respuesta solicitar el tamao de un lado
(para el cuadrado) o de dos lados (para el rectngulo).

Grado en Ingeniera Informtica

Estructuras de Control Condicionales 3-5

Anexo: Librera Grfica para C.


C no tiene instrucciones estndar para dibujar en pantalla. Por tanto, vamos a usar una
librera grfica adicional.
Puedes mirar en el apndice de la prctica los comandos para dibujar en pantalla que
ofrece la librera. En lugar de esos, que usaremos en otros ejercicios, aqu emplearemos
lo que se llaman "grficos de tortuga". Consisten en que dibujamos moviendo un cursor
grfico situado en un punto de la pantalla (que en la versin original era una tortuga, ya
que los grficos de este tipo nacieron para ensear a nios). Podemos hacer las
siguientes operaciones:
Dibujar avanzando en lnea recta en la direccin en que est mirando ahora la
tortuga: draw(longitud). Inicialmente, la tortuga est mirando hacia la derecha
(0 grados).
Cambiar la orientacin de la tortuga haciendo que gire sobre s misma un cierto
nmero de grados: turn(grados). Para girar a la izquierda hay que hacerlo una
cantidad negativa, y a la derecha, positiva.

Colocar la tortuga en la posicin inicial (x,y) que queramos:


setTurtlePos(x,y)
As por ejemplo podramos dibujar los cuatro lados de un cuadrado repitiendo cuatro
veces las siguientes rdenes
//dibujar en lnea recta 100 pixeles
draw(100);
//girar 90 grados hacia la derecha (positivo es a derecha,
negativo a izquierda)
turn(90);
Cuidado, para compilar los ejemplos grficos necesitas una orden distinta a la habitual,
ya que estamos usando una librera adicional
g++ -o figura figura.c gfx.c -lX11
Debers descargarte tambin los ficheros gfx.c y gfx.h desde Moodle.
Adems del cdigo para resolver el ejercicio planteado debers escribir las siguientes
lneas de cdigo:
#include "gfx.h"

// fichero con las funciones grficas

...
int main() {
char c;
...
//instruccin para abrir una pantalla para dibujar
gfx_open(500, 500, "figura");

Departamento de Ciencia de la Computacin e Inteligencia Artificial

3-6

Programacin 1

// instruccin para indicar el color del dibujo


gfx_color(0,200,100);
// situacin del punto de inicio del dibujo
setTurtlePos(200,200);
...
...
//finalizar la ejecucin y cerrar la pantalla de dibujo
c = gfx_wait();
}

Cmo dibujar en pantalla con gfx.c


Para dibujar en pantalla dispones de una librera muy simple llamada gfx.c que adems
de los grficos de tortuga que ya hemos visto en los ejercicios nos permite hacer una
serie de operaciones bsicas:
Abrir una ventana donde dibujar: gfx_open(ancho_ventana,
alto_ventana, titulo_ventana). El sistema de coordenadas es como
el de ejes cartesianos, la x es horizontal, la y vertical. El origen de coordenadas
(x=0,y=0) est en la esquina superior izquierda de la ventana.
Cambiar el color en que se va a dibujar como combinacin de rojo, verde y azul:
gfx_color(valor_rojo, valor_verde, valor_azul). Por
ejemplo gfx_color(255,0,0) es rojo.
Dibujar
una
lnea
sabiendo
su
(x,y)
inicial
y
final:
gfx_line(x1,y1,x2,y2). Para dibujar un punto simplemente puedes usar
la misma x e y como coordenada inicial y final.

Grado en Ingeniera Informtica

Estructuras de Control Condicionales 3-7

Las instrucciones de dibujar en pantalla no tienen efecto hasta que no se hace


gfx_flush(). Es decir, si quieres que aparezca un objeto formado por varias
lneas dibjalas todas y luego haz gfx_flush() para que aparezca.
Borrar la pantalla: gfx_clear().

Instalar la librera grfica


Este apartado solo se aplica en caso de que ests trabajando en tu propio ordenador. Los
ordenadores del laboratorio ya tienen hecha la instalacin necesaria
Es posible que no tengas instalado en tu Ubuntu lo necesario para compilar estos
programas grficos. Necesitas el paquete 'xorg-dev'. Teclea en una terminal
sudo apt-get install xorg-dev
Te pedir la contrasea de administrador. En la mquina virtual que usamos para la
asignatura es "p1" (sin las comillas).

Compilar programas
Para compilar los programas que hagan uso de la librera en linux necesitars aadir un
par de parmetros al final de la orden que usamos siempre:
g++ -o cuadrado cuadrado.c gfx.c -lX11

Departamento de Ciencia de la Computacin e Inteligencia Artificial

3-8

Programacin 1

ERRORES DE PROGRAMACIN COMUNES


No utilizar secuencias de sentencias delimitadas entre llaves. Prescindir de las llaves
cuando se programan secuencias de control puede dar lugar a errores difciles de detectar y
depurar.
Incluir un ; junto a la sentencia de control. No es correcto escribir un ; despus de la
condicin de un if. Ejemplo:
if (contador == 0);
contador = var+2;
Independientemente del resultado de la evaluacin de la condicin del if, siempre se
ejecuta la sentencia de asignacin. Por qu? Pues porque el ; de detrs indica una
sentencia nula en el cuerpo del if, es decir, no hacer nada en dicho cuerpo. La sentencia de
asignacin estara fuera del cuerpo del if.
Confusiones entre asignacin y comparacin de igualdad Este error es muy frecuente y
difcil de detectar. Si se escribe
if (contador = 0)
Se est asignando 0 al contador, no se est haciendo una comparacin.
Recuerda que el operador de comparacin de igualdad es ==
if (contador == 0)
Comprobar que una misma variable cumpla ms de una restriccin.
Si escribimos
if (contador>=3 && <6)
Vamos a tener un error de compilacin puesto que la comparacin <6 no sabe a qu
variable se refiere. Aunque sea la misma que se acaba de escribir hay que volver a repetirla.

Grado en Ingeniera Informtica

Das könnte Ihnen auch gefallen