Fundamentos de Informática

Ingeniería Técnica Industrial. E.U. Politécnica

EJERCICIOS RESUELTOS

Los ejercicios resueltos de la siguiente relación no están relacionados con la lista de ejercicios propuestos de cada tema (la cual puedes encontrar aquí).


Ejercicios básicos sobre variables, tipos de datos, operadores, entrada y salida...


  1. Escribir un programa que lea dos valores enteros y muestre su suma, resta, multiplicación, división entera y resto de la división.

    Solución:

    /********************************************/
    /* Operaciones aritméticas con dos enteros. */
    /********************************************/
    #include <stdio.h>
    
    void main (){
      int a, b;
    
      printf ("\nIntroduce el primer número: ");
      scanf ("%i", &a);
      printf ("\nIntroduce el segundo número: ");
      scanf ("%i", &b);
    
      printf ("\nLa suma es: %i.", a+b);
      printf ("\nLa resta es: %i.", a-b);
      printf ("\nLa multiplicación es: %i.", a*b);
      printf ("\nLa división entera es: %i.", a/b);
      printf ("\nEl resto de la división entera es: %i.", a%b);
    }
    
    Observe que:
  2. Escribir un programa que calcule la distancia euclídea de dos puntos en el plano definidos por sus dos coordenadas cada uno: (x1,y1) y (x2,y2). Utilice variables de tipo double y la función sqrt(), de la biblioteca math.h, para calcular la raíz cuadrada (square root).

    Solución:

    /*******************************************/
    /* Distancia entre dos puntos en el plano. */
    /*******************************************/
    #include <stdio.h>
    #include <math.h>
    
    void main (void){
      double x1, y1, x2, y2;
    
      printf ("\n- Introduce el parámetro x1: "); scanf ("%lf", &x1);
      printf ("\n- Introduce el parámetro y1: "); scanf ("%lf", &y1);
      printf ("\n- Introduce el parámetro x2: "); scanf ("%lf", &x2);
      printf ("\n- Introduce el parámetro y2: "); scanf ("%lf", &y2);
    
      x1 = (x1-x2) * (x1-x2); /* Cuadrados de las distancias en los ejes X e Y */
      y1 = (y1-y2) * (y1-y2);
    
      printf ("\n* La distancia entre ellos es: %lf.\n", sqrt(x1+y1);
    }
    

  3. Escribir un programa que lea una palabra de cuatro letras y a continuación la escriba en mayúsculas. Hágalo usando la función toupper() de la biblioteca ctype.h y sin usarla.

    Solución 1:

    /* Tema 3: Ejercicio 7 usando toupper() */
    #include<stdio.h>
    #include<ctype.h>
    
    void main(){
      char a,b,c,d;
    
      a=getchar(); /* Igual a scanf("%c",&a) */
      b=getchar();
      c=getchar();
      d=getchar();
    
      putchar(toupper(a));
      putchar(toupper(b));
      putchar(toupper(c));
      putchar(toupper(d));
    }
    

    Solución 2:

    /* Tema 3: Ejercicio 7 usando toupper() */
    #include<stdio.h>
    #include<ctype.h>
    
    void main(){
      char a,b,c,d;
    
      a=toupper(getchar());
      b=toupper(getchar());
      c=toupper(getchar());
      d=toupper(getchar());
    
      putchar(a); 
      putchar(b);
      putchar(c); 
      putchar(d);
    }
    

    Solución 3:

    /* Tema 3: Ejercicio 7 usando toupper() */
    #include<stdio.h>
    #include<ctype.h>
    
    void main(){
      char a,b,c,d;
    
      a=toupper(getchar());
      b=toupper(getchar());
      c=toupper(getchar());
      d=toupper(getchar());
    
      printf("%c%c%c%c",a,b,c,d);
    }
    
    

    Solución 4:

    /* Tema 3: Ejercicio 7 usando toupper()  */
    #include<stdio.h>
    #include<ctype.h>
    
    void main(){
      char a=getchar(),
           b=getchar(),
           c=getchar(),
           d=getchar();
    
      printf("%c%c%c%c",toupper(a),toupper(b),
                        toupper(c),toupper(d));
    }
    

    Solución 5:

    /* Tema 3: Ejercicio 7 SIN usar toupper() */
    #include<stdio.h>
    
    void main(){
      char a,b,c,d,
           distancia = 'A' - 'a'; /* 65-97 */
    
      a = getchar() + distancia;
      b = getchar() + distancia;
      c = getchar() + distancia;
      d = getchar() + distancia;
    
      printf("%c%c%c%c",a,b,c,d);
    }