#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
struct _agenda {
char nombre[20];
char telefono[12];
struct _agenda *siguiente;
};
struct _agenda *primero, *ultimo;
void mostrar_menu() {
printf("\n\nMenú:\n=====\n\n");
printf("1.- Añadir elementos\n");
printf("2.- Borrar elementos\n");
printf("3.- Mostrar lista\n");
printf("4.- Salir\n\n");
printf("Escoge una opción: ");fflush(stdin);
}
/* Con esta función añadimos un elemento al final de la lista */
void anadir_elemento() {
struct _agenda *nuevo;
/* reservamos memoria para el nuevo elemento */
nuevo = (struct _agenda *) malloc (sizeof(struct _agenda));
if (nuevo==NULL) printf( "No hay memoria disponible!\n");
printf("\nNuevo elemento:\n");
printf("Nombre: "); fflush(stdin);
gets(nuevo->nombre);
printf("Teléfono: "); fflush(stdin);
gets(nuevo->telefono);
/* el campo siguiente va a ser NULL por ser el último elemento
de la lista */
nuevo->siguiente = NULL;
/* ahora metemos el nuevo elemento en la lista. lo situamos
al final de la lista */
/* comprobamos si la lista está vacía. si primero==NULL es que no
hay ningún elemento en la lista. también vale ultimo==NULL */
if (primero==NULL) {
printf( "Primer elemento\n");
primero = nuevo;
ultimo = nuevo;
}
else {
/* el que hasta ahora era el último tiene que apuntar al nuevo */
ultimo->siguiente = nuevo;
/* hacemos que el nuevo sea ahora el último */
ultimo = nuevo;
}
}
void mostrar_lista() {
struct _agenda *auxiliar; /* lo usamos para recorrer la lista */
int i;
i=0;
auxiliar = primero;
printf("\nMostrando la lista completa:\n");
while (auxiliar!=NULL) {
printf( "Nombre: %s, Telefono: %s\n",
auxiliar->nombre,auxiliar->telefono);
auxiliar = auxiliar->siguiente;
i++;
}
if (i==0) printf( "\nLa lista está vacía!!\n" );
}
int main() {
char opcion;
primero = (struct _agenda *) NULL;
ultimo = (struct _agenda *) NULL;
do {
mostrar_menu();
opcion = getch();
switch ( opcion ) {
case '1': anadir_elemento();
break;
case '2': printf("No disponible todavía!\n");
break;
case '3': mostrar_lista();
break;
case '4': exit( 1 );
default: printf( "Opción no válida\n" );
break;
}
} while (opcion!='4');
}
viernes, 22 de noviembre de 2013
viernes, 8 de noviembre de 2013
Arreglos y funciones: La matriz Unitaria
El siguiente programa crea e imprime la matriz unitaria por medio de funciones
#include<stdio.h>
#include<conio.h>
void imprimir(int a[][5]);
void llenar();
int x[5][5];
main()
{
int i;
llenar();
imprimir(x);
getch();
}
void imprimir(int a[][5])
{
for(int i=0;i<5;i++){
for(int j=0;j<5;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
void llenar(void)
{
for(int i=0;i<5;i++){
for(int j=0;j<5;j++)
{
if(i==j)
x[i][j]=1;
else
x[i][j]=0; }
}
}
#include<stdio.h>
#include<conio.h>
void imprimir(int a[][5]);
void llenar();
int x[5][5];
main()
{
int i;
llenar();
imprimir(x);
getch();
}
void imprimir(int a[][5])
{
for(int i=0;i<5;i++){
for(int j=0;j<5;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
void llenar(void)
{
for(int i=0;i<5;i++){
for(int j=0;j<5;j++)
{
if(i==j)
x[i][j]=1;
else
x[i][j]=0; }
}
}
Arreglos y funciones
El siguiente programa es utilizado para capturar un arreglo y posteriormente se imprime por medio de una función.
#include<stdio.h>
#include<conio.h>
void imprimir(int a[]);
main()
{
int i;
int x[5];
for(i=0;i<5;i++){
printf("Dame el valor %d->",i+1);
scanf("%d",&x[i]);}
imprimir(x);
getch();
}
void imprimir(int a[])
{
for(int i=0;i<5;i++)
printf("%d\n",a[i]);
}
#include<stdio.h>
#include<conio.h>
void imprimir(int a[]);
main()
{
int i;
int x[5];
for(i=0;i<5;i++){
printf("Dame el valor %d->",i+1);
scanf("%d",&x[i]);}
imprimir(x);
getch();
}
void imprimir(int a[])
{
for(int i=0;i<5;i++)
printf("%d\n",a[i]);
}
viernes, 18 de octubre de 2013
formula para calcular el dia
a=(14-mm)/12;
y=aa-a;
m=mm+(12*a)-2;
d=(dd+y+y/4-y/100+y/400+(31*m/12));
d=d%7;
Nota: la fecha de entrada esta dada por las siguientes variables:
dd: dia
mm: mes
aa: año
Ejemplo: la fecha 19 de octubre del 2013 se representa por:
dd:19
mm:10
aa:2013
Bibliografìa
http://jms32.eresmas.net/web2008/documentos/informatica/lenguajes/puntoNET/System/date/DiaDeLaSemana/2010_01_26_DiaDeLaSemana.html#Refh2_En_Que_Dia_De_La_Semana_Cae_Una_Fecha_Determinada
y=aa-a;
m=mm+(12*a)-2;
d=(dd+y+y/4-y/100+y/400+(31*m/12));
d=d%7;
Nota: la fecha de entrada esta dada por las siguientes variables:
dd: dia
mm: mes
aa: año
Ejemplo: la fecha 19 de octubre del 2013 se representa por:
dd:19
mm:10
aa:2013
Bibliografìa
http://jms32.eresmas.net/web2008/documentos/informatica/lenguajes/puntoNET/System/date/DiaDeLaSemana/2010_01_26_DiaDeLaSemana.html#Refh2_En_Que_Dia_De_La_Semana_Cae_Una_Fecha_Determinada
miércoles, 4 de septiembre de 2013
lunes, 5 de agosto de 2013
martes, 30 de julio de 2013
Los puntos de una circunferencia
El siguiente código guarda en un archivo de texto plano los puntos de una circunferencia, deberás complementar este programa para que muestre el proceso de lectura del archivo creado.
#include<stdio.h>
#include<conio.h>
#include<io.h>
#include<stdlib.h>
#include<math.h>
main()
{
float x,y,r,g;
FILE *fp;
if((fp=fopen("datos.txt","wb"))==NULL)
{
printf("Error de escritura");
exit(1);
}
r=100;
for(g=0;g<=360;g+=10)
{
x=r*sin(g*3.1416/180);
y=r*cos(g*3.1416/180);
fprintf(fp,"%f\t %.0f\t %f\t %f\n",r,g,x,y);
}
fclose(fp);
}
#include<stdio.h>
#include<conio.h>
#include<io.h>
#include<stdlib.h>
#include<math.h>
main()
{
float x,y,r,g;
FILE *fp;
if((fp=fopen("datos.txt","wb"))==NULL)
{
printf("Error de escritura");
exit(1);
}
r=100;
for(g=0;g<=360;g+=10)
{
x=r*sin(g*3.1416/180);
y=r*cos(g*3.1416/180);
fprintf(fp,"%f\t %.0f\t %f\t %f\n",r,g,x,y);
}
fclose(fp);
}
rutina básica para crear gráficos
#include <winbgim.h>
void waitForLeftMouseClick();
int main()
{
initwindow(400,300); //open a 400x300 graphics window
// delete these lines and replace them with your own code:
settextstyle(0,0,2);
setcolor(RED);
outtextxy(20,100,"Welcome to C++ graphics!");
setcolor(GREEN);
outtextxy(60,130,"Click this window");
outtextxy(120,160,"to exit.");
// while(!kbhit()); // wait for user to press a key
waitForLeftMouseClick(); // use one or the other of these--not both
closegraph(); //close graphics window
return 0;
}
void waitForLeftMouseClick()
{
clearmouseclick(WM_LBUTTONDOWN);
const int DELAY = 50; // Milliseconds of delay between checks
int x, y;
while (!ismouseclick(WM_LBUTTONDOWN))
delay(DELAY);
getmouseclick(WM_LBUTTONDOWN, x, y);
}
void waitForLeftMouseClick();
int main()
{
initwindow(400,300); //open a 400x300 graphics window
// delete these lines and replace them with your own code:
settextstyle(0,0,2);
setcolor(RED);
outtextxy(20,100,"Welcome to C++ graphics!");
setcolor(GREEN);
outtextxy(60,130,"Click this window");
outtextxy(120,160,"to exit.");
// while(!kbhit()); // wait for user to press a key
waitForLeftMouseClick(); // use one or the other of these--not both
closegraph(); //close graphics window
return 0;
}
void waitForLeftMouseClick()
{
clearmouseclick(WM_LBUTTONDOWN);
const int DELAY = 50; // Milliseconds of delay between checks
int x, y;
while (!ismouseclick(WM_LBUTTONDOWN))
delay(DELAY);
getmouseclick(WM_LBUTTONDOWN, x, y);
}
lunes, 15 de julio de 2013
Escribir archivo de texto en lenguaje C
#include<stdio.h>
#include<conio.h>
#include<io.h>
#include<stdlib.h>
main()
{
FILE *fp;
char nom[30];
int ed;
fprintf(stdout,"Introduce tu nombre");
fscanf(stdin,"%s",nom);
fprintf(stdout,"Introduce tu edad");
fscanf(stdin,"%d",&ed);
if((fp=fopen("test.txt","wb"))==NULL)
{
printf("Error de escritura");
exit(1);
}
fprintf(fp,"%s %d\n",nom,ed);
fprintf(stdout,"Datos guardados");
fclose(fp);
if((fp=fopen("test.txt","rb"))==NULL)
{
printf("Error de lectura");
exit(1);
}
fscanf(fp,"%s %d",nom,&ed);
fprintf(stdout,"%s %d\n",nom,ed);
getch();
}
#include<conio.h>
#include<io.h>
#include<stdlib.h>
main()
{
FILE *fp;
char nom[30];
int ed;
fprintf(stdout,"Introduce tu nombre");
fscanf(stdin,"%s",nom);
fprintf(stdout,"Introduce tu edad");
fscanf(stdin,"%d",&ed);
if((fp=fopen("test.txt","wb"))==NULL)
{
printf("Error de escritura");
exit(1);
}
fprintf(fp,"%s %d\n",nom,ed);
fprintf(stdout,"Datos guardados");
fclose(fp);
if((fp=fopen("test.txt","rb"))==NULL)
{
printf("Error de lectura");
exit(1);
}
fscanf(fp,"%s %d",nom,&ed);
fprintf(stdout,"%s %d\n",nom,ed);
getch();
}
miércoles, 10 de julio de 2013
viernes, 5 de julio de 2013
miércoles, 3 de julio de 2013
Códigos del método de QuickSort
:::::::::::::::::::::::::::::::::::::::::::
ORDENACION NUMEROS
:::::::::::::::::::::::::::::::::::::::::::
#include<stdio.h>
#include<conio.h>
void quicksort(int x[],int prim,int ult);
int main()
{ int tam,i;
printf(":::::::::::::Quick Sort:::::::::::::\n\n");
printf("\tDigita cuantos numeros deseas ordenar: ");
scanf("%d",& tam);
int x[tam];
printf("\n\nIntroduce %d valores: \n",tam);
for(i=0;i<tam;i++)
scanf("%d",&x[i]);
quicksort(x,0,tam-1);
printf("\t\nValores Ordenados: \n");
for(i=0;i<tam;i++)
printf(" %d",x[i]);
getch();
return 0;
}
void quicksort(int x[],int prim,int ult)
{ int pivot,j,temp,i;
if(prim<ult)
{ pivot=prim;
i=prim;
j=ult;
while(i<j)
{ while(x[i]<= x[pivot]&& i<ult)
i++;
while(x[j]>x[pivot])
j--;
if(i<j)
{ temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
temp=x[pivot];
x[pivot]=x[j];
x[j]=temp;
quicksort(x,prim,j-1);
quicksort(x,j+1,ult);
}
}
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
ORDENACION CADENAS
:::::::::::::::::::::::::::::::::::::::::::::::::::::::
#include <stdio.h>
#include <string.h>
void quicksort(char nombre[15][15],int izquierda,int derecha)
{
int i,j;
char y[15],*x;
i=izquierda;
j=derecha;
x=nombre[(izquierda+derecha)/2];
do{
while((strcmp(nombre[i],x)<0) && (i<derecha)) i++;
while((strcmp(nombre[j],x)>0) && (j>izquierda)) j--;
if(i<=j)
{
strcpy(y,nombre[i]);
strcpy(nombre[i],nombre[j]);
strcpy(nombre[j],y);
i++;
j--;
}
}while(i<=j);
if(izquierda<j) quicksort(nombre,izquierda,j);
if(i<derecha) quicksort(nombre,i,derecha);
}
int main()
{
char nombre[15][15];
int n,i,izquierda,derecha,respuesta;
do
{
printf("\nCuantos nombres deseas ordenar:\n ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Introduzca el nombre de la persona %d: ",i+1);
scanf("%s",nombre[i]);
}
izquierda=0;
derecha=n-1;
quicksort(nombre,izquierda,derecha);
printf("Los nombres en orden alfabetico:\n");
for(i=0;i<n;i++)
printf("\n %d.-%s",i+1,nombre[i]);
printf("\nEjecutar programa de nuevo? (SI = 1 y NO = 0)\n");
scanf("%d",&respuesta);
}while(respuesta==1);
return 0;
}
martes, 2 de julio de 2013
lunes, 24 de junio de 2013
EVALUACION UNIDAD II
EVALUACION UNIDAD II
GRUPO 353
EVALUACION TIPO A
1.
Desarrolle utilizando una biblioteca y varias
funciones el siguiente problema:
Crear un menú de 5 opciones: cada
opción realizará el cálculo del área de una
figura plana regular diferente (circulo, rectángulo, etc).
2.
Desarrolle utilizando variables globales y
arreglos una función que capture un arreglo de una dimensión y calcule por
medio de funciones:
a)La sumatoria b)
El promedio
c) El numero mayor
3. Desarrolle por
medio de una función por medio un
programa que realice la conversión de radian
a grados y de grados a radianes (El tipo de función será con retorno de valor y
con parámetros).
4. Desarrolla un programa utilizando funciones que convierta
de decimal a binario
5. Desarrolla un programa utilizando funciones que imprima
en pantalla el equivalente de un numero decimal en romano.
EVALUACIÓN TIPO B
1.
Utilice variables globales y funciones para
crear un programa que contenga un menú con 5 opciones, cada opción deberá de calcular
un volumen diferente (cono, cubo, etc).
2.
Desarrolla un biblioteca y varias funciones para
poder calcular el teorema de Pitágoras (calcular las letras a,b,c).
3.
Realiza un programa que capture un arreglo de
una dimensión, lo imprima, y calcule la sumatoria, el valor menor y su
promedio.
4.
Desarrolla un programa utilizando funciones que
convierta de binario a decimal
5.
Desarrolla un programa que utilizando funciones
imprima en pantalla el equivalente de un numero romano en decimal
martes, 18 de junio de 2013
temas a exponer en la unidad 3 (programación estructurada).
burbuja,
inserción,
selección,
quicksort,
búsqueda secuencial,
secuencial con centinela,
binaria e intercalación de datos.
Shell
inserción,
selección,
quicksort,
búsqueda secuencial,
secuencial con centinela,
binaria e intercalación de datos.
Shell
Programacion estructurada
Método de la burbuja utilizando cadenas de caracteres
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char s1[25] = "lopez";
char s2[25] = "hernandez";
char temp[25];
int i;
printf( "s1=%s\t", s1 );
printf( "s2=%s\n", s2 );
i = strcmp( s1, s2 );
if( i > 0 ) {
strcpy(temp,s2);
strcpy(s2,s1);
strcpy(s1,temp);
}
printf("%s¬n %s",s1,s2);
printf("\n\n");
system("pause");
return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char s1[25] = "lopez";
char s2[25] = "hernandez";
char temp[25];
int i;
printf( "s1=%s\t", s1 );
printf( "s2=%s\n", s2 );
i = strcmp( s1, s2 );
if( i > 0 ) {
strcpy(temp,s2);
strcpy(s2,s1);
strcpy(s1,temp);
}
printf("%s¬n %s",s1,s2);
printf("\n\n");
system("pause");
return 0;
}
lunes, 17 de junio de 2013
AVISO IMPORTANTE
El día de hoy 17 de Junio del 2013 no podré estar con ustedes (Grupo 353 y 451), debido a motivos de fuerza mayor.
Grupo 451: Se recorre la evaluación de la unidad 2 al próximo día Lunes, junto con la entrega de la práctica.
Saludos Cordiales
Grupo 451: Se recorre la evaluación de la unidad 2 al próximo día Lunes, junto con la entrega de la práctica.
Saludos Cordiales
miércoles, 12 de junio de 2013
funciones y vectores
El siguiente programa capturaun vector de 5 elementos y los envia a una función para imprimirlo en pantalla y mostrar su sumatoria.
int sumaVec(int vec[5]);
void impVec(int vec[5]);
#include<stdio.h>
#include<conio.h>
main()
{
int vec[5],i,s;
printf("Lectura de los elementos de un vector\n");
for(i=0;i<5;i++)
{
printf("Introduce elnumero %d->", i+1);
scanf("%d",&vec[i]);
}
printf("\n");
impVec(vec);
printf("\n");
s=sumaVec(vec);
printf("\n");
printf("suma=%d",s);
getch();
}
int sumaVec(int vec[5])
{
int i,suma=0;
for(i=0;i<5;i++)
suma=suma+vec[i];
return suma;
}
void impVec(int vec[5])
{
int i;
for(int i=0;i<5;i++)
printf("%d\n",vec[i]);
}
int sumaVec(int vec[5]);
void impVec(int vec[5]);
#include<stdio.h>
#include<conio.h>
main()
{
int vec[5],i,s;
printf("Lectura de los elementos de un vector\n");
for(i=0;i<5;i++)
{
printf("Introduce elnumero %d->", i+1);
scanf("%d",&vec[i]);
}
printf("\n");
impVec(vec);
printf("\n");
s=sumaVec(vec);
printf("\n");
printf("suma=%d",s);
getch();
}
int sumaVec(int vec[5])
{
int i,suma=0;
for(i=0;i<5;i++)
suma=suma+vec[i];
return suma;
}
void impVec(int vec[5])
{
int i;
for(int i=0;i<5;i++)
printf("%d\n",vec[i]);
}
miércoles, 29 de mayo de 2013
PROGRAMACION ESTRUCTURADA
TIPOS DE FUNCIONES
/*funcion sin retorno de valor y sin parametros*/
void suma(void);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
system("cls");
suma();
getch();
}
void suma (void)
{
int a,b,s;
printf("Dame un valor->");
scanf("%d",&a);
printf("Dame otro valor->");
scanf("%d",&b);
s=a+b;
printf("Suma=%d",s);
}
/*funcion con retorno de valor y sin parametros*/
int suma(void);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int sum;
system("cls");
sum=suma();
printf("Suma=%d",sum);
getch();
}
int suma(void)
{
int a,b,s;
printf("Dame un valor->");
scanf("%d",&a);
printf("Dame otro valor->");
scanf("%d",&b);
s=a+b;
return s;
}
/*funcion sin retorno de valor y con parametros*/
void suma(int x,int y);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int sum;
int a,b;
system("cls");
printf("Dame un valor->");
scanf("%d",&a);
printf("Dame otro valor->");
scanf("%d",&b);
suma(a,b);
getch();
}
void suma(int x,int y)
{
int s;
s=x+y;
printf("Suma=%d",s);
}
/*funcion con retorno de valor y con parametros*/
int suma(int x,int y);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int sum;
int a,b;
system("cls");
printf("Dame un valor->");
scanf("%d",&a);
printf("Dame otro valor->");
scanf("%d",&b);
sum=suma(a,b);
printf("Suma=%d",sum);
getch();
}
int suma(int x,int y)
{
int s;
s=x+y;
return s;
}
TIPOS DE FUNCIONES
/*funcion sin retorno de valor y sin parametros*/
void suma(void);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
system("cls");
suma();
getch();
}
void suma (void)
{
int a,b,s;
printf("Dame un valor->");
scanf("%d",&a);
printf("Dame otro valor->");
scanf("%d",&b);
s=a+b;
printf("Suma=%d",s);
}
/*funcion con retorno de valor y sin parametros*/
int suma(void);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int sum;
system("cls");
sum=suma();
printf("Suma=%d",sum);
getch();
}
int suma(void)
{
int a,b,s;
printf("Dame un valor->");
scanf("%d",&a);
printf("Dame otro valor->");
scanf("%d",&b);
s=a+b;
return s;
}
/*funcion sin retorno de valor y con parametros*/
void suma(int x,int y);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int sum;
int a,b;
system("cls");
printf("Dame un valor->");
scanf("%d",&a);
printf("Dame otro valor->");
scanf("%d",&b);
suma(a,b);
getch();
}
void suma(int x,int y)
{
int s;
s=x+y;
printf("Suma=%d",s);
}
/*funcion con retorno de valor y con parametros*/
int suma(int x,int y);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int sum;
int a,b;
system("cls");
printf("Dame un valor->");
scanf("%d",&a);
printf("Dame otro valor->");
scanf("%d",&b);
sum=suma(a,b);
printf("Suma=%d",sum);
getch();
}
int suma(int x,int y)
{
int s;
s=x+y;
return s;
}
lunes, 20 de mayo de 2013
Blog de programación estructurada y métodos numericos
Descarga los lineamientos de las prácticas AQUI
Suscribirse a:
Comentarios (Atom)
