viernes, 29 de julio de 2016

Capítulo 57. Ejercitando lo aprendido en C. Parte 2

Continuando con los ejercicios en C.

9.- Escriba un programa que indique si un año es bisiesto o no

#include<stdio.h>

int main(void){
 int numero;

  printf("Ingresa un a%co: ", 164);//el %c es para poder agregar la letra ñ
  scanf("%d", &numero);

  if(numero % 4 == 0){
    printf("Es bisiesto\n");
  }
  else{
    printf("No es bisiesto\n");
  }

return 0;
}

//Escrito por Gustavo J. Cerda Nilo, Febrero 2016


Diario de un programador.- Dia 123

10.- Escriba un programa que pida dos números enteros y que calcule la división, indicando si la división es exacta o no.

#include<stdio.h>

int main(void){
  int dividendo, divisor;
  printf("Ingresa el dividendo: ");
  scanf("%d", &dividendo);

  printf("Ingresa el divisor: ");
  scanf("%d", &divisor);

  if(dividendo % divisor == 0){
    printf("La division es exacta\n");
    }
  else{
    printf("La division no es exacta\n");
    }

return 0;
}

//Escrito por Gustavo J. Cerda Nilo, Febrero 2016


11.- Escriba un programa que pida al usuario dos palabras, y que indique cuál de ellas es la más larga y por cuántas letras lo es.


#include<stdio.h>
#include<string.h>
#include<math.h>

int main(void){
  char palabra1[100], palabra2[100], mayor[100] = "";
  int conteo1, conteo2, diferencia;

  printf("Ingresa una palabra: ");
  fgets(palabra1,100, stdin);
  printf("Ingresa otra palabra: ");
  fgets(palabra2,100, stdin);
  conteo1 = strlen(palabra1);
  conteo2 = strlen(palabra2);
  diferencia = abs(conteo1 - conteo2);

  if (conteo1 > conteo2){
      printf("\nLa palabra mayor es %s\n", palabra1);
  }
  if (conteo1 < conteo2){
      printf("\nLa palabra mayor es %s\n", palabra2);
  }
  if(conteo1 == conteo2){
      printf("\nLas palabras tienen la misma longitud\n");
  }

  printf("La diferencia es de %d letra(s)\n", diferencia);


return 0;
}


Diario de un programador.- Dia 124

12.- Escriba un programa que reciba como entrada dos números, y los muestre ordenados de menor a mayor:

#include<stdio.h>

int main(void){
  int a[2], b[2];

  printf("Ingresa un numero: ");
  scanf("%d", &a[0]);
  printf("Ingresa otro numero: ");
  scanf("%d", &a[1]);

  if(a[0] < a[1]){
    b[0] = a[0];
    b[1] = a[1];
  }//fin if
  else{
    b[0] = a[1];
    b[1] = a[0];
  }//fin else
  printf("%d,%d\n",b[0],b[1]);


return 0;
}


13.- escriba otro programa que haga lo mismo con cinco números:

#include<stdio.h>

int main(void){

  int i,j, aux, a[5];
  for(i = 0; i < 5; i++){
    printf("Ingresa un numero: ");
    scanf("%d", &a[i]);
  } //fin for

  for(i = 0; i < 5; i++){
    for(j = 0; j < 5; j++){
        if(a[j] > a[j + 1]){
            aux = a[j];
            a[j] = a[j + 1];
            a[j + 1] = aux;
        }//fin if
    }//fin for
  }//fin for
  printf("%d,%d,%d,%d,%d\n", a[0],a[1],a[2],a[3],a[4]);
return 0;
}//fin main


Diario de un programador.- Dia 125


14.- Escribir un programa que calcule el mínimo común múltiplo de tres números

#include<stdio.h>

int main(void){
  int mayor = 0, casilla = 0, numerador = 0, contador = 0;
  int interruptor = 0, multiplicador = 0, multiplo = 0;
  int i, j;
  int num[3];

  printf("Ingresa 3 numeros:\n");
  for (i = 0; i < 3; i++){
    numerador ++;
    printf("%d: ", numerador);
    scanf("%d", &num[i]);
    if(num[i] > mayor){
      mayor = num[i];
    }//fin if
  }//fin for
  while(interruptor == 0){
    contador = 0;
    multiplicador ++;
    multiplo = mayor * multiplicador;
    for(j = 0; j < 3; j++){
      if(multiplo % num[j] == 0){
        contador++;
      }//fin if
    }//fin for
    if(contador == 3){
      interruptor = 1;
    }//fin if
  }//fin while
  printf("El M.C.M es: %d",multiplo);


return 0;
}

Diario de un programador.- Dia 126

15.- Escriba un programa que solicite la fecha de nacimiento y calcule su edad
Ej:
Ingrese su fecha de nacimiento.
Dia: 14
Mes: 6
Anyo: 1948
Tu edad es de 62 años
 
