Sei sulla pagina 1di 4

Práctica Semana 4.

Computación I
Tema: Condicionales.

1) Diga cual será el resultado de los siguientes trozos de programa:

a. #include <stdio.h>
#define TRUE 1
#define FALSE 0
void main ( )
{
int x, y, a;
x = 5;
y = 10;
a = TRUE;
if (a && x != y)
{ x = y - 1; y = x * y ;}
else
x = x+y;
printf ( “ x = %d y = %d\n”, x,y);
...
}
SOLUCION. Escribirá: x = 9 y = 90

b. #include <stdio.h>
#define TRUE 1
#define FALSE 0
void main ( )
{
int siono, x, y, z;
siono = TRUE;
x = 4;
y = 8;
switch (siono) {
case TRUE: z = 2*x; break;
case FALSE : z = y; break;
}
if (z == y) printf (“ z = y \n “);
printf (“ z = %d \n “, z);
...
}

SOLUCION. Escribirá: z = y
z=8

2) Escriba un programa que dados tres números enteros, calcule el mayor y el menor
de ellos.

#include <stdio.h>
void main ( )
{
int x, y, z; /* Entradas */
int mayor, menor; /* Salidas */

printf(“ Introduzca tres numeros enteros:\n”);


scanf(“%d %d %d”, &x, &y, &z);
if (x >= y)
{
mayor = x; menor = y;
}
else
{
mayor = y; menor = x;
}
if (z > mayor )
mayor = z;
else if (z < menor)
menor = z;
printf( “Mayor = %d Menor = %d \n”, mayor, menor);
}

3) Escriba un programa para que dados dos números enteros diferentes, determine si
alguno de ellos divide al otro. En caso afirmativo, debe indicar cual de ellos es el
dividendo y cual es el divisor.
SOLUCION:
#include <stdio.h>
void main ( )
{
int n1, n2; /* Entradas */

int divide, dividendo, divisor; /* Salida*/

printf(“ Introduzca dos numeros enteros:\n”);


scanf(“%d %d”, &n1, &n2);
divide = TRUE;
if (n1%n2 = = 0)
{
dividendo = n1; divisor = n2;
}
else if (n2%n1 = = 0)
{
dividendo = n2; divisor = n1;
}
else
divide = FALSE;
if (divide)
printf(“%d divide a %d \n”, divisor, dividendo)
else
printf (“ ninguno de los dos es divisor del otro \n”);
}
4) Escriba un programa para determinar si un año es bisiesto. Recordar que un año
es bisiesto si es divisible por 4, excepto aquellos divisibles por 100 pero no por
400.

SOLUCION:
#include <stdio.h>
void main ( )
{
int year; /* Entrada */
/* Pre: year >= 0 */

int es_bisiesto; /* Salida */

printf(“ Introduzca el año:\n”);


scanf(“%d”, &year);

if (year < 0)
printf(“El año debe ser positivo”);
else
{
if (year % 4 == 0)
{
es_bisiesto = !(year %100 = = 0 && year % 400 != 0)
}
else
es_bisiesto = 0;
if (es_bisiesto)
printf(“El año %d si es bisiesto \n”, year)
else
printf(“El año %d no es bisiesto \n”, year);
}
}

5) Escriba un programa que, dadas las coordenadas (x,y) de los vértices de un


triangulo, determine si éste es equilátero.

SOLUCION:

#include <stdio.h>
void main ()
{
int x1,y1,x2,y2,x3,y3; /* Entradas */
int equilatero; /* Salida */

float lado1, lado2, lado3;


printf(“ Introduzca las coordenadas de x1,y1:”);
scanf(“%d %d”, &x1, &y1);
printf(“ Introduzca las coordenadas de x2,y2:”);
scanf(“%d %d”, &x2, &y2);
printf(“ Introduzca las coordenadas de x3,y3:”);
scanf(“%d %d”, &x3, &y3);
lado1 = sqrt( (x1 - x2)*(x1 – x2) + (y1 - y2)*(y1 - y2) );
lado2 = sqrt( (x1 - x3)*(x1 – x3) + (y1 - y3)*(y1 - y3) );
if (lado1 == lado2)
{
lado3 = sqrt( (x2 - x3)*(x2 – x3) + (y2 - y3)*(y2- y3));
equilatero = (lado3 = = lado1);
}
else
equilatero = 0;
if (equilatero)
printf (“El triangulo es equilatero \n”)
else
printf (“El triangulo no es equilatero \n”);
}

Potrebbero piacerti anche