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:
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 <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"); }
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> #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"); }
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[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"); }
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> 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"); }
De esta forma se pueden copiar cadenas de una matriz a otra: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 momento pongo estos, podré otros más mañana.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"); }
Saludos![]()



Citar