Los programas siguientes son presentados sin el texto común main(){...}
.
Para cada uno de esos programas, armar una tabla donde cada línea corresponde a la sentencia ejecutadia, y cada columna a cada variable que aparece en el programa.
if
, if
-else
/* 2.2 */
int a = 10;
int b = 1;
int c = 0;
if (a <= 10 && b >= 1){
c = c + 1;
}
if (a < 10){
c = c + 1;
}
if (b > 1){
c = c + 1;
}
/* 2.3 */
int a = 99;
int c = 0;
if (a >= 80){
c = c + 1;
} else if (a >= 90) {
c = c + 1;
} else if (a >= 95) {
c = c + 1;
}
while
/* 3.2 */
int i = 0;
int a = 0;
while (i < 4){
if (i % 2 == 0)
a = a + 1;
else
a = a - 1;
i = i + 1;
}
1 o 2 participantes.
Crear una copia del programa del ejercicio 2, llamada alea.c
.
Modificar esta copia nueva de forma que no se use más scanf, sino que se consiguen valores aleatorios para las dos variables.
El cuerpo del main
deber conformarse de la forma siguiente:
srand(time(0))
(esto no es C muy estándar, tcc
lo acepta tal cual, gcc
emite un warning. Lo correcto es escribir srand(time(NULL))
pero por ahora no nos cambia nada.)rand()
. Por ejemplo para asignar un valor aleatorio a la variable z
, usar la sentencia z = rand()
.Este programa dejó de ser interactivo, ya no necesitamos darle valores manualmente, ¡los consigue solo!
¿Qué proporción de todos los enteros naturales son divisibles por 7?
Ya lo sabemos, son 1 de cada 7. Pero podemos comprobarlo con un programa que genera valores aleatorios y comprueba, para cada uno, si cumple con alguna condicion (acá, ser divisibles por 7).
Hacer un programa buclealea.c que hace esto.
Antes del bucle, inicializamos dos variables que nos van a servir de contadores: si
y no
.:
En el bucle, que se deberá repetir 1000 veces, cada vez que el numero aleatorio cumple con la condicion, incrementamos si
, sino, incrementamos no
.
Despues del bucle, usar la sentencia siguiente para mostrar el porcentaje de números divisibles por 7:
En este ejercicio vamos a programar un juego donde la computadora elige un número al azar entre 1 y 10, y el jugador tiene que adivinarlo.
La estructura del programa es la siguiente:
Usemos un bucle para que el programa le pida un entero al usuario por lo menos una vez y se repita hasta que sea encontrada el entero n.
El programa tiene que imprimir los mensajes adecuados para informarle al usuario qué hacer y qué pasó.
Programar el juego en un archivo adivina.c.
watch
watch
es un comando que sirve para repetir otros comandos. Es interesante para repetir comandos cuya salida puede cambiar en el tiempo. Por ejemplo para ejecutar ls -l
cada 2 seguntos (el intervalo de repetición por defecto), se ejecuta el comando:
Para salir de watch
, apretar la combinación de teclas Control + c (en línea de comando, control+c no sirve para copiar texto sino para matar el proceso corriente).
watch
acepta el flag -n
para especificar el intervalo de ejecución. Para ejecutar el comando date
cada 5 segundos:
Ejecutar algun programa non-interactivo que genere y use números aleatorios cada 1 segundo, usando adecuadamente watch
y tcc
.
1 o 2 participantes.
Hacer lo siguiente en un programa llamado entero.c
.
Declarar una variable de tipo char
con nombre c
, y una variable de tipo int
con nombre x
. Imprimir el mensaje “Por favor ingrese un numero entre 0 y 9.”. Pedir un carácter al usuario con getchar
y asignarlo a la variable char
. Convertirlo a un valor entero y asignarlo a la variable de tipo int
.
Mostrar el valor de esa variable con printf
, para eso usar el especificador de sustitución %d
(d = decimal).
Agregar una estructura condicional, tal que si x
es mayor o igual a 5, se imprima “x es grande!” sino se imprima “x es chiquito!”.
Si el número es divisible por 3, imprimir “Este numero es divisible por 3.”, sino imprimir “Este numero no es divisible por 3.”