#include<stdio.h>

int main(void){
 int dia, diaNac, mes, mesNac, anyo, anyoNac, totalAnyo;

 printf("Ingresa la fecha actual\n");
 printf("Ingresa el dia: ");
 scanf("%d", &dia);

 printf("Ingresa el mes: ");
 scanf("%d", &mes);

 printf("Ingresa el a%co: ",164);
 scanf("%d", &anyo);

 printf("\nIngresa tu fecha de nacimiento:\n");
 printf("Ingresa el dia: ");
 scanf("%d", &diaNac);

 printf("Ingresa el mes: ");
 scanf("%d", &mesNac);

 printf("Ingresa el a%co: ",164);
 scanf("%d", &anyoNac);

 totalAnyo = anyo - anyoNac;

 if(mes > mesNac){
    printf("Tienes %d a%cos\n",totalAnyo,164);
 }
 if(mes < mesNac){
    printf("Tienes %d a%cos\n",(totalAnyo - 1),164);
 }
 if(mes == mesNac){
   if(dia >= diaNac){
      printf("Tienes %d a%cos\n",totalAnyo,164);
   }
   else{
      printf("Tienes %d a%cos\n",(totalAnyo - 1),164);
   }
 }

return 0;
}

Diario de un programador.- Dia 127

16.- Los tres lados a, b y c de un triángulo deben satisfacer la desigualdad triangular: cada uno de los lados no puede ser más largo que la suma de los otros dos.
Escriba un programa que reciba como entrada los tres lados de un triángulo, e indique si el triángulo es válido y  si lo es, a que tipo corresponde. Ej:

Ingrese lado1: 2
Ingrese lado2: 3
Ingrese lado3: 7
No es un triangulo valido.

Ingrese a: 3
Ingrese b: 2
Ingrese c: 2
El triangulo es isósceles.

#include<stdio.h>

 void tipo(int, int, int);
 void tipo(int lado1, int lado2, int lado3){
   if(lado1 == lado2 && lado1 == lado3){
     printf("Es equilatero\n");
   }
   if(lado1 == lado2 && lado1 != lado3 || lado1 == lado3 && lado1 != lado2 || lado2 == lado3 && lado2 != lado1){
     printf("Es isosceles\n");
   }
   if(lado1 != lado2 && lado1 != lado3 && lado2 != lado3){
     printf("Es escaleno\n");
   }
 }

int main(void){
  int desigual = 0, lado1, lado2, lado3;

  printf("Desigualdad Triangular\n");
  printf("Ingresa el lado 1: ");
  scanf("%d", &lado1);

  printf("Ingresa el lado 2: ");
  scanf("%d", &lado2);

  printf("Ingresa el lado 3: ");
  scanf("%d", &lado3);

  if((lado1 + lado2) < lado3){
    desigual++;
  }
  if((lado1 + lado3) < lado2){
    desigual++;
  }
  if((lado2 + lado3) < lado1){
    desigual++;
  }
  if (desigual > 0){
    printf("No es un triangulo valido\n");
  }
  else{
    tipo(lado1,lado2,lado3);
  }

 return 0;
}

Diario de un programador.- Dia 128

17.- Escriba un programa que muestre la tabla de multiplicar del 1 al 10 del número ingresado por el usuario:

#include<stdio.h>

void Tabla(int);
void Tabla(int numero){
 int i;
 for(i = 1; i<=10; i++){
   printf("%d x %d = %d\n",numero, i, (i * numero) );
 }
}

int main(void){
  int numero;
  printf("Ingresa un numero: ");
  scanf("%d", &numero);
  Tabla(numero);

return 0;
}

18.- Escriba un programa que pida al usuario dos números enteros, y luego entregue la suma de todos los números que están entre ellos. Por ejemplo, si los números son 1 y 7, debe entregar como resultado 2 + 3 + 4 + 5 + 6 = 20.

#include<stdio.h>

int main(void){

  int num1, num2, i,j, aux = 0;

  printf("Sumatoria entre dos numeros\n");
  printf("Ingresa un numero: ");
  scanf("%d", &num1);
  printf("Ingresa otro numero: ");
  scanf("%d", &num2);

  for(i = (num1 + 1); i < num2; i++){
    aux = aux + i;
  }//fin for

  for(j = (num1 + 1); j < num2; j++){
    if(j == (num2 - 1)){
      printf("%d = ", j);
    }//fin if
    else{
      printf("%d + ", j);
    }//fin if
  }//fin for

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


return 0;
}

Esto es todo por ahora. A ejercitar que la única manera de aprender a programar es programando. Mientras más mejor. 

Gustavo J. Cerda Nilo
Febrero 2016, Julio 2016




lunes, 25 de julio de 2016

Capítulo 57. Ejercitando lo aprendido en C. Parte 1

Diario de un programador.- Día 119


