while
, el operador %
, valores aleatoriosLos ejercicios se hacen dentro de JSLinux, con el editor de texto vi
y el compilador tcc
.
1 o 2 participantes.
Escribir un programa que permita ingresar dos valores numéricos, que representan la base y la altura de un rectángulo, luego calcular y publicar su perímetro y superficie.
Necesitamos hacer un mueble de madera, para eso necesitamos listones de pino de tamaño adecuado. Conocemos un negocio de maderas solo vende listones de 2,44 m de longitud.
Escribir un programa llamado madera.c
que pide al usuario el tamaño de los listones que necesita para su mueble, en cm. El programa tiene que imprimir la cantidad de listones del tamaño dado que el usuario puede hacer con uno de 2,44 m, y el tamaño del sobrante.
Por ejemplo si el usuario ingresa 40 (cm), el programa tiene que imprimir:
Ud. va a poder cortar 6 listones de 40 cm, y tendra un sobrante de 4 cm.
1 o 2 participantes.
while
Escribir un programa while.c que use un bucle while
para imprimir 3 veces el mensaje “Hola!”, cada vez en una línea nueva.
Modificar este programa para que imprima los mensajes: “Hola! Vuelta 1.”, “Hola! Vuelta 2.”, etc. hasta la vuelta 10.
Modificar este programa para que se imprimen todos los mensajes salvo el de la vuelta 5. Hacerlo sin usar un segundo bucle while
, pero usando una condición if
en el cuerpo del bucle.
Probar estos programas en http://www.pythontutor.com/c.html para ver su ejecución paso a paso.
while
y condicionesHacer un programa selectivo.c que muestra las secuencias siguientes:
7
.3
.11
Recordar que n
es múltiple de m
siempre y cuando la condición n % m == 0
es verdadera.
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!
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 el programa anterior cada 1 segundo, usando adecuadamente watch
y tcc
.
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ó.
Para conseguir un número aleatorio dentro de un programa en C, usar las siguientes sentencias:
Para que ese número aleatorio sea entre 1 y 10 (inclusive), reemplazar la segunda sentencia por:
Programar el juego en un archivo adivina.c.
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.”