• Lunes 29 de Abril de 2024, 07:09

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - arkaitz

Páginas: [1]
1
C/C++ / Re: Problema Con Punteros C
« en: Martes 18 de Diciembre de 2007, 02:26 »
Trate de resolverlo haber si me salia algo a mi...
Esto es lo que me quedo...

Creo que el problema estaba en que tenias que definir a formula[] como static, para que los valores no desaparescan despues de terminada la funcion leer...


Código: Text
  1. #include <stdio.h>
  2. #define MAX 10
  3.  
  4.  
  5. char* leer();     /*prototipos*/
  6.  
  7. int main()   /*imprime el valor que devuelve leer()*/
  8. {
  9. char *letra;
  10. int i;
  11. letra=leer();
  12.  
  13. printf("\n");
  14.  
  15. while(*letra!='O') /*imprime hasta que *letra=O */
  16. {            
  17. putchar(*letra);
  18. letra++;
  19. }
  20. putchar('\n');
  21.  
  22. system("PAUSE");
  23. }
  24.  
  25. char* leer()    /*devuelve la ubicacion del primer caracter de formula[MAX]*/
  26. {
  27.        static char formula[MAX];
  28.        int i;
  29.        
  30.        for(i=0;i<MAX;i++)  /*lee valores hasta que i<MAX*/
  31.        formula[i]=getche();
  32.        
  33.        return &formula[0];
  34. }
  35.  

Citar
usas system sin tener en cuenta que tienes que tener las librerias stdlib
Me parece que esta usando el Dev-cpp...

Por ejemplo, este codigo funciona de lo mas bien sin incluir stdlib.h...
Y utiliza el comando system();
Código: Text
  1. #include <stdio.h>
  2. int main()
  3. {
  4.    system("pause");
  5. }
  6.  

2
C/C++ / Re: Array Bidemensional En Clase
« en: Martes 18 de Diciembre de 2007, 02:18 »
El array esta bien definido... A mi me funciona bien...
Pero no te olvides que los array empiezan en a[0],a[1],a[n]...
Código: Text
  1. int monedas[8][2]={{500,0,0},{200,0,0},{100,0,0},{50,0,0},{20,0,0},{10,0,0},{5,0,0},{2,0,0},{1,0,0}};
  2.  

3
C/C++ / Re: <dos.h>
« en: Lunes 10 de Diciembre de 2007, 05:04 »
Encontre mi error :P
Tenia que usar la libreria dos.h del turbo c en vez de la dos.h del dev cpp...

Pero ahora tengo otro problema...

Código: Text
  1.  
  2. #include &#60;stdio.h&#62;
  3. #include &#34;DOS.H&#34;
  4.  
  5.  
  6. void Modo13h(void)
  7. {
  8.         union REGS r;
  9.  
  10.         r.h.ah=0;
  11.         r.h.al=0x13;
  12.         int86(0x10, &r, &r);
  13. }
  14.  

Código: Text
  1.  
  2. /*  dos.h
  3.  
  4.   Defines structs, unions, macros, and functions for dealing
  5.   with MSDOS and the Intel iAPX86 microprocessor family.
  6.  
  7.   Copyright (c) Borland International 1987,1988
  8.   All Rights Reserved.
  9. */
  10. #if __STDC__
  11. #define _Cdecl
  12. #else
  13. #define _Cdecl  cdecl
  14. #endif
  15.  
  16. #if     !defined(__DOS_DEF_)
  17. #define __DOS_DEF_
  18.  
  19. /* Variables */
  20. extern  int    _Cdecl _8087;
  21. extern  int    _Cdecl _argc;
  22. extern  char        **_Cdecl _argv;
  23. extern  char        **_Cdecl  environ;
  24. extern  int    _Cdecl _doserrno;
  25. extern  unsigned  _Cdecl _heaplen;
  26. extern  unsigned char  _Cdecl _osmajor;
  27. extern  unsigned char  _Cdecl _osminor;
  28. extern  unsigned   _Cdecl _psp;
  29. extern  unsigned  _Cdecl _stklen;
  30. extern  unsigned   _Cdecl _version;
  31.  
  32. #define FA_RDONLY  0x01    /* Read only attribute */
  33. #define FA_HIDDEN  0x02    /* Hidden file */
  34. #define FA_SYSTEM  0x04    /* System file */
  35. #define FA_LABEL  0x08    /* Volume label */
  36. #define FA_DIREC  0x10    /* Directory */
  37. #define FA_ARCH    0x20    /* Archive */
  38.  
  39. #define NFDS  20      /* Maximum number of fds */
  40.  
  41. struct  fcb  {
  42.   char  fcb_drive;    /* 0 = default, 1 = A, 2 = B */
  43.   char  fcb_name[8];    /* File name */
  44.   char  fcb_ext[3];    /* File extension */
  45.   short  fcb_curblk;    /* Current block number */
  46.   short  fcb_recsize;    /* Logical record size in bytes */
  47.   long  fcb_filsize;    /* File size in bytes */
  48.   short  fcb_date;    /* Date file was last written */
  49.   char  fcb_resv[10];    /* Reserved for DOS */
  50.   char  fcb_currec;    /* Current record in block */
  51.   long  fcb_random;    /* Random record number */
  52. };
  53.  
  54. struct  xfcb  {
  55.   char    xfcb_flag;  /* Contains 0xff to indicate xfcb */
  56.   char    xfcb_resv[5];  /* Reserved for DOS */
  57.   char    xfcb_attr;  /* Search attribute */
  58.   struct  fcb  xfcb_fcb;  /* The standard fcb */
  59. };
  60.  
  61. struct  country {
  62.   int  co_date;
  63.   char  co_curr[5];
  64.   char  co_thsep[2];
  65.   char  co_desep[2];
  66.   char  co_dtsep[2];
  67.   char  co_tmsep[2];
  68.   char  co_currstyle;
  69.   char  co_digits;
  70.   char  co_time;
  71.   long  co_case;
  72.   char  co_dasep[2];
  73.   char  co_fill[10];
  74. };
  75.  
  76. struct  DOSERROR {
  77.   int  exterror;
  78.   char  class;
  79.   char  action;
  80.   char  locus;
  81. };
  82.  
  83. struct  dfree  {
  84.   unsigned df_avail;
  85.   unsigned df_total;
  86.   unsigned df_bsec;
  87.   unsigned df_sclus;
  88. };
  89.  
  90. struct  fatinfo {
  91.   char  fi_sclus;
  92.   char  fi_fatid;
  93.   int  fi_nclus;
  94.   int  fi_bysec;
  95. };
  96.  
  97. struct  devhdr  {
  98.   long    dh_next;  /* Next device pointer */
  99.   short    dh_attr;  /* Attributes */
  100.   unsigned short  dh_strat;  /* Driver strategy routine */
  101.   unsigned short  dh_inter;  /* Driver interrupt routine */
  102.   char    dh_name[8];  /* Device name */
  103. };
  104.  
  105. struct  time  {
  106.   unsigned char  ti_min;    /* Minutes */
  107.   unsigned char  ti_hour;  /* Hours */
  108.   unsigned char  ti_hund;  /* Hundredths of seconds */
  109.   unsigned char  ti_sec;    /* Seconds */
  110. };
  111.  
  112. struct  date  {
  113.   int    da_year;  /* Year - 1980 */
  114.   char    da_day;    /* Day of the month */
  115.   char    da_mon;    /* Month (1 = Jan) */
  116. };
  117.  
  118. struct WORDREGS {
  119.   unsigned int  ax, bx, cx, dx, si, di, cflag, flags;
  120. };
  121.  
  122. struct BYTEREGS {
  123.   unsigned char  al, ah, bl, bh, cl, ch, dl, dh;
  124. };
  125.  
  126. union  REGS  {
  127.   struct  WORDREGS x;
  128.   struct  BYTEREGS h;
  129. };
  130.  
  131. struct  SREGS  {
  132.   unsigned int  es;
  133.   unsigned int  cs;
  134.   unsigned int  ss;
  135.   unsigned int  ds;
  136. };
  137.  
  138. struct  REGPACK {
  139.   unsigned  r_ax, r_bx, r_cx, r_dx;
  140.   unsigned  r_bp, r_si, r_di, r_ds, r_es, r_flags;
  141. };
  142.  
  143. #define FP_OFF(fp)  ((unsigned)(fp))
  144. #define FP_SEG(fp)  ((unsigned)((unsigned long)(fp) &#62;&#62; 16))
  145.  
  146.  
  147. typedef struct {
  148.   char  drive;    /* do not change  */
  149.   char  pattern [13];  /*  these fields,  */
  150.   char  reserved [7];  /*   Microsoft reserved */
  151.   char  attrib;
  152.   short  time;
  153.   short  date;
  154.   long  size;
  155.   char  nameZ [13];  /* result of the search, asciiz */
  156. }  dosSearchInfo;  /* used with DOS functions 4E, 4F  */
  157.  
  158.  
  159. int   _Cdecl absread  (int drive, int nsects, int lsect, void *buffer);
  160. int   _Cdecl abswrite(int drive, int nsects, int lsect, void *buffer);
  161. int   _Cdecl allocmem(unsigned size, unsigned *segp);
  162. int   _Cdecl bdos  (int dosfun, unsigned dosdx, unsigned dosal);
  163. int   _Cdecl bdosptr  (int dosfun, void *argument, unsigned dosal);
  164. struct  country *_Cdecl country  (int xcode, struct country *cp);
  165. void   _Cdecl ctrlbrk  (int _Cdecl (*handler)(void));
  166. void   _Cdecl delay  (unsigned milliseconds);
  167. void   _Cdecl disable  (void);
  168. int   _Cdecl dosexterr  (struct DOSERROR *eblkp);
  169. long   _Cdecl dostounix  (struct date *d, struct time *t);
  170. void          __emit__();
  171. void   _Cdecl enable  (void);
  172. int   _Cdecl freemem  (unsigned segx);
  173. int   _Cdecl getcbrk  (void);
  174. void   _Cdecl getdate  (struct date *datep);
  175. void   _Cdecl getdfree(unsigned char drive, struct dfree *dtable);
  176. void   _Cdecl getfat  (unsigned char drive, struct fatinfo *dtable);
  177. void   _Cdecl getfatd  (struct fatinfo *dtable);
  178. unsigned _Cdecl getpsp  (void);
  179. int   _Cdecl getswitchar  (void);
  180. void   _Cdecl gettime  (struct time *timep);
  181. void  interrupt   (* _Cdecl getvect(int interruptno)) ();
  182. int   _Cdecl getverify  (void);
  183. void   _Cdecl harderr  (int _Cdecl (*handler)());
  184. void   _Cdecl hardresume  (int axret);
  185. void   _Cdecl hardretn(int retn);
  186. int   _Cdecl inport  (int portid);
  187. unsigned char  _Cdecl inportb(int portid);
  188. int   _Cdecl int86  (int intno, union REGS *inregs, union REGS *outregs);
  189. int   _Cdecl int86x  (int intno, union REGS *inregs, union REGS *outregs,
  190.        struct SREGS *segregs);
  191. int   _Cdecl intdos  (union REGS *inregs, union REGS *outregs);
  192. int   _Cdecl intdosx  (union REGS *inregs, union REGS *outregs,
  193.        struct SREGS *segregs);
  194. void   _Cdecl intr  (int intno, struct REGPACK *preg);
  195. void   _Cdecl keep  (unsigned char status, unsigned size);
  196. void    _Cdecl nosound  (void);
  197. void   _Cdecl outport  (int portid, int value);
  198. void   _Cdecl outportb(int portid, unsigned char value);
  199. char  *_Cdecl parsfnm  (const char *cmdline, struct fcb *fcb, int opt);
  200. int   _Cdecl peek  (unsigned segment, unsigned offset);
  201. char   _Cdecl peekb  (unsigned segment, unsigned offset);
  202. void   _Cdecl poke  (unsigned segment, unsigned offset, int value);
  203. void   _Cdecl pokeb  (unsigned segment, unsigned offset, char value);
  204. int   _Cdecl randbrd  (struct fcb *fcb, int rcnt);
  205. int   _Cdecl randbwr  (struct fcb *fcb, int rcnt);
  206. void   _Cdecl segread  (struct SREGS *segp);
  207. int   _Cdecl setblock(unsigned segx, unsigned newsize);
  208. int   _Cdecl setcbrk  (int cbrkvalue);
  209. void   _Cdecl setdate  (struct date *datep);
  210. void   _Cdecl setswitchar  (char ch);
  211. void   _Cdecl settime  (struct time *timep);
  212. void   _Cdecl setvect  (int interruptno, void interrupt (*isr) ());
  213. void   _Cdecl setverify  (int value);
  214. void   _Cdecl sleep  (unsigned seconds);
  215. void    _Cdecl sound  (unsigned frequency);
  216. void   _Cdecl unixtodos  (long time, struct date *d, struct time *t);
  217. int   _Cdecl  unlink  (const char *path);
  218.  
  219.   /* These are in-line functions.  These prototypes just clean up
  220.      some syntax checks and code generation.
  221.    */
  222.  
  223. void  _Cdecl  __cli__    (void);
  224. void  _Cdecl  __sti__    (void);
  225. unsigned char _Cdecl __inportb__(int portid);
  226. void  _Cdecl  __outportb__  (int portid, unsigned char value);
  227. void  _Cdecl  __int__    (int interruptnum);
  228.  
  229. #define disable()  __cli__()    /* Clear interrupt flag */
  230. #define enable()  __sti__()    /* Set interrupt flag */
  231. #define inportb(portid) __inportb__(portid)  /* Byte IN instruction */
  232. #define outportb(portid, v) __outportb__(portid,v)/* Byte OUT instruction */
  233. #define geninterrupt(i) __int__(i)    /* Interrupt instruction */
  234.  
  235. /* some other compilers use inp, outp for inportb, outportb */
  236. #define inp(portid)  inportb(portid)
  237. #define outp(portid,v)  outportb(portid,v)
  238.  
  239. #if !__STDC__
  240. char far *cdecl getdta(void);
  241. void    cdecl setdta(char far *dta);
  242.  
  243. #define MK_FP(seg,ofs)  ((void far *) &#092;
  244.          (((unsigned long)(seg) &#60;&#60; 16) | (unsigned)(ofs)))
  245.  
  246. #define poke(a,b,c)  (*((int  far*)MK_FP((a),(b))) = (int)(c))
  247. #define pokeb(a,b,c)  (*((char far*)MK_FP((a),(b))) = (char)(c))
  248. #define peek(a,b)  (*((int  far*)MK_FP((a),(b))))
  249. #define peekb(a,b)  (*((char far*)MK_FP((a),(b))))
  250. #endif
  251.  
  252. #endif
  253. 
  254.  

Citar
2 C:\Dev-Cpp\DBM\SinNombre1.c In file included from SinNombre1.c
180 C:\Dev-Cpp\DBM\DOS.H syntax error before '*' token
211 C:\Dev-Cpp\DBM\DOS.H syntax error before '*' token
211 C:\Dev-Cpp\DBM\DOS.H `interrupt' declared as function returning a function
252 C:\Dev-Cpp\DBM\DOS.H stray '\26' in program
2 C:\Dev-Cpp\DBM\SinNombre1.c In file included from SinNombre1.c
252:2 C:\Dev-Cpp\DBM\DOS.H [Warning] no newline at end of file
 C:\Dev-Cpp\DBM\Makefile.win [Build Error]  [SinNombre1.o] Error 1

4
C/C++ / <dos.h>
« en: Lunes 10 de Diciembre de 2007, 04:51 »
Buenas... soy nuevo en esto asi que voy a nesecitar una manito con este codigo...
estoy tratando de aprender un poco de C y me encontre con un problema cuando quiero compilar el siguiente codigo:

Código: Text
  1.  
  2. #include &#60;stdio.h&#62;
  3. #include &#60;dos.h&#62;
  4.  
  5. void Modo13h(void)
  6. {
  7.         union REGS r;
  8.  
  9.         r.h.ah=0;
  10.         r.h.al=0x13;
  11.         int86(0x10, &r, &r);
  12. }
  13.  
  14.  

me tira el siguiente error cuando quiero compilar:
Citar
C:\Dev-Cpp\DBM\SinNombre1.c storage size of 'r' isn't known

Por lo que tengo entendido union REGS esta definido en <dos.h>, y no entiendo por que me tira este error....

5
C/C++ / Re: Como Hacer Un Cajero
« en: Miércoles 21 de Noviembre de 2007, 01:37 »
Citar
Ok Gracias LG me podrias colaborar con lo del paso por referencia es decir???

En vez de pasarle los parametros por valor, le pasas un puntero a la direccion donde se encuentran los valores...
Parametros por Valor y por referencia

Trata definiendo las variables como externas a las funciones, por ahi con eso funciona.

6
C/C++ / Re: Modificar Funcion Scanf
« en: Miércoles 21 de Noviembre de 2007, 01:19 »
Fijate si es algo asi lo que nesecitas

Código: Text
  1. #include &#60;stdio.h&#62;
  2. #define Max 50
  3.  
  4. int main()
  5. {
  6. char numero[Max];
  7. int i,p;
  8.  
  9.  
  10. for(i=0;i&#60;Max;i++)    /*lee numeros hasta que numero[i]='&#092;t'*/
  11. {
  12.  numero[i]=getche();
  13.  
  14.  if (numero[i]=='&#092;t')
  15.  {
  16.  printf(&#34;&#092;n&#34;);
  17.  break;
  18.  }
  19.  
  20.  if(numero[i]&#60;(0+48)||numero[i]&#62;(9+48))
  21.  {
  22.  printf(&#34;&#092;n&#34;);
  23.  break;
  24.  }
  25. }                            
  26.                     /*imprime numero[p] hasta que p llega al final del numero*/
  27. for(p=0;p&#60;i;p++)            
  28. printf(&#34;%d&#092;n&#34;,numero[p]-48);
  29. }
  30.  

Lee numero por numero hasta que se aprieta tab...
Seguro tiene sus errores, pero espero que te sirva....

Páginas: [1]