Al igual que en la clase de Java, es hora de realizar unos ejercicios para practicar y comprobar lo aprendido. Estos son los mismos ejercicios que se desarrollaron con Small Basic en el capítulo 14.

1.- Escriba un programa que pida al usuario que escriba su nombre, y luego el programa debe saludarlo.
                Ej: El usuario escribe Ximena y el programa responde, Hola Ximena.

Respuesta:

#include<stdio.h>
int main(void){
   char nombre[20];

   printf("Ingresa tu nombre: ");
   fgets(nombre, 20, stdin);

   printf("Hola %s", nombre);

return 0;
}

//escrito por: Gustavo Cerda Nilo, Febrero 2016



2.- Escriba un programa que calcule el área de un círculo, preguntando el largo del radio.
                Ej: El usuario ingresa 5 y el programa responde, El área es 78,5

Respuesta:


#include<stdio.h>

int main(void){
    int radio;
    float PI = 3.14, area;

    printf("Ingresa el radio: ");
    scanf("%d", &radio);
    radio = radio * radio;
    area = PI * radio;

    printf("El area es %f\n", area);
return 0;
}
//escrito por: Gustavo Cerda Nilo, Febrero 2016


3.- Escriba un programa que calcule el promedio de 5 números ingresadas por el usuario:

Respuesta:


#include<stdio.h>

int main(void){
    int i, numero, suma = 0;
    float promedio;

    for(i = 1; i <= 5; i++){
       printf("Ingreso nro.%d: ", i);
       scanf("%d", &numero);
       suma = suma + numero;
    }//fin for
  promedio = suma / 5;

  printf("El promedio es %f\n", promedio);
return 0;
}


Diario de un programador.- Dia 120

4.- Escriba un programa que convierta de centímetros a pulgadas, preguntando al usuario que ingrese los centímetros. Una pulgada es igual a 2.54 centímetros.

Respuesta:


#include<stdio.h>

int main(void){
  int centimetro;
  float pulgada;

  printf("Ingresa los centimetros: ");
  scanf("%d", &centimetro);
  pulgada = centimetro / 2.54;
  printf("Son %.2f pulgadas\n", pulgada);

return 0;
}


5.- Escriba un programa que pida al usuario un entero de tres dígitos, y entregue el número con los dígitos en orden inverso:

            Ej. El usuario escribe 123 y el programa responde 321

Respuesta:

#include<stdio.h>

int main(void){

  int numero, centena, decena, unidad;

  printf("Ingresa un numero de 3 digitos: ");
  scanf("%d", &numero);

  centena = numero / 100;
  decena = (numero % 100) / 10;
  unidad = (numero % 100) % 10;

  printf("%d%d%d\n", unidad, decena,centena);

return 0;
}

Diario de un programador.- Dia 121

6.- Escriba un programa que reciba como entrada las longitudes de los dos catetos a y b de un triángulo rectángulo, y que entregue como salida el largo de la hipotenusa c del triángulo, dado por el teorema de Pitágoras: c2=a2+b2.

 Respuesta:

#include<stdio.h>
#include<math.h>

int main(void){
  int catetoA, catetoB, sumaCatetos;
  float hipotenusa;

  printf("Ingresa el primer cateto: ");
  scanf("%d", &catetoA);
  printf("Ingresa el segundo cateto: ");
  scanf("%d", &catetoB);

  catetoA = catetoA * catetoA;
  catetoB = catetoB * catetoB;
  sumaCatetos = catetoA + catetoB;
  hipotenusa = sqrt(sumaCatetos);

  printf("La hipotenusa es: %f\n",hipotenusa);
  
return 0;
}


7.- Escriba un programa que entregue la parte decimal de un número real ingresado por el usuario.
Ej: El usuario escribe 1,5 y el programa responde, La parte decimal es 0,5

Respuesta:


#include<stdio.h>

int main(void){
 float real, decimal;
 int realEnt;

 printf("Ingresa un nro. real: ");
 scanf("%f", &real);
 realEnt = (int)real;
 decimal = real - realEnt;
 printf("La parte decimal es: %f\n", decimal);

return 0;
}
//escrito por: Gustavo Cerda Nilo, Febrero 2016


Diario de un programador.- Dia 122

8.- Escriba un programa que determine si el número entero ingresado por el usuario es par o impar.

Respuesta:

#include<stdio.h>

int main(void){
 int numero;

  printf("Ingresa un numero: ");
  scanf("%d", &numero);

  if(numero % 2 == 0){
    printf("El numero es par\n");
  }
  else{
    printf("El numero es impar\n");
  }

return 0;
}
//Escrito por Gustavo J. Cerda Nilo, Febrero 2016


Esto es todo por ahora. Para la próxima clase continuarán los ejercicios

Gustavo J. Cerda Nilo
Febrero 2016, Julio 2016





C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...