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:
Con el siguiente programa podemos realizar calculos sencillos y ecuaciones de segundo grado, aunque estas últimas no todas:
Las matrices son algo muy normal en casi cualquier programa, en este programa se ve un ejemplo de matriz unidimensional:
Con el siguiente ejemplo se verá como generar una contraseña a partir de una matriz y usando una semilla:
También existen las matrices multidimensionales y en este ejemplo veremos como almacenar datos y después poder visualizarlos:
De esta forma se pueden copiar cadenas de una matriz a otra:
De momento pongo estos, podré otros más mañana.
Saludos
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");
}
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);
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");
}
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");
}
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");
}
Código:
#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");
}
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