Programitas en c

Iniciado por rollth, Noviembre 04, 2014, 04:11:44 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Noviembre 04, 2014, 04:11:44 PM Ultima modificación: Noviembre 11, 2014, 07:52:52 PM por rollth
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.

Código: c
/*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

Código: c
/* 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 "."

Código: c
#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.

Código: c
/* 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 :)
RollthBuen hacker mejor No tienes permitido ver los links. Registrarse o Entrar a mi cuenta/No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Pues sí se podrían "arreglar" un poquito, pero funcionan.

Muchas gracias por el aporte, vas bien ;)

buenos ejercicios, recuerdo que en los ramos de programación pedían cosas así, no está mal :D!

Se agradece!!
Nivel 77 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Esta bueno! pequeña sugerencia: para mejorar la legibilidad del código podrías utilizar funciones,Saludos!!
Ser mejor cada día es mi meta

=LKI=

Actualizado con nuevos programitas  :D
RollthBuen hacker mejor No tienes permitido ver los links. Registrarse o Entrar a mi cuenta/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

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
RollthBuen hacker mejor No tienes permitido ver los links. Registrarse o Entrar a mi cuenta/No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

gracias tio, esta muy bien, yo tambien estoy aprendiendo C :o y va muy bien estos ejercicios.