Underc0de

Programación General => C / C++ => Mensaje iniciado por: rollth en Noviembre 04, 2014, 04:11:44 PM

Título: Programitas en c
Publicado por: rollth en Noviembre 04, 2014, 04:11:44 PM
Hoy he estado haciendo unas practicas simples para la uni de c, os paso los codigo por si alguien quiere echarle un vistazo, aclaro que el del rombo esta tan feo porque ha sufrido 1000 transformaciones.

Este te ordena tres numeros que le des.

/*Ordenar variables*/

#include <stdio.h>

int main(){
/* Declaracion de variables */
  int num1,num2,num3,auxiliar;
/* Fin declaracion de variables */
/* Recogida de datos */
  printf("Introduce 3 numeros: ");
  scanf("%d %d %d",&num1,&num2,&num3);
  auxiliar=0;
/* Fin recogida de datos */
/* Ordenando datos */
  if (num1>=num2){
    auxiliar=num1;
    num1=num2;
    num2=auxiliar;
  }
  if (num1>=num3){
    auxiliar=num1;
    num1=num3;
    num3=auxiliar;
  }
  if (num2>=num3){
    auxiliar=num2;
    num2=num3;
    num3=auxiliar;
  }
  printf("Los numeros ordenados son: %d %d %d",num1,num2,num3);
/* Fin ordenando datos*/
}


Este te hace un triangulo de digitos, el maximo es el 9

/* Triandulo de digitos */

#include <stdio.h>

int main(){
/* Declaracion de variables y solicitud */
  int maxnum;
  printf("Introduce el numero maximo del triangulo: ");
  scanf("%d",&maxnum);
/* Fin declaracion de variables y solicitud */
/* Dibujo triangulo */
  if ((maxnum<=9)&&(maxnum>=1)){
    for (int l=1;l<=maxnum;l++){
      for (int i=1;i<=maxnum-l;i++){
        printf(" ");
      }
      for (int d=1;d<=l;d++){
        printf("%d",d);
      }
      for (int d1=l-1;d1>=1;d1--){
        printf("%d",d1);
      }
      printf("\n");
    }
  }
  else{
    printf("Numero invalido");
  }
/* Fin dibujo triangulo*/
}



Este hace un rombo con "@" "o" y "."

#include <stdio.h>

int main() {
  int radio,letra;
  letra=1;
  printf("\250Lado del Rombo?");
  scanf("%d",&radio);
  radio=radio-1;
  if (radio<=19&&radio>=-1){
  for (int pc=0;pc<=radio;pc++){
    letra=1;
    for (int pc2=1;pc2<=radio;pc2++){
      if(radio<pc2+pc){
      if(letra==1){
          printf("%c",'@');
          letra++;
        }
        else{
          if(letra==2){
            printf("%c",'.');
            letra++;
          }
          else{
            if(letra==3){
              printf("%c",'o');
              letra++;
            }
            else{
              if(letra==4){
                printf("%c",'.');
                letra=1;
              }
            }
          }
        }

      }
      else{
        printf(" ");
      }
    }
    for (int i=0;i<=pc;i++) {
    if(i==0&&pc%4==0){
     letra=1;
    }
    else {
      if(i==0&&pc%4==1){
        letra=4;
      }
     else {
      if(i==0&&pc%4==2){
        letra=3;
      }
      else {
        if(i==0){
          letra=2;
        }
      }
    }
    }
    if(letra==1){
          printf("%c",'@');
          letra++;
        }
        else{
          if(letra==2){
            printf("%c",'.');
            letra++;
          }
          else{
            if(letra==3){
              printf("%c",'o');
              letra++;
            }
            else{
              if(letra==4){
                printf("%c",'.');
                letra=1;
              }
            }
          }
        }
    }
    printf("\n");
  }
  for (int pc=radio-1;pc>=0;pc--){
    letra=1;
    for (int pc2=1;pc2<=radio;pc2++){
      if(radio<pc2+pc){
      if(letra==1){
          printf("%c",'@');
          letra++;
        }
        else{
          if(letra==2){
            printf("%c",'.');
            letra++;
          }
          else{
            if(letra==3){
              printf("%c",'o');
              letra++;
            }
            else{
              if(letra==4){
                printf("%c",'.');
                letra=1;
              }
            }
          }
        }
      }
      else{
        printf(" ");
      }
    }
    for (int i=0;i<=pc;i++) {
          if(i==0&&pc%4==0){
     letra=1;
    }
    else {
      if(i==0&&pc%4==1){
        letra=4;
      }
     else {
      if(i==0&&pc%4==2){
        letra=3;
      }
      else {
        if(i==0){
          letra=2;
        }
      }
    }
    }
    if(letra==1){
          printf("%c",'@');
          letra++;
        }
        else{
          if(letra==2){
            printf("%c",'.');
            letra++;
          }
          else{
            if(letra==3){
              printf("%c",'o');
              letra++;
            }
            else{
              if(letra==4){
                printf("%c",'.');
                letra=1;
              }
            }
          }
        }
    }
    printf("\n");
  }
}
}


