Páginas

Mostrando entradas con la etiqueta sentencia. Mostrar todas las entradas
Mostrando entradas con la etiqueta sentencia. Mostrar todas las entradas

lunes, 12 de junio de 2017

C, 24. Sentencia do-while

/* Repetición: El bucle do...while

    Sintaxis:

        do{
            Instrucciones
        }while(condicion)    */


// Mostrar los 10 primeros numeros enteros positivos

#include<stdio.h>

int main(){
    int i;                   // Declaramos la variable i
    i=1;                     // Asignamos el valor 1, es el primer número de la serie

    do{
        printf("%i",i);      // Imprimimos en pantalla el valor de la variable i...
        i++;                 // ...en cada iteracion le sumamos 1 a i...
    }while(i<=10);           // ...e imprimimos el valor de i hasta que alcance el
                             // último número.
    return 0;
}

En el primer ejemplo acabamos de ver cómo aplicar do-while, el programa ya tiene las variables por lo que al correrlo simplemente veremos el resultado en pantalla, sin necesidad de interactuar con él.
A continuación otro ejemplo donde el usuario ha de dar los datos para que se ejecute el bucle y concluya.


// Mostrar los numeros enteros entre dos intervalos, ambos inclusive

#include<stdio.h>

int main(){
    int n1,n2;               // Declaramos las variables para el primer y ultimo
                             // numero de la serie, solicitamos al usuario que
                             // que indique sus valores.
    printf("Introduzca el primer numero de la serie:\n");
    scanf("%i",&n1);
    printf("Introduzca el ultimo numero de la serie:\n");
    scanf("%i",&n2);

    do{
        printf("%i ",n1);     // Imprimimos en pantalla el valor de la variable n1
        n1++;                 // en cada iteracion le sumamos 1 a n1
    }while(n1<=n2);           // e imprimimos el valor de n1 hasta que alcance el
                              // valor de n2.
    return 0;
}

En este último ejemplo, en cambio, el programa seguirá ejecutándose mientras el usuario siga realizando la acción que permite reproducir el bucle, en caso contrario finalizará.

// Solicitar repetición de saludo

#include<stdio.h>

int main(){
    char opc;

    do{
        fflush(stdin);                     // Esta funcion limpia la pantalla
        printf("Hola");
        printf("\nIntroduzca 's' para saludar nuevamente: \n");
        scanf("%c",&opc);
    }while(opc == 's' || opc == 'S');      // Mientras el programa siga registrando...
                                           // el caracter "s", nos seguira devolviendo
                                           // ...el saludo inicial.
    return 0;
}

C, 23. Sentencia while


/* La sentencia while

    Sintaxis:

        while(condicion){
            instrucciones;
    } */

// Mostrar los diez primeros números enteros positivos en pantalla en orden ascendente

#include<stdio.h>

int main(){
    int i;

    i=1;                   // A partir de valor 1

    while(i<=10){          // y mientras la variable sea menor o igual a 10
        printf("%i ",i);   // imprimira el valor de la variable
        i++;               // incrementará en 1 su valor en cada iteracion.
    }

    return 0;
}

En el primer ejemplo el programa ya dispone de las variables ya que inicializamos en 1 y le solicitamos al bucle que compruebe la variable cada vez que haga un incremento hasta que llegue a 10. En este caso no se requiere acción por parte el usuario.

En el siguiente ejemplo, en cambio, es el usuario el que ha de proporcionar el valor de los dos números para los cuales va a mostrar todos los enteros que se comprendan entre ellos ambos inclusive; si deseamos que aparezcan en orden ascendente debemos considerar que los incrementos han de ser positivos desde el menor de los números proporcionados, y en descendente el programa deberá hacer decrementos desde el mayor de ambos. El programa dará error si lo los inroducimos en el orden adecuado.

// Mostrar una serie entre dos numeros, ambos inclusive, en
// orden ascendente/descendente.

#include<stdio.h>

int main(){

    int n1,n2;

    printf("Introduzca el primer y el ultimo valor de la serie:\n");
    scanf("%i",&n1);
    scanf("%i",&n2);

    while(n1<=n2){           // Para obtenerlo en orden ascendente
        printf("%i\n",n1);   // mostramos el valor menor
        n1++;                // y le vamos sumando 1 (incremento).
    }

    //while(n2>=n1){         // Para obtenerlo en orden descendente
    //    printf("%i\n",n2); // mostramos el valor mayor
    //    n2--;              // y le vamos restando 1 (decremento).
    //}

    return 0;
}

