Ejer Cici Os Practic as 1

download Ejer Cici Os Practic as 1

of 24

Transcript of Ejer Cici Os Practic as 1

  • 7/23/2019 Ejer Cici Os Practic as 1

    1/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Calculo de PI

    Enunciado

    Realizar un programa que calcule una aproximacin al nmero PI, mediante el

    sumatorio de los 100.000 primeros trminos de la serie (y finalmente multiplicada por4):

    Nota: Utilicese un bucle fory nmeros de precisin doble (double)

    Ejemplo de ejecucin

    PI=3.141573

    Solucin#include

    void main(void)

    {

    double pi=0.0;

    int i;

    int signo=1;

    for(i=1;i

  • 7/23/2019 Ejer Cici Os Practic as 1

    2/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Divisible

    Enunciado

    Dados dos nmeros enteros tecleados por el usuario, comprobar si el primero es

    divisible por el segundo, repitiendo la operacin, hasta que ambos nmeros seannegativos. Si los dos nmeros tecleados son negativos, se termina el programa.

    Ejemplo de ejecucin

    Escriba dos numeros separados por un espacio:

    15 4

    El 15 no es divisible por 4

    Escriba dos numeros separados por un espacio:

    12 -3

    El 12 es divisible por -3

    Escriba dos numeros separados por un espacio:

    -25 5

    El -25 es divisible por 5

    Escriba dos numeros separados por un espacio:

    -1 -3

    El -1 no es divisible por -3

    Fin del programa

    Solucin#include

    void main()

    {

    int num,val;

    do

    {

    printf ("Escriba dos numeros separados por un espacio:\n");

    scanf ("%d %d",&num,&val);

    if (num%val==0)

    printf ("El %d es divisible por %d\n",num,val);

    else

    printf ("El %d no es divisible por %d\n",num,val);

    }

    while(num>0 || val>0);

    printf("Fin del programa\n");

    }

  • 7/23/2019 Ejer Cici Os Practic as 1

    3/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Ttulo: Mltiplos de 7 entre A y B

    Enunciado

    Realizar un programa que imprima los mltiplos de 7 entre A y B, ambos inclusive,donde A y B son valores enteros introducidos por el usuario desde el teclado.

    El programa debe garantizar que A y B son mayores que 0 y que B>A. Si el usuario

    introduce valores que no cumplen alguna de estas condiciones, el programa se los

    volver a pedir (el programa pedir reiteradamente los nmeros si alguna condicin no

    se cumple).

    Ejemplo de ejecucin

    Introduzca A y B:

    -10 25

    Introduzca A y B:

    25 10

    Introduzca A y B:

    10 25

    Los multiplos de 7 entre 10 y 25 son:

    14

    21

    Solucin#include

    void main()

    {

    int A, B, i;

    do

    {

    printf("Introduzca A y B:\n");

    scanf("%d %d", &A, &B);

    }

    while ((A

  • 7/23/2019 Ejer Cici Os Practic as 1

    4/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Notas 0-10

    Enunciado

    Realizar un programa que acepte por el teclado un nmero entero. Dado ese nmero, el

    programa presenta por pantalla un nombre de nota asociado a ese nmero, segn latabla. El programa vuelve al principio, para que se pueda introducir otro nmero, hasta

    que se introduzca un nmero negativo, en cuyo caso el programa termina. Si el nmero

    no es vlido, (negativo o mayor que 10), se indica con un mensaje "Nmero incorrecto".

    Nmero Nombre de la nota

    0-1 Muy deficiente

    2-4 Insuficiente

    5-6 Suficiente

    7-8 Notable

    9-10 Sobresaliente

    Debe emplearse una instruccin switch-case

    Ejemplo de ejecucin

    Introduzca nota: 6

    Suficiente

    Introduzca nota: 51

    Nmero incorrecto.

    Introduzca nota: -1

    Nmero incorrecto.

    Solucin o soluciones#include

    void main()

    {

    int n;

    do

    {

    printf("Introduzca nota:");

    scanf("%d",&n);

    switch(n)

    {

    case 0:

    case 1: printf("Muy deficiente"); break;

    case 2:

    case 3:

    case 4: printf("Insuficiente"); break;

    case 5:

    case 6: printf("Suficiente"); break;

    case 7:

    case 8: printf("Notable"); break;

    case 9:

    case 10: printf("Sobresaliente"); break;

    default: printf("Nmero incorrecto");

    }

    } while(n>0);

    }

  • 7/23/2019 Ejer Cici Os Practic as 1

    5/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Potencia de un nmero entero

    Enunciado

    Realizar un programa que permita calcular la potencia de un nmero entero, donde la

    base y el exponente son introducidos por el usuario.

    Ejemplo de ejecucin

    BASE = 2

    EXPONENTE = 3

    2^3 = 8

    Solucin o soluciones#include

    void main()

    {int i, base, expo, resu;

    printf("BASE = ");

    scanf("%d",&base);

    printf("EXPONENTE = ");

    scanf("%d",&expo);

    resu = base;

    for(i=1; i

  • 7/23/2019 Ejer Cici Os Practic as 1

    6/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Multiplicacin de dos nmeros a travs de la suma

    Enunciado

    Realizar un programa en el que se pida al usuario dos nmeros enteros. Se pide realizarla multiplicacin de los mismos a travs de la suma. Por ejemplo: 3x4 = 3+3+3+3, o

    5x10= 5+5+5+ (10 veces)+5

    La nica estructura de control que puede ser utilizada es el for

    Ejemplo de ejecucin

    Introduce dos numeros a multiplicar: 3 4

    El resultado de multiplicar 3 x 4 es 12

    Solucin o soluciones#include

    void main()

    {

    int num1, num2, mult=0, i;

    printf("Introduce dos numeros a multiplicar:");

    scanf("%d %d",&num1,&num2);

    for(i=0; i

  • 7/23/2019 Ejer Cici Os Practic as 1

    7/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Mitades sucesivas

    Enunciado

    Realizar un programa que acepte por el teclado un nmero con decimales, y nos

    presenta por pantalla ese nmero, la mitad de ese nmero, la mitad de la mitad, y assucesivamente. Cuando el resultado sea menor que 1, el programa termina.

    Ejemplo de ejecucin

    Introduzca n: 6.15

    6.15

    3.075

    1.5735

    Solucin o soluciones#include

    void main()

    {

    float n;

    printf("Introduzca n:");

    scanf("%f",&n);

    while(n>=1)

    {

    printf("%f",n);n=n/2;

    }

    }

    #include

    void main()

    {

    float n,d;

    d=1.0;

    printf("Introduzca n:");

    scanf("%f",&n);

    while(d

  • 7/23/2019 Ejer Cici Os Practic as 1

    8/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Objeto acelerado

    Enunciado

    Se pide realizar un programa que calcule la distancia que recorre un objeto y la

    velocidad alcanzada en cada intervalo de 0.5 segundo durante los 3 primeros segundosde su movimiento. El objeto se mueve desde la posicin cero, con velocidad inicial nula

    y con una aceleracin constante tecleada por el usuario.

    Se debe utilizar un bucle para dicho clculo.

    Ejemplo de ejecucin

    Introduzca aceleracion: 3

    T: 0.000000, Pos: 0.000000, Vel: 0.000000

    T: 0.500000, Pos: 0.750000, Vel: 1.500000

    T: 1.000000, Pos: 3.000000, Vel: 3.000000

    T: 1.500000, Pos: 6.750000, Vel: 4.500000

    T: 2.000000, Pos: 12.000000, Vel: 6.000000

    T: 2.500000, Pos: 18.750000, Vel: 7.500000

    T: 3.000000, Pos: 27.000000, Vel: 9.000000

    Solucin#include

    void main(void)

    {

    float posicion=0.0f,velocidad=0.0f,aceleracion;

    float t;

    printf("Introduzca aceleracion: ");

    scanf("%f",&aceleracion);

    for(t=0.0f; t

  • 7/23/2019 Ejer Cici Os Practic as 1

    9/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Ttulo: Suma de una serie

    Enunciado

    Realizar un programa que calcule la suma de la siguiente serie:

    22221

    2

    1

    3

    1

    2

    1

    1

    11

    n...

    isuma

    n

    i

    ++++===

    El valor de n ser introducido por el usuario desde el teclado. Si el usuario introduce un

    valor de n menor que 1, el programa se lo volver a pedir de forma reiterada hasta que

    el usuario introduzca un nmero mayor o igual que 1.

    Ejemplo de ejecucin

    Introduzca n: -1

    Introduzca n: 0Introduzca n: 100

    La suma vale 1.634984

    Solucin o soluciones//Con bucles do-while y for

    #include

    void main()

    {

    int n, i;

    float suma=0;

    do

    {

    printf("Introduzca n: ");

    scanf("%d", &n);

    }

    while (n

  • 7/23/2019 Ejer Cici Os Practic as 1

    10/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Contando

    Enunciado

    Realizar un programa que cuente desde 1 hasta 10. Imprima los valores en lneas

    sucesivas. Si el nmero contado es 3 imprima el siguiente mensaje: He llegado alnumero 3. Si el nmero contado es 10 imprima: He terminado de contar

    Ejemplo de ejecucin

    1

    2

    He llegado al numero 3

    4

    5

    6

    7

    8

    9

    He terminado de contar

    Solucin o soluciones#include

    void main()

    {

    int i;

    for(i=1;i

  • 7/23/2019 Ejer Cici Os Practic as 1

    11/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Cuadrado de asteriscos

    Enunciado

    Realizar un programa que dibuje en la pantalla un cuadrado de asteriscos de lado n,

    siendo n teclado por el usuario, y pudiendo ser cualquier numero entero positivo.

    La nica estructura de control que puede ser utilizada es el for

    Ejemplo de ejecucin

    Introduzca n: 5

    *****

    *****

    *****

    *****

    *****

    Solucin o soluciones#include

    void main()

    {

    int n,i,j;

    printf("Introduzca n:");

    scanf("%d",&n);

    for(i=0;i

  • 7/23/2019 Ejer Cici Os Practic as 1

    12/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Mximo y mnimo

    Enunciado

    Se pide realizar un programa que calcule el mximo y el mnimo de unos datos

    tecleados por el usuario y que deben estar en el rango [0.0 100.0]. Si se introducen datosfuera de ese rango, la introduccin de datos termina y se muestra por pantalla los

    valores del mximo y el mnimo.

    Utilizar un bucle while

    Ejemplo de ejecucin

    Introduzca dato: 23.4

    Introduzca dato: 65.3

    Introduzca dato: 22.0

    Introduzca dato: -2Maximo: 65.300003, Minimo: 22.000000

    Solucin#include

    main()

    {

    float maximo=0.0f, minimo=100.0f, dato;

    while(1)

    {

    printf("Introduzca dato: ");

    scanf("%f",&dato);

    if(dato100.0f)

    break;

    if(maximodato)

    minimo=dato;

    }

    printf("Maximo: %f, Minimo: %f\n",maximo, minimo);

    }

  • 7/23/2019 Ejer Cici Os Practic as 1

    13/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Volmenes de cilindros.

    Enunciado

    Escribir una tabla con los volmenes de un cilindro cuyo radio se solicita al usuario y

    cuya altura vara desde 1.0 hasta 3.4 metros, cada 0.3 metros.

    Ejemplo de ejecucin

    Introduzca el radio: 1.5

    Tabla de volumenes:

    R=1.5 H=1.0 V=7.1

    R=1.5 H=1.3 V=9.2

    R=1.5 H=1.6 V=11.3

    R=1.5 H=1.9 V=13.4

    R=1.5 H=2.2 V=15.6

    R=1.5 H=2.5 V=17.7

    R=1.5 H=2.8 V=19.8

    R=1.5 H=3.1 V=21.9

    R=1.5 H=3.4 V=24.0

    Solucin#include

    #define PI 3.141592

    void main (void)

    {float radio, altura;

    printf("Introduzca el radio: ");

    scanf("%f",&radio);

    printf("Tabla de volumenes:\n");

    for(altura=1.0f;altura

  • 7/23/2019 Ejer Cici Os Practic as 1

    14/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Numero primo

    Enunciado

    Realizar un programa que solicite un nmero entero al usuario y le informe si dicho

    numero es primo o no.

    Ejemplos de ejecucin

    Teclee numero: 25

    El numero 25 no es primo

    Teclee numero: 17

    El numero 17 es primo

    Solucin#include

    void main(void)

    {

    int numero,i;

    printf("Teclee numero: ");

    scanf("%d",&numero);

    for (i=2;i

  • 7/23/2019 Ejer Cici Os Practic as 1

    15/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Ttulo: Contar de A a B de m en m

    Enunciado

    Hacer un programa que imprima los nmeros enteros de A a B, contando de m en m.

    Los valores de A y B sern asignados dentro del programa en codigo, mediante la

    inicializacin de las variables en su declaracin. Por ejemplo, A=8 y B=19.

    El valor de m ser introducido por el usuario desde el teclado. Si el usuario introduce un

    valor de m menor que 1, el programa se lo volver a pedir de forma reiterada hasta que

    el usuario introduzca un nmero mayor o igual que 1.

    Ejemplo de ejecucin (para A=8 y B=19)

    Introduzca m: -1

    Introduzca m: 0

    Introduzca m: 3

    8

    11

    14

    17

    Solucin o soluciones#include

    void main()

    {

    int A=8, B=19, m, i;

    do

    {

    printf("Introduzca m: ");

    scanf("%d", &m);

    }

    while (m

  • 7/23/2019 Ejer Cici Os Practic as 1

    16/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Ttulo: Tablero de ajedrez

    Enunciado

    Hacer un programa que imprima en la pantalla un tablero de ajedrez de 8x8 mediante eluso de bucles for, uno para las filas y otro para las columnas. Para representar el tablero

    se utilizar para la casilla negra una N y para la casilla blanca una B. La primera casilla

    puede ser blanca (B) o negra (N).

    Nota: la suma de la fila y columna de una casilla de un color es un nmero par y la del

    otro un nmero impar.

    Ejemplo de ejecucin (con la primera casilla blanca)

    B N B N B N B N

    N B N B N B N B

    B N B N B N B N

    N B N B N B N B

    B N B N B N B N

    N B N B N B N B

    B N B N B N B N

    N B N B N B N B

    Solucin o soluciones#include

    void main()

    {

    int i,j;

    for(i=1;i

  • 7/23/2019 Ejer Cici Os Practic as 1

    17/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Ttulo: Media de un conjunto de nmeros

    Enunciado

    Hacer un programa que calcule la media de un nmero indeterminado de nmerosenteros introducidos por el usuario desde el teclado. La introduccin de nmeros

    finalizar cuando el usuario introduzca un nmero negativo.

    Ejemplo de ejecucin

    Introduzca numeros enteros y calculare la media

    (para terminar introduzca un numero negativo)

    1

    4

    -3

    La media vale 2.500000

    Solucin o soluciones#include

    void main()

    {

    int suma=0, numero, contador=0;

    float media;

    printf("Introduzca numeros enteros y calculare la media\n");

    printf("(para terminar introduzca un numero negativo)\n");

    while(1){

    scanf("%d", &numero);

    if(numero

  • 7/23/2019 Ejer Cici Os Practic as 1

    18/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Ttulo: Tabla de multiplicar de un nmero del 1 al 9

    Enunciado

    Hacer un programa que imprima en la pantalla la tabla de multiplicar del nmero n queser introducido por el usuario desde el teclado y cuyo valor debe estar comprendido

    entre 1 y 9, ambos inclusive. Si el usuario introduce un valor fuera de ese intervalo, el

    programa se lo volver a pedir de forma reiterada hasta que el usuario introduzca un

    nmero correcto.

    Ejemplo de ejecucin

    Introduzca n: 0

    Introduzca n: -1

    Introduzca n: 7

    La tabla del 7 es

    7x1=7

    7x2=14

    7x3=21

    7x4=28

    7x5 =35

    7x6=42

    7x7=49

    7x8=56

    7x9=63

    7x10=70

    Solucin o soluciones#include

    void main()

    {

    int n, i;

    do

    {

    printf("Introduzca n: ");

    scanf("%d", &n);

    }while (n9);

    printf("\nLa tabla del %d es\n", n);

    for(i=1;i

  • 7/23/2019 Ejer Cici Os Practic as 1

    19/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Aprobado o Suspenso?

    Enunciado

    Realizar un programa en el que se pida al introducir la nota de una asignatura y seindique si est aprobado (a partir de 5 puntos) o suspenso (menos de 5 puntos). Repita la

    operacin tantas veces como el usuario desee, realizndole la pregunta si quiere

    continuar, cuya respuesta ser un carcter s o n. El programa debe funcionar

    independientemente de si dichos caracteres estn en maysculas o minsculas

    La nica estructura de control que puede ser utilizada es el do-while

    Ejemplo de ejecucin

    Introduzca la nota: 3.0

    SUSPENSO. Desea Continuar (S/N): SIntroduzca la nota: 7.5

    APROBADO. Desea Continuar (S/N): N

    Solucin o soluciones#include

    void main()

    {

    float nota;

    char var;

    do

    {

    printf("Introduce la nota: ");

    scanf("%f",&nota);

    if(nota >= 5.0)

    printf("APROBADO. Desea Continuar(S/N): ");

    else

    printf("SUSPENSO. Desea Continuar(S/N): ");

    fflush(stdin);

    scanf("%c",&var);

    }while(var != 'N' && var != 'n');

    }

  • 7/23/2019 Ejer Cici Os Practic as 1

    20/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Ao Bisiesto

    EnunciadoUn ao es bisiesto si es divisible por 4 y no por 100 o bien es divisible por 400. Hacer

    un programa que pida al usuario un ao y muestre si es o no bisiesto. El programa se

    repite indefinidamente, hasta que el usuario teclea un ao negativo

    Ejemplo de ejecucin

    Introduce un anio: 1996

    BISIESTO

    Introduce un anio:1997

    NO BISIESTO

    Introduce un anio: 1998

    NO BISIESTO

    Introduce un anio: 2000

    BISIESTO

    Introduce un anio: 2100

    NO BISIESTO

    Introduce un anio: 2200

    NO BISIESTO

    Introduce un anio: 2400

    BISIESTO

    Introduce un anio: 1992BISIESTO

    Introduce un anio: -3

    Solucin o soluciones

    #include

    void main()

    {

    int anio, bis;

    do{

    printf("Introduce un anio: ");

    scanf("%d",&anio);

    bis=((anio%4 == 0) && (anio%100 != 0)) ||(anio%400 == 0);

    if(bis)

    printf("BISIESTO\n");

    else

    printf("NO BISIESTO\n");

    }while(anio>=0);

    }

  • 7/23/2019 Ejer Cici Os Practic as 1

    21/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Calculo de una sucesin

    Enunciado

    Realizar un programa para calcular los n trminos de la sucesin: ( )12

    11

    2

    +

    =

    n

    na

    n

    n.

    El valor n es introducido por el usuario.

    Ejemplo de ejecucin

    Introduce el valor n: 10

    a1 = 0.000000

    a2 = 0.600000

    a3 = -1.142857

    a4 = 1.666667a5 = -2.181818

    a6 = 2.692308

    a7 = -3.200000

    a8 = 3.705882

    a9 = -4.210526

    a10 = 4.714286

    Solucin o soluciones#include

    void main(){

    int n, i;

    float signo = 1, an;

    printf("Introduce el valor n: ");

    scanf("%d",&n);

    for(i=1;i

  • 7/23/2019 Ejer Cici Os Practic as 1

    22/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Positivo o negativo

    EnunciadoRealizar un programa que pida un nmero de tipo entero por teclado e indique si el

    nmero es positivo o negativo. El programa termina si ese nmero 0.

    Realizar el bucle con una estructura do while

    Ejemplo de ejecucin

    Introduzca n: -3

    El nmero es negativo.

    Introduzca n: 7

    El nmero es positivo.Introduzca n: 0

    Solucin o soluciones#include

    void main()

    {

    int n;

    do {

    printf("Introduzca n:");

    scanf("%d",&n);

    if(n>0)

    printf("El nmero es positivo.\n");

    if(n

  • 7/23/2019 Ejer Cici Os Practic as 1

    23/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Nmero de da de la semana

    Enunciado

    Realizar un programa que acepte por el teclado un nmero entero. Dado ese nmero, el

    programa presenta por pantalla el nombre de da asociado a ese nmero, (1 es Lunes, 2es Martes, etc.). El programa vuelve al principio, para que se pueda introducir otro

    nmero, hasta que se introduzca un 0, en cuyo caso el programa termina. Si el nmero

    no corresponde a un mes (negativo, 0 o mayor que 7), se indica con un mensaje

    "Nmero incorrecto"

    Debe emplearse una instruccin switch

    Ejemplo de ejecucin

    Introduzca nmero de da: 6

    SbadoIntroduzca nmero de da: 2

    Martes

    Introduzca nmero de da: 75

    Nmero incorrecto.

    Introduzca nmero de da: 0

    Nmero incorrecto.

    Solucin o soluciones#include

    void main()

    {

    int n;

    do

    {

    printf("Introduzca nmero de da:");

    scanf("%d",&n);

    switch(n)

    {

    case 1: printf("Lunes"); break;

    case 2: printf("Martes"); break;

    case 3: printf("Mircoles"); break;

    case 4: printf("Jueves"); break;

    case 5: printf("Viernes"); break;

    case 6: printf("Sbado"); break;

    case 7: printf("Domingo"); break;

    default: printf("Nmero incorrecto");

    }

    } while(n!=0) ;

    }

  • 7/23/2019 Ejer Cici Os Practic as 1

    24/24

    Ejercicios de prcticas de Fundamentos de Informtica. ELAI-UPM

    Titulo: Notas 0-10 (con if )

    Enunciado

    Realizar un programa que acepte por el teclado un nmero decimal. Dado ese nmero,

    el programa presenta por pantalla un nombre de nota asociado a ese nmero, segn latabla. Si el nmero no es vlido, (negativo o mayor que 10), se indica con un mensaje

    "Nmero incorrecto". El programa se repite indefinidamente hasta que se pulsa ctrl.+C.

    Nmero Nombre de la nota

    0-1 Muy deficiente

    1-5 Insuficiente

    5-7 Suficiente

    7-9 Notable

    9-10 Sobresaliente

    Debe emplearse nicamente la instruccin alternativa if - else if, dentro de un

    bucle while

    Ejemplos de ejecucin

    Introduzca nota: 8.1

    Notable

    Introduzca nota: 51.2

    Nmero incorrecto.

    Introduzca nota: 4.2

    Insuficiente

    Solucin o soluciones#include

    void main()

    {

    float n;

    while(1)

    {

    printf("Introduzca nota:");

    scanf("%f",&n);

    if(n10)

    printf("Numero incorrecto\n");

    else if (n