Este es de una liguita entre 4 equipos.

/* Muestra la tabla de resultados de una liga */

#include <stdio.h>

int main(){
  /* Declaracion de variables */
  bool final = false;
  int puntos1,puntos2,puntos3,puntos4,golesl,golesv,local,visitante,accion,ganador;
  const char equipo1[]="Valencia F.C";
  const char equipo2[]="Real Madrid C.F";
  const char equipo3[]="Barsa C.F";
  const char equipo4[]="Granada F.C";
  puntos1=0;
  puntos2=0;
  puntos3=0;
  puntos4=0;
  /* Fin declaracion de variables */
  printf("Los equipos participantes son: \n");
  printf("Equipo 1: %s\n",equipo1);
  printf("Equipo 2: %s\n",equipo2);
  printf("Equipo 3: %s\n",equipo3);
  printf("Equipo 4: %s\n",equipo4);
  while (final==false){
    /* Comienzo menu */
    printf("\250Que accion quieres realizar?\n");
    printf("1: Anadir partido\n");
    printf("2: Ver resultado\n");
    printf("3: Acabar liga\n");
    scanf("%d",&accion);
    /* Fin menu */
    /* Comienzo accion 1 */
    if (accion==1){
      printf("Los equipos participantes son: \n");
      printf("Equipo 1: %s\n",equipo1);
      printf("Equipo 2: %s\n",equipo2);
      printf("Equipo 3: %s\n",equipo3);
      printf("Equipo 4: %s\n",equipo4);
      printf("\250Cual es el equipo local?\n");
      scanf("%d",&local);
      printf("\250Cual es el equipo visitante?\n");
      scanf("%d",&visitante);
      printf("\250Cuantos goles ha metido el equipo local?\n");
      scanf("%d",&golesl);
      printf("\250Cuantos goles ha metido el equipo visitante?\n");
      scanf("%d",&golesv);
      if (golesl>golesv){
        ganador=1;
      }
      else if(golesl<golesv){
        ganador=2;
      }
      else {
        ganador=3;
      }
      /* Comienzo dar puntos */
      if (ganador==1){
        if (local==1){
          puntos1=puntos1+3;
        }
        else if (local==2){
          puntos2=puntos2+3;
        }
        else if (local==3){
          puntos3=puntos3+3;
        }
        else if (local==4){
          puntos4=puntos4+3;
        }
      }
      else if (ganador==2){
        if (visitante==1){
          puntos1=puntos1+3;
        }
        else if (visitante==2){
          puntos2=puntos2+3;
        }
        else if (visitante==3){
          puntos3=puntos3+3;
        }
        else if (visitante==4){
          puntos4=puntos4+3;
        }
      }
      else if(ganador==3){
        if (local==1){
          puntos1=puntos1+1;
        }
        else if (local==2){
          puntos2=puntos2+1;
        }
        else if (local==3){
          puntos3=puntos3+1;
        }
        else if (local==4){
          puntos4=puntos4+1;
        }
        if (visitante==1){
          puntos1=puntos1+1;
        }
        else if (visitante==2){
          puntos2=puntos2+1;
        }
        else if (visitante==3){
          puntos3=puntos3+1;
        }
        else if (visitante==4){
          puntos4=puntos4+1;
        }
      }
      /* Fin dar puntos */
    }
    /* Fin accion 1 */
    /* Comienzo accion 2 */
    if (accion==2){
      printf("Esta es la tabla de clasificacion:\n");
      if (puntos1>=puntos2&&puntos1>=puntos3&&puntos1>=puntos4){
        printf("1º ");
        printf("%s %d puntos\n",equipo1,puntos1);
        if (puntos2>=puntos3&&puntos2>=puntos4){
          printf("2º ");
          printf("%s %d puntos\n",equipo2,puntos2);
          if (puntos3>=puntos4){
            printf("3º ");
            printf("%s %d puntos\n",equipo3,puntos3);
            printf("4º ");
            printf("%s %d puntos\n",equipo4,puntos4);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo4,puntos4);
            printf("4º ");
            printf("%s %d puntos\n",equipo3,puntos3);
          }
        }
        else if (puntos3>=puntos2&&puntos3>=puntos4){
          printf("2º ");
          printf("%s %d puntos\n",equipo3,puntos3);
          if (puntos2>=puntos4){
            printf("3º ");
            printf("%s %d puntos\n",equipo2,puntos2);
            printf("4º ");
            printf("%s %d puntos\n",equipo4,puntos4);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo4,puntos4);
            printf("4º ");
            printf("%s %d puntos\n",equipo2,puntos2);
          }
      }
      if (puntos4>=puntos3&&puntos4>=puntos2){
          printf("2º ");
          printf("%s %d puntos\n",equipo4,puntos4);
          if (puntos3>=puntos2){
            printf("3º ");
            printf("%s %d puntos\n",equipo3,puntos3);
            printf("4º ");
            printf("%s %d puntos\n",equipo2,puntos2);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo2,puntos2);
            printf("4º ");
            printf("%s %d puntos\n",equipo3,puntos3);
          }
        }
      }
      else       if (puntos2>=puntos1&&puntos2>=puntos3&&puntos2>=puntos4){
        printf("1º ");
        printf("%s %d puntos\n",equipo2,puntos2);
        if (puntos1>=puntos3&&puntos1>=puntos4){
          printf("2º ");
          printf("%s %d puntos\n",equipo1,puntos1);
          if (puntos3>=puntos4){
            printf("3º ");
            printf("%s %d puntos\n",equipo3,puntos3);
            printf("4º ");
            printf("%s %d puntos\n",equipo4,puntos4);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo4,puntos4);
            printf("4º ");
            printf("%s %d puntos\n",equipo3,puntos3);
          }
        }
        else if (puntos3>=puntos1&&puntos3>=puntos4){
          printf("2º ");
          printf("%s %d puntos\n",equipo3,puntos3);
          if (puntos1>=puntos4){
            printf("3º ");
            printf("%s %d puntos\n",equipo1,puntos1);
            printf("4º ");
            printf("%s %d puntos\n",equipo4,puntos4);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo4,puntos4);
            printf("4º ");
            printf("%s %d puntos\n",equipo1,puntos1);
          }
      }
      if (puntos4>=puntos3&&puntos4>=puntos1){
          printf("2º ");
          printf("%s %d puntos\n",equipo4,puntos4);
          if (puntos3>=puntos1){
            printf("3º ");
            printf("%s %d puntos\n",equipo3,puntos3);
            printf("4º ");
            printf("%s %d puntos\n",equipo1,puntos1);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo1,puntos1);
            printf("4º ");
            printf("%s %d puntos\n",equipo3,puntos3);
          }
        }
      }
      else if (puntos3>=puntos2&&puntos3>=puntos1&&puntos3>=puntos4){
        printf("1º ");
        printf("%s %d puntos\n",equipo3,puntos3);
        if (puntos2>=puntos1&&puntos2>=puntos4){
          printf("2º ");
          printf("%s %d puntos\n",equipo2,puntos2);
          if (puntos1>=puntos4){
            printf("3º ");
            printf("%s %d puntos\n",equipo1,puntos1);
            printf("4º ");
            printf("%s %d puntos\n",equipo4,puntos4);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo4,puntos4);
            printf("4º ");
            printf("%s %d puntos\n",equipo1,puntos1);
          }
        }
        else if (puntos1>=puntos2&&puntos1>=puntos4){
          printf("2º ");
          printf("%s %d puntos\n",equipo1,puntos1);
          if (puntos2>=puntos4){
            printf("3º ");
            printf("%s %d puntos\n",equipo2,puntos2);
            printf("4º ");
            printf("%s %d puntos\n",equipo4,puntos4);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo4,puntos4);
            printf("4º ");
            printf("%s %d puntos\n",equipo2,puntos2);
          }
      }
      if (puntos4>=puntos1&&puntos4>=puntos2){
          printf("2º ");
          printf("%s %d puntos\n",equipo4,puntos4);
          if (puntos1>=puntos2){
            printf("3º ");
            printf("%s %d puntos\n",equipo1,puntos1);
            printf("4º ");
            printf("%s %d puntos\n",equipo2,puntos2);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo2,puntos2);
            printf("4º ");
            printf("%s %d puntos\n",equipo1,puntos1);
          }
        }
      }
      else if (puntos4>=puntos2&&puntos4>=puntos3&&puntos4>=puntos1){
        printf("1º ");
        printf("%s %d puntos\n",equipo4,puntos4);
        if (puntos2>=puntos3&&puntos2>=puntos1){
          printf("2º ");
          printf("%s %d puntos\n",equipo2,puntos2);
          if (puntos3>=puntos1){
            printf("3º ");
            printf("%s %d puntos\n",equipo3,puntos3);
            printf("4º ");
            printf("%s %d puntos\n",equipo1,puntos1);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo1,puntos1);
            printf("4º ");
            printf("%s %d puntos\n",equipo3,puntos3);
          }
        }
        else if (puntos3>=puntos2&&puntos3>=puntos1){
          printf("2º ");
          printf("%s %d puntos\n",equipo3,puntos3);
          if (puntos2>=puntos1){
            printf("3º ");
            printf("%s %d puntos\n",equipo2,puntos2);
            printf("4º ");
            printf("%s %d puntos\n",equipo1,puntos1);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo1,puntos1);
            printf("4º ");
            printf("%s %d puntos\n",equipo2,puntos2);
          }
      }
      else if (puntos1>=puntos3&&puntos1>=puntos2){
          printf("2º ");
          printf("%s %d puntos\n",equipo1,puntos1);
          if (puntos3>=puntos2){
            printf("3º ");
            printf("%s %d puntos\n",equipo3,puntos3);
            printf("4º ");
            printf("%s %d puntos\n",equipo2,puntos2);
          }
          else {
            printf("3º ");
            printf("%s %d puntos\n",equipo2,puntos2);
            printf("4º ");
            printf("%s %d puntos\n",equipo3,puntos3);
          }
        }
      }
    /* Fin accion 2 */
    }
    /* Comienzo accion 3 */
    if (accion==3){
      final=true;
    }
    /* Fin accion 3 */
    else{
      printf("Esa opcion no es posible");
    }
  }
}


