Resultados 1 al 2 de 2

Ejemplos básicos en C

Esta es una discusión para el tema Ejemplos básicos en C en el foro Manuales Programación, bajo la categoría Programación; Buenas, aquí pondré varios ejemplos de C bastante básicos pero útiles además pondré alguna indicación en los ejemplos para que alguien sin conocimientos pueda entender bien el programa. Algunos utilizan ...
Página: 1


  1. #1
    Roedor de Haches Avatar de FranGK

    Fecha de ingreso
    24 jun, 08
    Ubicación
    España
    Mensajes
    317

    Ejemplos básicos en C

    Buenas, aquí pondré varios ejemplos de C bastante básicos pero útiles además pondré alguna indicación en los ejemplos para que alguien sin conocimientos pueda entender bien el programa.
    Algunos utilizan funciones que no son estándar, aunque no es difícil cambiarlas para que lo sean.

    Este primer ejemplo se muestra como se guarda un único dato y luego puede consultarse:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <ncurses.h>
    char pensar(); //Funcion
           char almacen[20]; //Palabras-letras (char)
           int resul; //Utilizamos int porque usaremos numeros (int)
           
    main() {
           system("cls"); //Limpia pantalla
           printf("1)Guardar dato\n2)Leer dato\n3)Salir"); //Escribe caracteres
           printf("\n\n>");
          scanf("%s",&resul);//Guarda en una variable
          
           if (resul =='1') {//Se abre parentesis cuando la sentencia IF tiene mas de una linea
              printf("\nIntroduce el dato>");
              scanf("%s",&almacen);}//Y luego se cierra en la ultima linea
                   
           if (resul =='2')//Aqui no hace falta "{" porque solo usa una linea
              pensar();//1 linea
           
           if (resul =='3')
              exit(0); //Salir
           
           main(); //Llama a main de nuevo(vuelve al inicio)
                    }
                         
    char pensar(){//En las funciones siempre abrir los "{" "}"
                 printf("Datos: %s\n\n",&almacen);
                 system("pause");
                 }
    Con el siguiente programa podemos realizar calculos sencillos y ecuaciones de segundo grado, aunque estas últimas no todas:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>//Contiene la funcion sqrt
    int srmd();
    int ecuac();
    int elegir;
    int resul = '0';//Se indica el valor a la variable
    int valor1 = '0';
    int valor2 = '0';
    
    main() {
        printf("1)Operaciones basicas\n2)Ecuaciones: 2do grado (coeficientes)\n3)Salir");
        printf("\n\n>");
        scanf("%s",&elegir);
                            if (elegir =='1')
                              srmd();
                            if (elegir =='2')
                              ecuac();
                            if (elegir =='3')
                               exit(0);
        system("cls");
    main(); 
    }
    
    int srmd() {
        system("cls");
        printf("1)Sumar\n2)Restar\n3)Multiplicar\n4)Dividir");
        printf("\n\n>");
        scanf("%s",&elegir);
                             system("cls");
                       printf("Escribe el valor 1:\n\n\n>");           
                       scanf("%d",&valor1);
                       printf("Escribe el valor 2:\n\n\n>");          
                       scanf("%d",&valor2);
                               
                               if (elegir=='1'){
                                resul=valor1+valor2;
                    printf("%d + %d = %d\n\n",valor1,valor2,resul);}
                               if (elegir=='2'){
                                resul=valor1-valor2;
                    printf("%d - %d = %d\n\n",valor1,valor2,resul);}
                               if (elegir=='3'){
                                resul=valor1*valor2;
                    printf("%d * %d = %d\n\n",valor1,valor2,resul);}
                               if (elegir=='4'){
                                resul=valor1/valor2;
                    printf("%d / %d = %d\n\n",valor1,valor2,resul);}
                    
            system("pause");                      
    }
                               
                               
    int ecuac(){//operaciones para resolver ecuacion de segundo grado
        double a,b,c,d,x1,x2;
        system("cls");
        printf("Introducir los valores de a, b y c separados con un espacio");
        printf("\n\n>");
        scanf("%lf %lf %lf", &a, &b, &c);
        d = b * b - 4 * a * c;
        if (d < 0)
         printf("No se puede resolver, las raices son complejas\n"); //la  ecuacion debe dar 0, sino no funciona (Xcuadrado(A) - 2X(B) -3(C) =0  funciona porque x=3)
        //calculando
        d = sqrt(d);
        x1 = (-b +d) / (2 * a);
        x2 = (-b -d) / (2 * a);
        
        printf("x1= %g\nx2= %g\n\n",x1,x2);
        system("pause"); 
    }
    Las matrices son algo muy normal en casi cualquier programa, en este programa se ve un ejemplo de matriz unidimensional:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    char matriz[37] = "abcdefghijklmnopqrstuvwxyz0123456789";//Matriz unidimensional
    main() {
           int i;
               for (i=1; i<=36; i++) //Estructura de control repetitiva
                   printf("Letra: %c -- Numero: %d\n",matriz[i],i);//
           system("pause");
           }
    Con el siguiente ejemplo se verá como generar una contraseña a partir de una matriz y usando una semilla:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    char matriz[36] = "abcdefghijklmnopqrstuvwxyz0123456789";//Cadena
    char contra[19]; //Donde se guardara la contraseña
    int limite;
    main() {
           int i;
           
           printf("Semilla: ");//La semilla tiene que ser un numero
           scanf("%d",&i);
           srand(i); //Inicializa el generador pseudoaleatorio
           
               for (i=0; i<=20; i++){// 20 = longitud de la contrasena que generaremos
                   limite=(rand() % 35) + 0; //Num max = 35 Num menor = 0
                   contra[i]=matriz[limite];}
                   
                   printf("Contrasena generada:\n\n");
                   
                   for (i=0; i<=20; i++) //Mostrar contraseña
                   printf("%c",contra[i]);
    
           printf("\n\n\n\n");
           system("pause");
           }
    También existen las matrices multidimensionales y en este ejemplo veremos como almacenar datos y después poder visualizarlos:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    int i ='0';
    int j ='0';
    char obtpal();
    char mospal();
    char palabras[5][30];//Matriz multidimensional
    main () {
         system("cls");
         printf("1)Introducir palabras\n2)Mostrar palabras introducidas\n3)Salir\n\n>>");
         scanf("%s",&i);
                        if (i =='1'){
                        system("cls");//Limpiar pantalla
                        obtpal();}
                        
                        if (i =='2'){
                        system("cls");
                        mospal();}
                        
                        if (i == '3')
                        exit(0);                   
         main();
    }
    
    char obtpal() {
         printf("Elige el numero de palabras que quieres introducir\n");
         printf("Minimo 1 palabra, maximo 5:\n\n>>");
         scanf("%d",&j);
         
                        for (i=1; i<j; i++){
                           system("cls");
                           printf("Escribe la palabra %d de %d:\n>>",i,j);//Se muestra las palabras restantes
                           scanf("%s",&palabras[i]);}//Guarda la palabra en la posicion 'i'
                  }
                        
    char mospal() {
         for (i=1; i<j; i++)
         printf("Palabra %d: %s\n",i,palabras[i]);
         system("pause");
         }
    De esta forma se pueden copiar cadenas de una matriz a otra:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #define N 10 //Constante
    char cadena[N][N] = {"peces", "aceitunas", "deporte", "brown", "mckay", "chef"};
    char copiacad[N][N];
    int i;
    int j;
    
    main() {
           printf("------Valor de la cadena 1------\n\n");
    for (i=0; i<6; i++)
    printf("Palabra: %s\n",cadena[i]);//Se muestra la cadena original
    
                     for (i=0; i<6; i++){//Copia la palabra 'i'
                         for (j=0; j<N; j++)//Copia la letra 'j' de la palabra 'i'
                             copiacad[i][j]=cadena[i][j];}//La cadenacopia se copia los valores de la original
                             
    printf("\n\n------Valor de la cadena 2------\n\n");
    for (i=0; i<6; i++)
    printf("Palabra: %s\n",copiacad[i]);//Se muestra la cadena que se copio de la original
    system("pause");
    
    }
    De momento pongo estos, podré otros más mañana.

    Saludos

     
     
  2. #2
    Roedor de Haches Avatar de FranGK

    Fecha de ingreso
    24 jun, 08
    Ubicación
    España
    Mensajes
    317

    Re: Ejemplos básicos en C

    Buenas, continuo con los ejemplos que me quedan. el primero de hoy consiste en poder obtener la longitud de una cadena al ser introducida por la consola:
    Código:
    #include <stdio.h>
    #include <stdlib.h> //Aqui estan, entre otras, system(x)
    #include <string.h> //Strlen se encuentra en esta libreria
    char pal;
    main() {
           printf("Escribe una palabra > ");
           scanf("%s",&pal);//Obtenemos la palabra
           printf("La longitud de la palabra es: %d\n\n",strlen(&pal));//Si se usa una variable usar "&"
           system("pause");
           }
    Con este otro se puede cambiar de mayúsculas a minúsculas o viceversa:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    char dminm();
    char dmaym();
    char respu,respus;//Otra forma de declarar las variables de mismo tipo
    
    main() {
           printf("1)De minusculas a mayusculas\n2)De mayusculas a minusculas\n\n>>");
           scanf("%s",&respu);
           printf("\nEscribe una palabra\n>>");
           scanf("%s",&respus);
           
                             if (respu == '1'){
                             system("cls");
                                dminm();}
                                
                             if (respu == '2'){
                             system("cls");
                                dmaym();}
    
           system("pause");
           }
    
    char dminm() {
         printf("En mayusculas: %s \n\n",strupr(&respus));//Convierte de minusculas a mayusculas
         }
         
    char dmaym() {
         printf("En minusculas: %s \n\n",strlwr(&respus));//Convierte de mayusculas a minusculas
         }
    Mediante la función que se usa en este programa se puede saber si el dato introducido es una letra/digito, si no lo es devuelve false:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h> //con tiene la funcion isalnum
    
    char respu;
    
    main() {
           printf("Intruduce UNA letra o UN digito\n\n>>");//Ya que solo comprueba la primera letra
           scanf("%s",&respu);
           
                             if (isalnum(respu))//Si es un num o dig devuelve true, sino false
                                printf("\nEs un numero o un digito\n");
                                else
                                printf ("\nNo es ni un numero ni un digito\n");
    
                             system("pause");
           }
    Aquí se muestran más formas de verificar el dato introducido indicando si es un carácter dígito, letra, etc:
    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    
    char respu,res;
    
    main() {
           printf("1)Verifica si es letra\n2)Verifica si es digito\n3)Verifica si es ASCII\n4)Verifica usando isspace\n5)Toupper\n6)Tolower\n7)Salir\n\n>>");
           scanf("%s",&respu);
                              if (respu == '7')
                                 exit(0);
                                 else{
                               printf("Escribe un caracter\n\n>>");
                               scanf("%s",&res);}
           
                              if(respu == '1'){
                                 if (isalpha(res))//Si es letra..
                                    printf("\nSi es una letra");
                                 else
                                     printf("\nNo es una letra");}
                              if(respu == '2'){
                                 if (isdigit(res))//Si es digito...
                                    printf("\nSi es un numero");
                                 else
                                     printf("\nNo es un numero");}
                              if(respu == '3'){
                                 if (isascii(res))//Si es ascii...
                                    printf("\nSi es ascii");
                                 else
                                     printf("\nNo es ascii");}
                              if(respu == '4'){
                                 if (isspace(res))//Si es espacio, tab...
                                    printf("\nSi es un espacio/tab/enter...");
                                 else
                                     printf("\nNo es un espacio/tab/enter...");}
                              if(respu == '5'){
                                     res=toupper(res);//Esta forma es mas comoda que la del anterior ejemplo
                                     printf("\nEn mayusculas: %c ",res);}
                              if(respu == '6'){
                                     res=tolower(res);//Esta forma es mas comoda que la del anterior ejemplo
                                     printf("\nEn minusculas: %c ",res);}       
                                     
           printf("\n\n");
           system("pause");
           system("cls");
           main();
           }
    Saludos

     
     

Temas similares

  1. Conceptos básicos de seguridad
    Por Kbite en el foro Noticias de seguridad
    Respuestas: 0
    Último mensaje: 01/02/2010, 18:20
  2. Subtitulos Básicos
    Por oucast en el foro Multimedia
    Respuestas: 4
    Último mensaje: 19/11/2009, 11:17
  3. Los 15 comandos más básicos en Linux
    Por titometal en el foro Tips - Manuales GNU-Linux
    Respuestas: 0
    Último mensaje: 22/05/2008, 11:47
  4. programas de windows basicos
    Por Lizz en el foro Windows XP
    Respuestas: 1
    Último mensaje: 10/12/2007, 16:08
  5. donde puedo consguir ejemplos de html
    Por MAXIBADBOY en el foro Programas
    Respuestas: 2
    Último mensaje: 02/02/2005, 21:11

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •