Resúmen de la semana pasada

La función printf

sintaxis de llamada de una función f:

f(parametro1, parametro2, ... );

Si no hay parámetros:

f();

printf requiere por lo menos un parámetro: una cadena de carácteres:

printf("Hola!");

Si hay especificadores de conversión, hay que hacer la llamada con un parámetro más para cada especificador:

printf("El contador vale %d", a);

Como la llamamos con parámetros enteros, usaremos el especificador de conversion %d (decimal):

int a = 5;
int b = 9;
printf("a vale %d y b vale %d", a, b);

printf("%d %d %d %d\n", 10, 20, 30, 40);

Bucle for

La palabra-clave for permite definir bucles que manejan alguna variable que sirve como índice para controlar la repetición de un bloque de código.

for (/* inicialización */; /* condición */; /* incremento */) {
    /* código a ejecutar */
}

int i;
for (i=0; i < 10; i = i + 1) {
    printf("%d\n", i);
}

Nota: En C, la sentencia i = i + 1 puede escribirse en forma más reducida como i++. Esta forma se utiliza más comúnmente en el bucle for:

int i;
for (i=0; i < 10; i++) {
    printf("%d\n", i);
}

Ejercicios con el bucle for

Definir un programa for.c que tenga que mostrar la salida siguiente.

0 1 2 3 4 5 6 7 8 9
0 2 4 6 8 10 12 14 16
4 9 14 19 24 29 34 39
50 49 48 47 46 45 44 43 42 41

Recordatorio:

for (/* inicialización */; /* condición */; /* incremento */) {
    /* código a ejecutar */
}

Variables

Una variable es constituida de:

Esto es una declaración de la variable a:

int a;

Por ejemplo si escribimos la declaración de variable siguiente:

int x = 12;

Entonces en algun lado de la memoria tendremos el valor 12 guardado, y se accede a ese valor a traves del nombre x.

           valor    dirección
           -----    ----
          |  ...  | 2022
          +-------+
x ---->   |   12  | 2023
          +-------+
          |  ...  | 2024

Cuando aparece x en una expresión, se evalua su valor (acá 12):

printf("%d\n", x);

Recordatorio:

          |  ...  |
          +-------+
x ---->   |   12  |
          +-------+
          |  ...  |

Salida del programa:

$ 12

Cambiar el valor de una variable

Se cambia el valor de una variable var al valor de la expresión EXPR escribiendo a = EXPR.

Esta operación se llama asignación de valor.

1
2
3
4
5
6
int a = 10;
printf("a vale %d\n", a);
a = 55;
printf("a vale %d\n", a);
a = a + 1;
printf("a vale %d\n", a);

Salida?

Prueba de escritorio

sentencia a salida
int a = 10; .
printf("a vale %d\n", a); .
a = 55; .
printf("a vale %d\n", a); .
a = a + 1; .
printf("a vale %d\n", a); .

for ( a = 0; a < 2; a = a + 1){
    printf("%d", a);
}
printf("a vale %d", a);
sentencia a salida
a = 0; .
a < 2
printf("%d", a); .
a = a + 1 .
a < 2
printf("%d", a); .
a = a + 1 .
a < 2
printf("a vale %d", a); .

Expresiones aritméticas

Una expresión aritmética en C se construye a partir de:

Ejemplos:

sentencia a b
int a = 5; .
int b = 3; .
a = a - 1; .
b = b + a; .
b = a + 1; .
a = b % 5; .
b = a % 2; .

Ejercicio: el operador módulo

Agregar a for.c los bucles for necesarios para mostrar:

0 1 2 3 4 5 6 7 8 9
0 2 4 6 8 10 12 14 16
4 9 14 19 24 29 34 39
50 49 48 47 46 45 44 43 42 41
0 1 2 3 0 1 2 3 0 1 2 3
3 0 1 2 3 0 1 2 3 0 1 2

(En total el programa debe mostrar 6 lineas.)

Entregar este programa.

Averiguar que compila sin error ni warning con el comando:

$ gcc -Wall for.c