Bueno espero que os sirva un poquito a los nuevos :)
Título: Re:Programitas en c
Publicado por: Y3K en Noviembre 04, 2014, 09:59:06 PM
Pues sí se podrían "arreglar" un poquito, pero funcionan.

Muchas gracias por el aporte, vas bien ;)
Título: Re:Programitas en c
Publicado por: DeBobiPro en Noviembre 04, 2014, 11:24:56 PM
buenos ejercicios, recuerdo que en los ramos de programación pedían cosas así, no está mal :D!

Se agradece!!
Título: Re:Programitas en c
Publicado por: LKI en Noviembre 06, 2014, 03:02:25 AM
Esta bueno! pequeña sugerencia: para mejorar la legibilidad del código podrías utilizar funciones,Saludos!!
Título: Re:Programitas en c
Publicado por: rollth en Noviembre 10, 2014, 06:35:21 PM
Actualizado con nuevos programitas  :D
Título: Re:Programitas en c
Publicado por: OnTheCore en Noviembre 14, 2014, 05:52:15 PM
Un consejo, mete espacio en los condicionales, en los loops, etc.
vos lo escribis asi:
if(i==1)
for(i=0;i!=0;i++)
escribilo asi:
if(i == 1)
for(i = 0; i != 0; i++)

Puede que con ese ejemplo no se note la diferencia. Pero cuando tengas algo mas largo, vas a notarlo bastante.
A modo de ejemplo:
if(i!=j&&i>3&&i<9&&i!=5) {
    for(i=0,j=1,k=512;cData!=0&&j!=q&&k!=w;i++,j+=3,k*=2) {

ahora con espacios.

if(i != j && i > 3 && i < 9 && i != 5)
{
    for(i = 0, j = 1, k = 512; cData != 0 && j != q && k != w; i++, j += 3, k *= 2) {

Por lo menos a mi, me parece mucho mas legible. La prolijidad es clave para no tener errores y poder encontrarlos mas rapido.
Igualmente es una opinion personal, programa como te guste :P
Título: Re:Programitas en c
Publicado por: rollth en Noviembre 15, 2014, 07:59:42 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Un consejo, mete espacio en los condicionales, en los loops, etc.
vos lo escribis asi:
if(i==1)
for(i=0;i!=0;i++)
escribilo asi:
if(i == 1)
for(i = 0; i != 0; i++)

Puede que con ese ejemplo no se note la diferencia. Pero cuando tengas algo mas largo, vas a notarlo bastante.
A modo de ejemplo:
if(i!=j&&i>3&&i<9&&i!=5) {
    for(i=0,j=1,k=512;cData!=0&&j!=q&&k!=w;i++,j+=3,k*=2) {

ahora con espacios.

if(i != j && i > 3 && i < 9 && i != 5)
{
    for(i = 0, j = 1, k = 512; cData != 0 && j != q && k != w; i++, j += 3, k *= 2) {

Por lo menos a mi, me parece mucho mas legible. La prolijidad es clave para no tener errores y poder encontrarlos mas rapido.
Igualmente es una opinion personal, programa como te guste :P

Muchas gracias por el consejo, intentare hacerlo a partir de ahora, siempre es mejor intentar mejorar  ;D
Título: Re:Programitas en c
Publicado por: macodlim en Noviembre 30, 2014, 07:16:47 AM
gracias tio, esta muy bien, yo tambien estoy aprendiendo C :o y va muy bien estos ejercicios.