You are on page 1of 11

Programación

12 Practica paso a paso

Práctica 1. Primeros programas en C


„„
Ejercicio 1. Introducir información con el teclado y presentarla en pantalla
Para visualizar texto en pantalla tenemos que utilizar la función printf.
Su formato es:

printf(“cadena de texto”, [lista de argumentos]);

La cadena de texto es un literal que aparecerá en la pantalla tal y como


lo especifiquemos dentro de la instrucción. Es importante que no olvi-
des las comillas. Por ejemplo, para mostrar un mensaje de bienvenida,
teclearíamos lo siguiente:
Fig. 5
printf(“Hola, vamos a programar en C”);

La lista de argumentos (opcional) puede estar constituida por una o


Las variables declaradas fuera de la función main( ) son de
tipo global, es decir, su vigencia permanece en todo el progra- varias variables y expresiones, separadas por una coma. En función del
ma y se pueden usar en todas las funciones del mismo. Como tipo de dato de esa variable, habrá que reservar dentro de la cadena de
estamos creando programas pequeños —la única función es texto de printf un sitio para ella, de la siguiente forma:
main( )— es indiferente declararlas globales o locales.
El organigrama correspondiente a este programa sería el si-
Indicador
guiente: Tipo de dato de la variable
de formato
%d Entero con signo
%u Entero sin signo
%ld Entero largo con signo
%lu Entero largo sin signo
%c Carácter
%f Tipo float
%lf Tipo double

Por ejemplo, si hemos declarado una variable con la edad de una perso-
na llamada edad, de tipo entero, la siguiente instrucción muestra una
frase con el contenido de esa variable:

printf(“Tu edad es %d”, edad);

Para introducir datos mediante el teclado es necesario utilizar la fun-


ción scanf. Su sintaxis es la siguiente:

scanf(“cadena de texto”, argumento);

La función scanf sólo puede tener un argumento, que debe estar pre-
cedido del carácter &.
En lugar de una variable
se puede indicar cualquier
expresión de C válida. Para comprender mejor cómo funcionan printf y scanf, escribe el pro-
grama de la figura 5. Este programa calcula la superficie de un rectán-
gulo a partir de los datos base y altura que se introducen por medio del
teclado. Guarda este programa como P1_E1a_nombreapellido.c.
En esta posición se
Definimos la variable n1
de tipo entero.
visualiza el contenido En la figura 6 se pide que se introduzca un número y se devuelve su
de la variable n1.
cuadrado. Guarda este ejemplo como P1_E1b_nombreapellido.c.
Fig. 6

254 Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra


Programación
Practica paso a paso
12
„„
Ejercicio 2. Realizar cálculos y mostrarlos adecuadamente
El programa de la figura 7 convierte una temperatura proporcionada
en grados Celsius a grados Fahrenheit. La fórmula para esta conversión
es:

F = (9/5) C + 32

Guarda este programa como P1_E2a_nombreapellido.c.

Observa que en este ejemplo el uso de los paréntesis en la sentencia de


asignación para calcular la temperatura en grados Fahrenheit (variable
fah) puede evitarse.

Cuando tengas dudas sobre qué operador se ejecuta antes en una ex-
Fig. 7
presión, consulta la tabla de operadores que hemos presentado en la
parte de teoría. En ella los operadores figuran en orden de preferencia.
Cuando dos operadores tienen la misma prioridad, se evalúan de iz-
quierda a derecha.

En las funciones printf y scanf, se pueden utilizar unos códigos, deno-


minados secuencias de escape, que controlan la posición del cursor.
Esto permite, por ejemplo, saltar de línea o de una posición de tabula- Ficheros de cabecera
dor.
En un programa podemos incluir ficheros con extensión
Esta es la tabla de las secuencias de escape: .h que se encuentran en c:\tcwin\include (depende de la
versión del compilador) mediante la instrucción:
#include <fichero.h>
Secuencia Acción Estos ficheros contienen la definición de funciones que
se utilizan en muchos programas. Por ejemplo, el fichero
\n Salto de línea
stdio.h es necesario para utilizar las instrucciones scanf
\t Salto de tabulador y printf.

\a Provoca un aviso sonoro

Permite mostrar el carácter