Siendo más específicos y para evitar errores, si deseamos que aparezcan del primero al segundo de forma estricta, independientemente de si el primero es mayor o menos que el segundo, el programa deberá poder discernir entre ambos, por lo que vamos a introducir primero if-else y después while.

// Mostrar una serie entre dos numeros, ambos inclusive,
// en el orden en que hayan sido introducidos por el usuario.

#include<stdio.h>

int main(){

    int n1,n2;

    printf("Por favor, introduzca el primer y el ultimo valor de la serie:\n");
    scanf("%i %i",&n1,&n2);

    if(n1<n2){                   // De este modo, al ser el primer numero
        while(n1<=n2){           // el menor, apareceran en orden ascendente.
            printf("%i\n",n1);
            n1++;
        }
    }

    // if(n1>n2){                // Lo correcto es incluir la segunda opcion
    //    while(n1>=n2){         // bajo un else, pero de este modo podemos
    //        printf("%i\n",n1); // ver claro que es el supuesto de el 1er
    //        n1--;              // numero mayor que el 2do.
    //    }
    //}

    else{                        // El primero es el mayor, ergo apareceran
        while(n1>=n2){           // en orden descendente.
            printf("%i\n",n1);
            n1--;
        }
    }
    return 0;
}

C, 22. Sentencia if-else

/* Sentencia if de dos alternativas: if-else

    if (Condicion)
        Acción1
    else
        Acción2
*/

//Nota del estudiante

#include<stdio.h>

int main() {
    float nota;

    printf("Introduzca la nota de su examen: \n");
    scanf("%f",&nota);

    if (nota > 4.9) {
        printf("El alumno con nota %.2f esta aprobado\n",nota);
    }
    else {
        printf("El alumno con nota %.2f esta suspendido\n",nota);
    }

    return 0;
}

C, 21. Sentencia switch

/* Sentencia switch()

switch (selector){ //puede ser int o char

case etiqueta1 : sentencias1;break;
case etiqueta2 : sentencias2;break;
case etiqueta3 : sentencias3;break;
default: sentencias;

}*/

//Ejemplo del número

#include<stdio.h>

int main(){
    int numero;

    printf("Introduzca un numero entre (1-3): \n");
    scanf("%i",&numero);

    switch(numero){
        case 1: printf("Es el numero 1");break;
        case 2: printf("Es el numero 2");break;
        case 3: printf("Es el numero 3");break;
        default: printf("El numero es incorrecto");
    }

    return 0;
}

Este ejercicio es parte del curso ProgramaciónATS

domingo, 11 de junio de 2017

C, 20. Sentencia if, Módulo

/* La sentencia if:

    if (Condicion)
        Accion
*/

//Prueba de divisibilidad

#include<stdio.h>

int main () {
    int n1,n2;

    printf("Introduzca dos numeros: \n");
    scanf("%i %i",&n1,&n2);

    if (n1 % n2 == 0){ 

    //% es modulo, vamos a comprobar si el resto es 0, ergo es divisible
     
    printf("El numero %i es divisible por %i\n",n1,n2);}

    //solo se imprimirá el mensaje si se cumple la expresión anterior

    return 0;
}

Este ejercicio es parte del curso ProgramaciónATS

Edit: 29/08/17


/* Función que calcula el valor absoluto de un número */

#include<stdio.h>

int main(){

    int x;             //declarar la variable x
    printf("Introduzca un valor para x: ");
    scanf("%d",&x);

    if(x<0){           //condición
        x=-x;}         //acción, si se cumple
    printf("El valor absoluto de x es %d\n",x);
                       //esta acción es independiente de if
    return 0;

C, 15. Comprobación número primo


/* Ejercicio 15 For. Comprobar si un número es primo. */

#include<stdio.h>

int main(){
    int a=0,i,n1;                        // Inicializamos en cero la variable a
                                         // y declaramos i e n1, todos enteros.
    printf("Introduzca un numero: \n");  // Pedimos al usuario el numero a comprobar
    scanf("%i",&n1);                     // el cual se almacena en n1.

    for(i=1; i<(n1+1); i++){             // for(inicializacion, condicion, incremento
        if(n1%i == 0){                   // Mientras n1 mod i sea 0
            a++;                         // incrementamos a en una unidad.
        }
    }                                    // Al finalizar el bucle, si el valor de a
        if(a != 2){                      // es distinto de 2, n1 no es numero primo.
            printf("%i no es numero primo\n",n1);
        }
        else{                            // En caso contrario n1 es numero primo.
            printf("%i es numero primo\n",n1);
        }
    return 0;
}