Algoritmos y Fundamentos Computacionales
 
Lenguajes de Programación
 
Programación C
 
Ejemplos de Programas en C
 
Lenguaje C
1111 Aspectos Avanzados
 
Links Interes
 
 

 

Programación en C/Ejemplos

 

Agenda-Proyecto 03

struct agenda
{
char nombre[30];
char apellido[30];
int telefono;
char correo_electronico[30];
int edad;
char area_interes[100],sexo;
int codigo;
};

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define num 100//el numero de array que van a ser dispuestos en agenda

void guarda(struct agenda agregado[num]);
int dispmenu(void);
void addlist(struct agenda agregado[num]);
void displist(struct agenda agregado[num]);
void presskey(void);
void guardar(struct agenda ag[100]);
void cargar(struct agenda ag[100]);
int numlist;
main()
{
struct agenda agregado[num];//Me define un array de campos struct
int ans;
int i,k;
do
{
ans=dispmenu();

switch(ans)
{
case(1): addlist(agregado);
break;
case(2): displist(agregado);
break;
case(3): guardar( agregado);
break;
case(4): cargar(agregado);

break;
case(5): exit(1);
break;//por si la mosca
default: printf("\n**Usted debe entrar 1,2,3,4 0 5\n");
break;
}
}while((ans>= 1)&&(ans<=5));

return 0;
}
//******************************************************************************
int dispmenu(void)
{ int choice;
printf("\n\n\n\t\t**agenda **\n\n");
printf("Aqui estan las tareas:\n");
puts("\t1.Entrar datos a la agenda");
puts("\t2.Mostrar los datos");
puts("\t3.guardar los datos");
puts("\t4.cargar los datos");
puts("\t5.Salir del programa");
printf("Cual es tu tarea? \n");
scanf("%d",&choice);
return choice;
}
//******************************************************************************
void addlist(struct agenda agregado[num])