\"
comillas (")

Permite mostrar el carácter


\'
comilla simple (')

Permite mostrar el carácter


\\
barra invertida (\)

Hace que el cursor retroceda


\b
un espacio

Para practicar con las secuencias de escape y el uso de los operadores


aritméticos, realiza el programa de la figura 8. Después guárdalo como
P1_E2b_nombreapellido.c.

Fig. 8

Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra 255


Programación
12 Practica paso a paso

Práctica 2. Sentencias condicionales


Ejercicio 1. La sentencia if
„„
La sentencia if es una sentencia de selección, es decir, toma una deci-
sión basada en el resultado de una condición. El formato general de la
sentencia if es el siguiente:

if(expresión) {
sentencia 1;
sentencia 2;
...
sentencia n;
}
else {
sentencia 1;
Fig. 9 sentencia 2;
...
sentencia n;
El organigrama correspondiente a este programa sería el si-
guiente: }

Si la expresión es verdadera, se ejecutan las sentencias del primer blo-


que entre llaves (el asociado al if); en caso contrario, se ejecutan las del
bloque asociado al else. Si tanto en el if como en el else sólo hay una
sentencia, no es necesario utilizar las llaves.

La expresión suele ser la comparación de un valor con otro, por eso es


importante aprender a utilizar los operadores relacionales. El operador
relacional que compara si dos valores son iguales es ==. No lo confun-
das con el operador =, que se utiliza en las sentencias de asignación. El
operador “distinto de” en C es !=.

Realiza el programa de figura 9 que convierte kilómetros a millas y vi-


ceversa, en función de la opción que teclee el usuario. Guárdalo como
P2_E1_nombreapellido.c.

También resulta muy útil en las sentencias if el uso de operadores lógi-


cos. El operador && es equivalente a Y (producto lógico). Este operador
permite relacionar dos o más expresiones en una condición de tal modo
que se tienen que cumplir cada una de ellas para que la condición tome
el valor verdadero. Por el contrario, el operador | | (equivalente a O)
resuelve la condición como verdadera si al menos alguna de las expre-
siones de la condición se cumple. Como has ido observando a lo largo
del curso, la utilización de los operadores lógicos es frecuente en los
programas que pueden relacionar varios elementos.

En la figura 10 puedes apreciar el uso del conector && para controlar


que la opción que se introduce en el programa anterior sea correcta.
Fig. 10

256 Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra


Programación
Practica paso a paso
12
Ejercicio 2. Varios if anidados
„„
Muchas veces es necesario controlar más de dos posibilidades. Por
ejemplo, el programa de la figura 11 calcula el número mayor de tres
números introducidos por medio del teclado. Si desarrollamos el algo-
ritmo de este problema, vemos que existen tres preguntas o tomas de
decisión. Además, dos de ellas dependen del resultado de la primera.

En este caso es necesario escribir una estructura condicional if que a su


vez tiene un if en la parte del verdadero y otro if en la parte del falso.
Estos if secundarios, que están en el interior de otro if, los llamamos
if anidados.

En cualquier caso, es muy importante mantener la estructura de blo-


ques de sentencia o llaves para cada if. En este programa, los if ani-
dados no tienen llave porque sólo tienen una instrucción en su parte
verdadera y en su parte falsa.
Fig. 11
Guarda este programa como P2_E2_nombreapellido.c.

Ejercicio 3. La condición múltiple switch


„„
La sentencia switch se usa cuando hay que elegir entre más de dos
alternativas, situación en la que un if empieza a ser incómodo.

switch(variable) {
case constante 1:
secuencia de sentencias
break;
case constante 2:
secuencia de sentencias
break;
...
default:
secuencia de sentencias
break;
}

Cuando el valor de la variable concuerda con el de alguna de las cons-


tantes indicadas en las líneas case, el programa ejecuta las sentencias
del case correspondiente, hasta encontrar un break. Si no existe coin-
cidencia, se ejecutan las sentencias del bloque default. La restricción
de la instrucción switch es que no permite evaluar un expresión como
lo hace el if, sólo evalúa una variable. Además, ésta solamente puede
ser de tipo int o char. Fig. 12

El programa de la figura 12 es un ejemplo de switch con cuatro case.


Escríbelo y guárdalo como P2_E3_nombreapellido.c.

Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra 257


Programación
12 Practica paso a paso

Práctica 3. Sentencias repetitivas


Ejercicio 1. El bucle while
„„
El bucle while tiene esta sintaxis:
Los contadores y los acumuladores
deben inicializar su valor. while(expresión) {
sentencia 1;
sentencia n;
acumulador
}
contador

Funciona repitiendo las instrucciones de su bloque mientras se cumpla


la condición indicada en su expresión. Como en otros casos, si sólo exis-
te una sentencia, no es necesario utilizar las llaves.
Fig. 13

Como los bucles son estructuras repetitivas que dependen de algún va-
lor, es muy frecuente usar dentro de ellos contadores y acumuladores.
El bucle while depende del valor de la variable contador,
por lo que es imprescindible antes inicializarla. Su valor Un contador es una variable cuyo valor se incrementa o disminuye
aumenta en el bucle en una unidad por cada repetición. en un valor fijo por cada repetición o iteración de un bucle. En muchos
La variable suma es un acumulador. Acumula, sobre su casos, el contador guarda las veces que se repite un bucle, pues se in-
valor anterior, otro que recibe en cada ciclo del bucle. crementa en una unidad por cada ciclo, pero no tiene por qué ser así en
También es importante que esté inicializada antes de todos los casos. La forma más normal de representar un contador es:
entrar en el bucle.
variable=variable+1

Un acumulador es una variable cuyo valor se incrementa o disminuye


en un valor que no tiene por qué ser fijo por cada repetición de bucle.
Los acumuladores suelen utilizarse para acumular resultados produci-
Representación del organigrama del bucle while: dos en las iteraciones de un bucle. Su forma más habitual de asignación
es:

variable=variable+variable

En primer lugar, el programa evalúa la expresión contenida dentro


de los paréntesis del while. En el caso de que sea cierta, se ejecutan
las sentencias contenidas en su bloque. Una vez producida la primera
ejecución de sentencias, el programa vuelve a evaluar la expresión del
while. Si de nuevo es cierta, se ejecuta el segundo ciclo, y así sucesiva-
mente hasta que la expresión deja de cumplirse, momento en el cual el
control pasa a la instrucción posterior al bloque del while.

En la mayoría de los casos, la expresión del while tiene que ver con que
un contador o acumulador contenidos en el bucle alcance un determi-
nado valor.

Realiza el programa de la figura 13. Este programa calcula la suma de


veinte números introducidos por medio del teclado. Guárdalo como
P3_E1_ nombreapellido.c.

258 Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra


Programación
Practica paso a paso
12
Ejercicio 2. El bucle do ... while
„„
Una variante del while es el bucle do ... while. La diferencia, como
puedes observar en la figura 14, radica en que la expresión se sitúa al
final del bucle.
Esto provoca que la instrucción do ... while se lea como “haz ... mien-
tras”. La consecuencia principal es que el bucle se ejecuta al menos una
vez.
Dibuja en tu cuaderno el organigrama correspondiente a esta va-
riante.

Fig. 14

Ejercicio 3. El bucle for


„„
La sentencia repetitiva for es posiblemente la más completa de las tres
posibles iteraciones de que dispone C, puesto que dentro de su defini-
ción incorpora el contador que interviene en la condición. Su formato
es:
for(inicialización; condición; incremento) {
sentencia 1;
También puede
... escribirse como:
sentencia n; contador++

La sección de inicialización se usa para dar un valor inicial a la variable


que controla el bucle. Esta inicialización se ejecuta sólo cuando empie-
za el bucle. Después, el bucle se repite tantas veces como se cumpla la
condición. Al final de cada iteración, el incremento se ejecuta respecto
a como esté definido y justo antes de que se compruebe de nuevo la
condición.
La instrucción for incluye en la misma línea la inicialización de la varia- El break se puede
ble contador. También define en cuánto se incrementa esta variable. utilizar en un case de
la instrucción switch y
Comparte con el while que la expresión condicional está al comienzo también para terminar
anticipadamente un
del bucle, con lo que su representación en el organigrama es idéntica. bucle.

Escribe el programa de la figura 15 y guárdalo como P3_E3_nom- Fig. 15


breapellido.c. Este ejemplo permite practicar con una tabla de mul-
tiplicar que el usuario elige al principio. En cada multiplicación se le
pregunta al usuario el resultado. Si es correcto, el programa continúa
con la siguiente multiplicación; si el usuario falla, el programa sale an- Sentencias de salto
ticipadamente. break Finaliza un case en una sentencia switch.
Para salir anticipadamente del for se utiliza la instrucción break. Con- Fuerza la terminación inmediata de un
sulta las tres posibles instrucciones de salto de que dispone C. bucle.

exit Sale de un programa anticipadamente y


devuelve el control al sistema operativo.
Es necesario utilizar el archivo de cabecera
stdlib.h.

continue Hace comenzar la iteración siguiente


del bucle, saltando así la secuencia de
instrucciones comprendida entre el
continue y el fin del bucle.

Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra 259


Programación
12 Practica paso a paso

Práctica 4. Introducción a los arrays


„„
Ejercicio 1. Definición de los arrays
Podemos definir los arrays (a menudo llamados tablas de C) como
una colección de datos del mismo tipo que se referencian por medio de
un nombre en común y que se almacenan en la memoria en posiciones
contiguas.

Los arrays pueden ser de diferentes dimensiones. Los más usados son
los de una dimensión (también llamados vectores) y los de dos di-
mensiones (o tablas).

Un array tiene una dimensión y un tamaño. La dimensión viene dada


por el número de pares de corchetes que tiene en su definición. El tama-
ño es el resultado de la multiplicación de los números que están en los
corchetes. Por ejemplo, el array int números[2][3] tiene dos dimen-
siones y seis elementos. El compilador de C asigna al primer elemento
del array la posición en memoria 0, y al último, la posición tamaño–1.

Para declarar un array utilizamos el siguiente formato:


Fig. 16
tipo identificador_array[n]

(donde n es una constante de tamaño fijo)


Los arrays también se pueden definir dinámicamente, sin
tamaño predefinido. Esto es más propio de las cadenas Por defecto, cada elemento del array se inicializa a 0. Pero también po-
de caracteres. En el ejemplo de la figura 16 tienes dos demos inicializar el array en el momento de su definición:
formas de definir e inicializar una cadena de caracteres.
Toda cadena debe terminar con el valor nulo (“\0”), pero
el compilador de C lo asume si no lo escribimos. tipo identificador_array[n]={lista valores}

Cada valor debe ser una constante válida para el tipo de array y los dife-
rentes valores deben estar separados por comas. En la figura 16 puedes
estudiar la definición de distintos arrays y su forma de inicializarlos.

„„
Ejercicio 2. Trabajar con arrays
Para acceder a un elemento de un array se utilizan el identificador y el
La variable i actúa como índice
de filas de la tabla. número de orden del elemento. Al primer elemento siempre le corres-
ponde el 0. De esta forma,

printf(“%d”,vector[0]

visualiza el primer elemento del array vector.

El valor que se introduce dentro de los corchetes puede ser una varia-
ble. Esto es muy necesario cuando el array es grande, para poder ini-
salto de
tabulador cializarlo.

Escribe el programa de la figura 17 y guárdalo como P4_E2_nom-


breapellido.c. Este programa carga una matriz de 10 × 10 elementos
de tipo entero con la suma de filas y columnas. Cada elemento de la
La variable j actúa como índice
tabla se visualiza con el valor que va adquiriendo.
de columnas de la tabla.

Fig. 17

260 Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra


Programación
Practica paso a paso
12
„„
Ejercicio 3. Ordenar los elementos de un array
Una de las operaciones más frecuentes que se realizan sobre los arrays
(especialmente, los de una dimensión) es la ordenación. introducción de
números en el
array
Existen varios métodos para ordenar un vector. Los más utilizados son
el método de intercambio directo (o método de la burbuja) y el método
de inserción.
intercambio de
El programa de la figura 18 muestra el método de la burbuja sobre un valores utilizan-
do una variable
array de diez números enteros que se introducen por medio del tecla- auxiliar

do, ordenándolos de menor a mayor.

En este programa puedes apreciar tres partes fundamentales:

•• Un bucle for para introducir los diez elementos del array. Es im-
portante advertir una vez más que el primer elemento del array
es el que ocupa la posición 0. Por eso, la variable que controla este visualización de los
números ordenados
bucle (i) toma el valor inicial 0 y la condición del for actúa hasta
ordenación
que esta variable vale 9.
Fig. 18

•• La segunda parte del programa es la ordenación del array median-


te el método de la burbuja.

•• Finalmente, se muestran los elementos del array ya ordenados.

El método de la burbuja se compone de dos ciclos o repeticiones, co-


rrespondientes a los dos bucles for, uno dentro de otro (anidados).

En este proceso, se compara el primer elemento del array con el segun-


do. Si el primero es mayor, el programa intercambiará sus posiciones;
en caso contrario, no efectuará ningún cambio de posiciones. A conti-
nuación, se compara el segundo elemento con el tercero, procediendo
de la misma forma que antes, y así hasta llegar al final de array. Este
ciclo de comparación de pares de elementos consecutivos y su posible Intercambiar el valor de dos variables
intercambio de posiciones se efectúa en n–1 elementos del array. En Para que dos variables intercambien su contenido es
este caso debe efectuarse nueve veces. El bucle más interno, goberna- necesario que intervenga una tercera variable. Esta tercera
do por el contador j, es el encargado de llevar a cabo esta fase. Después variable tendrá el mismo tipo de datos que las otras dos.
de este bucle, el número mayor habrá quedado al final del array. Entre los programadores, a esta variable temporal se la
denomina auxiliar (aux en el programa).
Para que el array quede completamente ordenado habrá que repetir la El sentido que tiene utilizar esta variable queda reflejado
fase anterior tantas veces como elementos del array menos 1 haya. Esto en el siguiente esquema:
lo hace el bucle for que está controlado por el contador i. La primera
ejecución de este bucle sitúa el elemento mayor al final del array, la
segunda repetición asegura el segundo número mayor en la penúltima
posición, y así sucesivamente.

Guarda este programa como P4_E3_nombreapellido.c.

Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra 261


Programación
12 Practica paso a paso

Práctica 5. Funciones
Las funciones son el fundamento de la construcción de los programas
definición de la función
en C. También representan el ejemplo más típico de la programación
modular, en la que cada parte del programa desarrolla un cometido
específico.

Habrás observado que todas las instrucciones que has aprendido hasta
ahora son en sí mismas funciones, puesto que tienen un nombre y unos
paréntesis detrás del nombre.

llamada a la función También se ha comentado que el cuerpo principal del código está cons-
tituido por la función main( ).

El formato o sintaxis de una función es:


definición de los
parámetros tipo nombre_función(lista_parámetros) {
devolución del valor sentencias;
}
función superficie
de un triángulo
En esta definición, tipo especifica el tipo de valor que devuelve una
Fig. 19 función. Las funciones pueden devolver cualquier tipo de datos reco-
nocidos por C, excepto un array. Si no se especifica el tipo, devuelve por
defecto un entero (int).

Por ejemplo, para calcular la superficie de un triángulo, tenemos que


escribir la fórmula:

superficie=(base*altura)/2

Si esta operación se va a repetir con frecuencia, puede ser invocada


desde cualquier parte de un programa construyendo una función,
como muestra la figura 19. En este programa, la función main( ) realiza
una llamada a la función supt( ), encargada de calcular la superficie de
un triángulo.

Como puedes observar, la función supt( ) tiene que estar declarada


antes de poder ser utilizada. En este caso, la llamada a supt( ) está den-
tro de la expresión de un printf( ) y contiene los argumentos base y
altura dentro de los paréntesis. Se dice que los valores que se incluyen
La sentencia return devuelve el valor para la que fue en la llamada a una función son los argumentos de dicha función.
creada una función, pudiéndose ser cualquier expresión
válida de C (variables o constantes).Si devuelve más de
un valor, se deben separar con el símbolo coma (,). Si Dentro de los paréntesis de supt( ) tenemos que incluir sus paráme-
una función no devuelve nada, no es necesario utilizar tros, es decir, los valores que recibe en la llamada y que pueden ser
return. procesados dentro del bloque de la función. En este programa, la fun-
ción supt( ) define los parámetros ba y al. En concreto, el parámetro
Cuando el programa encuentra la sentencia return, la
función regresa inmediatamente; no se ejecuta ninguna ba recibe el valor del argumento base y el parámetro al recibe el valor
sentencia después de ella. Return debería ser la última del argumento altura. Como es lógico, los argumentos y los paráme-
instrucción que se ejecuta en una función que devuelve tros deben ser del mismo tipo de datos.
valores.
Guarda este programa como P5_nombreapellido.c.

262 Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra


Programación
Practica paso a paso
12

Práctica 6. Manejar cadenas de caracteres


El lenguaje C no dispone de un tipo de datos que permita almacenar
cadenas de caracteres como tales, esto es, palabras o frases en una sola
variable. Para poder hacer esto necesitamos definir un array de tipo
char, como ya se ha estudiado en la práctica de arrays.

Por ejemplo, para almacenar el nombre de una persona debemos defi-


nir un array de la siguiente forma:

char nombre[15];
El programa puede
producir un error si
Todos los arrays de caracteres deben terminar con la secuencia escape se introducen más
de 9 caracteres.
\0, con lo que el array nombre tiene reservados 14 caracteres y \0.
Fig. 20
Podemos inicializar una cadena de una forma rápida sin indicar su ta-
maño. Por ejemplo:

char nombre[ ]=“Pablo”;

A la hora de visualizar una cadena podemos utilizar printf con la se-


cuencia escape %s:
Este fichero de cabecera
es necesario para
printf(“Tu nombre es %s”, nombre); manejar las funciones
getche y getch.

Cuando se trata de introducir por medio del teclado el contenido de


una cadena, tenemos dos posibilidades: utilizar la función gets, que
permite introducir valores en una cadena hasta pulsar Intro, o bien uti-
pulsación Intro
lizar las funciones getch o getche, que introducen valores carácter a
carácter.

El formato de la función gets es:

gets(nombre_array_caracteres);

La desventaja de gets es que no controla el número de caracteres que


se pueden introducir, con lo que se puede producir un error por desbor- asignamos \0 al
final de la cadena
damiento del tamaño del array.

La figura 20 muestra un programa que permite introducir sin control


el valor de la variable nombre. La versión controlada es el programa control de 10 caracteres
de la figura 21, que usa la función getche. Guarda este último como máximo

P6_E1_ nombreapellido.c. Fig. 21

Funciones relacionadas con cadenas


El lenguaje C dispone también de un conjunto de funciones que permiten manipular cadenas de caracteres: strcat, strcmp, strcopy y strlen,
entre otras. Todas ellas exigen la inclusión del fichero de cabecera string.h.

• strcat(cadena_dest, cadena orig) une la cadena de origen a la de destino, siempre y cuando esta última tenga espacio suficiente.

• strcmp(cadena1,cdena2) compara la cadena 1 con la cadena 2 carácter a carácter. Devuelve 0 si son iguales y un número negativo o
positivo en función del primer carácter distinto.

• strcopy(cadena_dest, cadena_orig) copia la cadena de origen en la de destino, sustituyendo los caracteres que esta última pudiera
tener.

• strlen(cadena) devuelve el número de caracteres de una cadena sin contar el “\0”.

Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra 263


Programación
12 Practica paso a paso

Práctica 7. Números aleatorios


Modificamos el valor Todos los lenguajes de programación disponen de instrucciones para
de la semilla.
generar números aleatorios. Esta capacidad tiene una aplicación funda-
mental en la creación de juegos y movimientos de objetos.
Generamos el
número aleatorio.
En C, la función para generar un número aleatorio se llama rand( ). Su
El resto de la formato es:
división entera entre
2 sólo puede ser
0 o 1: variable=rand( );
- Si es 0 es cara.
- Si es 1 es cruz.
La variable será siempre un valor de tipo entero.

El programa de la figura 22 simula el lanzamiento de una moneda al


aire e invita al usuario a adivinar si ha salido cara o cruz. El programa se
repite mientras el usuario pulse S para continuar.

Guarda este programa como P7_nombreapellido.c.

Fig. 22

Las funciones rand( ) y randomize( ) necesitan el archivo


de cabecera stdlib.h.

264 Tecnologías de la Información y la Comunicación I - 1º Bachillerato - Editorial Donostiarra

You might also like