Ejemplos básicos en C

Estado
Cerrado para nuevas respuestas

FranGK

Roedor de Haches
Miembro
Buenas, aquí pondré varios ejemplos de C bastante básicos pero útiles además pondré algúna 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:
Insertar CODE, HTML o PHP:
#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:
Insertar CODE, HTML o PHP:
#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);
    de = 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
    de = 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:
Insertar CODE, HTML o PHP:
#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:
Insertar CODE, HTML o PHP:
#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:
Insertar CODE, HTML o PHP:
#include <stdio.h>
#include <stdlib.h>
int y ='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, máximo 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:
Insertar CODE, HTML o PHP:
#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 ;)
 

FranGK

Roedor de Haches
Miembro
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:
Insertar CODE, HTML o PHP:
#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:
Insertar CODE, HTML o PHP:
#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:
Insertar CODE, HTML o PHP:
#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:
Insertar CODE, HTML o PHP:
#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
 
Estado
Cerrado para nuevas respuestas
Thread starter Temas similares Forum Replies Date
rob1104 Manuales Programación 0
Arriba Pie