{


if(numlist==num)


{
printf("\nLa agenda esta llena;Usted no puede agregar mas\n");
presskey();
return;//retorna de la funcion sin agregar otra lista
}
printf("Cual es el nombre del agregado?%s \n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].nombre);
gets(agregado[numlist].nombre);
printf("Cuales son los apellidos de %s\n",agregado[numlist].nombre);
gets(agregado[numlist].apellido);
printf("Agrege el telefono de %s\n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].telefono);
printf("Cual es el correo electronico de %s\n",agregado[numlist].nombre);
scanf("%c",&agregado[numlist].correo_electronico);
gets(agregado[numlist].correo_electronico);
printf("Cual es la edad de %s\n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].edad);
printf("Cual el area de interes de %s\n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].area_interes);
gets(agregado[numlist].area_interes);
printf("Cual es el sexo de %s (f)or(m)\n",agregado[numlist].nombre);
scanf("%c",&agregado[numlist].sexo);
printf("Introduzca el codigo de %s\n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].codigo);

numlist++;//incrementa el numero de lista para el proximo agregado
return;
}
//******************************************************************************
void displist(struct agenda agregado[num])
{
int ctr;
if(numlist == 0)
{printf("\n\nNo hay agregados en la lista\n\n");
return;//retorna porque no se encuentran agregados en la lista
}
for(ctr = 0;ctr< numlist;ctr++)
{
printf("\n\agregado #%d:\n",ctr+1);
printf("Name: %s\t",agregado[ctr].nombre);
printf("Apellido: %s\t",agregado[ctr].apellido);
printf("Telefono: %d\n",agregado[ctr].telefono);
printf("Correo Electronico :%s\t",agregado[ctr].correo_electronico);
printf("Edad :%d\n",agregado[ctr].edad);
printf("Area de interes :%s\t",agregado[ctr].area_interes);
printf("Sexo :%c\n",agregado[ctr].sexo);
printf("Codigo:%d\t",agregado[ctr].codigo);
}
return;
}
//******************************************************************************

 

//******************************************************************************
void presskey(void)
{
fflush(stdin);
printf("\n\nPress any key to continue...");
getch();
return;
}
//******************************************************************************
void guardar(struct agenda ag[100]) {
FILE *f = fopen("Agenda.dat", "w");
if(f != NULL) {
fwrite(ag, sizeof(agenda), 100, f);
}

fclose(f);
}

void cargar(struct agenda ag[100]) {
FILE *f = fopen("Agenda.dat", "r");

if(f != NULL) {
fread(ag, sizeof(agenda), 100, f);
}

system("pause");
}

 

 

Impresion de numeros-proyecto 01

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 80

void letras(int n, char nombre[N]){

int u,d,c,du;
char su[22];
char sd[22];
char sc[22];
strcpy(su,"");
strcpy(sd,"");
strcpy(sc,"");

u=n;
u=n%10;
d=((n%100)-u)/10;
du=u+(d*10);
c=(n-du)/100;

if ((du<=15)&&(du>=10)){
switch(du){
case 11:
strcpy(su,"once");
break;
case 12:
strcpy(su,"doce");
break;
case 13:
strcpy(su,"trece");
break;
case 14:
strcpy(su,"catorce");
break;
case 15:
strcpy(su,"quince");
break;
case 10:
strcpy(su,"diez");
break;
}
}
else if (du==20)
strcpy(sd,"veinte");
else if (du==30)
strcpy(sd,"treinta");
else if (du==40)
strcpy(sd,"cuanrenta");
else if (du==50)
strcpy(sd,"cincuenta");
else if (du==60)
strcpy(sd,"sesenta");
else if (du==70)
strcpy(sd,"setenta");
else if (du==80)
strcpy(sd,"ochenta");
else if (du==90)
strcpy(sd,"noventa");

else {

switch(u){

case 0:
strcpy(su,"cero");
break;
case 1:
strcpy(su,"uno");
break;
case 2:
strcpy(su,"dos");
break;
case 3:
strcpy(su,"tres");
break;
case 4:
strcpy(su,"cuatro");
break;
case 5:
strcpy(su,"cinco");
break;
case 6:
strcpy(su,"seis");
break;
case 7:
strcpy(su,"siete");
break;
case 8:
strcpy(su,"ocho");
break;
case 9:
strcpy(su,"nueve");
break;

}
switch(d){

case 1:
strcpy(sd,"diez y ");
break;
case 2:
strcpy(sd,"veinti");
break;
case 3:
strcpy(sd,"treinta y ");
break;
case 4:
strcpy(sd,"cuarenta y ");
break;
case 5:
strcpy(sd,"cincuenta y ");
break;
case 6:
strcpy(sd,"sesenta y ");
break;
case 7:
strcpy(sd,"setenta y ");
break;
case 8:
strcpy(sd,"ochenta y ");
break;
case 9:
strcpy(sd,"noventa y ");
break;

}

}
switch (c){
case 1:
if(du==0)
strcpy(sc,"cien ");
else{
strcpy(sc,"ciento ");
}
break;
case 2:
strcpy(sc,"doscientos ");
break;
case 3:
strcpy(sc,"trescientos ");
break;
case 4:
strcpy(sc,"cuatrocientos ");
break;
case 5:
strcpy(sc,"quinientos ");
break;
case 6:
strcpy(sc,"seiscientos ");
break;
case 7:
strcpy(sc,"setecientos ");
break;
case 8:
strcpy(sc,"ochocientos ");
break;
case 9:
strcpy(sc,"novecientos ");
break;

}
strcpy(nombre,sc);
strcat(nombre,sd);
strcat(nombre,su);

}

main(){
int n=0;
int c=0,mil=0,mill=0;

char nombre[180];
char centenas[N];
char miles[N];
char millones[N];

printf("Bienvenidos a la impresion de numeros\n");

printf("Digite el monto a imprimir o -1 para terminar: ");
scanf("%d",&n);

while(n!=-1){

c=n%1000;
mil=((n%1000000)-c)/1000 ;
mill= (n-(c + mil))/1000000;
strcpy(centenas,"");
strcpy(miles,"");
strcpy(millones,"");
strcpy(nombre,"");

letras(c,centenas);

if(mil==1)
strcpy(miles," mil ");
if(mil==0);

else{
letras(mil,miles);
strcat(miles," mil ");
}

if(mill==1)
strcpy(millones," un millon ");
if(mill==0);

else{
letras(mill,millones);
strcat(millones," millones ");
}
strcpy(nombre,millones);
strcat(nombre,miles);
strcat(nombre,centenas);

printf("\nEl monto se debe leer de la siguente manera: ");
printf("%s",nombre);

printf("\n\nDigite el proximo numero para evaluar o -1 para terminar: ");
scanf("%d",&n);

system ("cls");
}

}

 

 

 

Impresion de Numeros - Proyecto 02

#include <stdio.h>
#include <conio.h>

void romano(int,int);
void romano2(char,char,char,int);
void escribe(char,int);

void main(){
int (num,num2,div);

do
{
clrscr();
printf("Introduzca numero decimal a convertir (0 para salir) => ");
scanf("%d",&num);
num2=num;

if(num!=0)
{
div=1000;
printf("El numero romano equivalente es => ");

while(num!=0)
{
romano(num/div,div);
num=num%div;
div=div/10;
}

getch();
fflush(stdin);
}

}
while(num2!=0);
}
}

///////////////////////////////////////////////////////////////////////////////

void romano(int cant,int div)
{
switch(div)
{
case 1000: printf("M",cant);
break;

case 100: printf("C","M","D",cant);
break;

case 10: printf("X","L","C");
break;

case 1: printf("I","V","X",cant);
break;

}
}

///////////////////////////////////////////////////////////////////////////////

void romano2(char u, char d, char c,int cant)
{
switch (cant)
{
case 1:
case 2:
case 3: escribe(u,cant);
break;

case 4:
case 5: escribe(u,5-cant);
escribe(d,1);
break;
case 6:
case 7:
case 8: escribe(d,1);
escribe(u,cant-5);
break;

case 9:
escribe(u,5-cant);
escribe(d,1);
break;

}
}

///////////////////////////////////////////////////////////////////////////////

void escribe(char car,int veces)
{
int i;

for(i=1;i<=veces;i++)
{
putchar(car);
}
}

 

El "Hola Mundo"

NOTA: Este programa está tomado del Dominio Público

#include <stdio.h>
 
int main(void)
{
  printf("Hola Mundo\n");
  return(0);
}
$ ./holamundo
Hola Mundo
$

 

El "Hola Mundo" comentado

/*
holamundo.c

Envite, 2004
para el wikilibro "Programación en C (fundamentos)"
tomado del Dominio Público
*/

#include <stdio.h> /*Necesario para la función printf()*/

int main(void) /*Función principal del programa*/
{
printf("Hola Mundo\n"); /*imprime la cadena*/
return(0); /*sale del programa: correcto*/
}

$ ./holamundoc
Hola Mundo
$

El "Hola Mundo" estructurado en funciones

/*
holamundo.c

(c) Envite, 2004
para el wikilibro "Programación en C (fundamentos)"
bajo licencia FDL, adaptado del Dominio Público
*/

#include <stdio.h> /*Necesario para la función printf()*/

void holamundo(void) /*Función donde se ejecuta la lógica del programa*/
{
printf("Hola Mundo\n"); /*imprime la cadena*/
return; /*sale de la función*/
}

int main(void) /*Función principal del programa*/
{
holamundo(); /*llamada a la función que lleva el peso*/
return(0); /*sale del programa: correcto*/
}

$ ./holamundof
Hola Mundo
$

Ejemplo de cálculo con enteros

/*
ejemplo.c

(c) Envite, 2004
para el wikilibro "Programación en C (fundamentos)"
bajo licencia FDL
*/

#include <stdio.h> /*Necesario para la función printf()*/

int main(void) /*Función principal del programa*/
{
char resultado; /*Variable de tipo carácter donde se almacenará el resultado de
las operaciones.*/

resultado=5+2; /*Realizamos una suma.*/
printf("Resultado de la suma: %i\n",resultado);
resultado=5-2; /*Realizamos una resta.*/
printf("Resultado de la resta: %i\n",resultado);
resultado=5*2; /*Realizamos una multiplicación.*/
printf("Resultado de la multiplicación: %i\n",resultado);
resultado=5/2; /*Realizamos una división entera.*/
printf("Resultado de la división: %i\n",resultado);

return(0); /*Salimos del programa con el código 0 porque no ha habido errores.*/
}

$ ./ejemploc
Resultado de la suma: 7
Resultado de la resta: 3
Resultado de la multiplicación: 10
Resultado de la división: 2
$

Control de acceso


#include <stdio.h>

void acceso(unsigned char edad)
{
if (edad < 18)
printf("No puedes acceder.\n");
else
printf("Bienvenido.\n");
return;
}

int main(void)
{
acceso(18);
acceso(17);
return(0);
}

$ ./acceso
Bienvenido.
No puedes acceder.$

 

 

 

 

 

 

 

 

1

 

 

Hosted by www.Geocities.ws

1