Los ejercicios se deben hacer dentro de JSLinux, con el editor de texto vi
y el compilador gcc
.
1 o 2 participantes.
1. limpiar
2. girar a la derecha
3. avanzar
1. limpiar
2. girar a la derecha
3. avanzar
1. limpiar
2. girar a la derecha
3. avanzar
1. limpiar
2. girar a la derecha
3. avanzar
FIN
El programa debe contener una función void pasos(void)
además de la función main
. La función pasos
se encarga de imprimir solo lo siguiente:
1. limpiar
2. girar a la derecha
3. avanzar
Llamá la función pasos
cuatro veces desde la función main
para conseguir la salida más arriba.
void fecha(int a)
. LLamá a esta función tres veces para que el programa imprima lo siguiente:Estamos en el 2000!
Estamos en el 2016!
Estamos en el 2999!
Es decir, queremos que 2000
, 2016
, 2999
sean parámetros de las llamadas a la función fecha
.
1 o 2 participantes.
Escribir un programa bool.c que tenga el main
siguiente:
main(){
int i;
for ( i = 0; i < 30 ; i = i + 1 )
if ( divisible_por_3(i) )
printf("%d es divisible por 3.\n", i);
}
Completar este programa con la función int divisible_por_3(int a)
que devuelve:
1
(uno) si su argumento es divisible por 30
(cero) sino.1 o 2 participantes.
Trabajamos en un archivo funciones.c nuevo.
int cuadrado(const int a)
que calcula la función matemática : x ↦ x2.Llamarla desde el main
sobre algun entero aleatorio entre -50 y 50:
main(){
int a;
srand(time(0));
a = (rand() % 101) - 50; /* a tiene un valor entre -50 y +50 */
printf("a vale %d\n", a);
printf("a^2 vale %d\n", cuadrado(a));
}
int absoluto(const int a)
que calcula la función matemática : x ↦ |x| (valor absoluto). Se puede hacer de la forma siguiente: si el parametro formal a es positivo, devolver a, sino, devolver − a.Llamarla desde el main:
int mayor(const int a, const int b)
que calcula la función matemática (x, y) ↦ {x si x ≥ y, sino y}.Llamarla desde el main:
int b;
....
b = rand() %100; /* b tiene algun valor entre 0 y 99 */
...
printf("mayor(a, b) vale %d\n", mayor(a,b) );
int mayor_abs(const int a, const int b)
que calcula el mayor del valor absoluto de dos enteros: (x, y) ↦ |x| si |x| ≥ |y|, sino |y|. Definir mayor_abs
haciendo llamadas a las funciones existentes mayor
y absoluta
, sin usar condiciones.1 o 2 participantes.
En un programa cadenas.c:
Escribir la función int es_minuscula(const char c)
que devuelve 1 si el carácter dado es dentro del rango ‘a’ hasta ‘z’, y 0 sino.
Escribir la función int es_mayuscula(const char c)
que devuelve 1 si el carácter dado es dentro del rango ‘A’ hasta ‘Z’, y 0 sino.
Escribir la función char cambiar_char(const char c)
que, dada una minúscula, devuelve la correspondiente mayúscula, y vice versa. Si es dada otro carácter, devuelve el mismo carácter.
Escribir la función void cambiar_cadena(char cadena[])
que aplica carácter por carácter la función cambiar_char
a una cadena.
Escribir un programa cadenas.c que lee una cadena dada por el usuario le aplica cambiar_cadena
y la muestra de nuevo:
main(){
char entrada[100];
gets(entrada); // gets acepta texto con espacios
cambiar_cadena(entrada);
printf("%s\n"entrada);
}
El resultado esperado es:
1 a 4 participantes.
Este ejercicio se debe hacer dentro de JSLinux, y con el editor de texto vi
.
Hacer este ejercicio en un programa desfilar.c. Queremos hacer un programa que tenga la salida siguiente:
LA CALERA
A CALERA L
CALERA LA
CALERA LA
ALERA LA C
LERA LA CA
ERA LA CAL
RA LA CALE
A LA CALER
LA CALERA
T
de valor 11
.char
) de tamaño T
e inicializarlo con el valor "LA CALERA "
(con un espacio al final)."LA CALERA "
? ¿Qué valor tiene el último carácter? En lo que sigue, nunca modificar este último carácter.texto
usando printf
, de forma que se le agregue un salto de línea. Basta usar una sola llamada a printf
sin bucle y con un solo especificador de conversión.primero
.i
desde 1
hasta T-2
, guardar el valor del carácter que está en la posición i
en la posición i-1
primero
.main
.gcc
. Para ello consultar el PDF “Aprenda C”, ultima sección.