elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: [1] 2 3 4
1  Sistemas Operativos / Windows / Re: Instalación de emacs+auctex en windows en: 24 Junio 2012, 08:27 am
Bueno respecto a la instlacion de auctex en emacs sigo sin solución.

2  Sistemas Operativos / Windows / Re: Instalación de emacs+auctex en windows en: 20 Junio 2012, 07:14 am
A tal vez se pregunten por que me mortifico tratando de instalar emacs en windows. Bueno tal vez sea terquedad, masoquismo, ganas de hacer que algo funcione aun contra viento y marea o simplemente sea una combinación de las anteriores.

 :xD
3  Sistemas Operativos / Windows / Instalación de emacs+auctex en windows en: 20 Junio 2012, 07:12 am
Bueno ante todo muy buenas noches y desde ya agradezco al lector por tomarse la molestia de leer estas lineas.

Bien e intentado instlar "emacs + auctex" en "windos xp 32bits" para editar en latex, obviamente para obtener la muy preciada función de "preview latex". ::)

E seguido en resumen, el siguiente manual va resumen de instalación.

http://web.ing.puc.cl/~mtorrest/downloads/latex/tutorial_instalacion_2009.txt

e aquí un copypaste para ahorra tiempo (total es solo texto)

---------------------------
Citar

Intalacion de LaTeX en Windows
------------------------------

La instalación básica involucra solo el paso 1, pero para tener un sistema completo de producción es conveniente completar los pasos opcionales 2, 3, 4.  Una explicación muy clara se encuentra en: http://www.ssc.wisc.edu/~dvanness/howto.htm, aunque ciertos aspectos pueden haber cambiado o no ser necesarios dado que esta explicación se refiere a la instalación en Windows 98/NT de versiones previas de MikTeX (LaTeX para Windows) que no tenían instaladores tan amigables como las versiones actuales.  El pasos 5 (instalación de corrector ortográfico) también es opcional.

1. Descargar el instalador de la página web www.miktex.org.
http://miktex.org/2.7/Setup.aspx (o última versión)
http://sourceforge.net/projects/miktex/

2. Instale el procesador de PostScript Ghostscript y GSView (GhostView):
http://pages.cs.wisc.edu/~ghost/gsview/index.htm

3. Instalación de un editor de texto para desarrollo integrado.
Uno de los más configurables, flexibles y ampliamente utilizados por personas competentes en el uso de computadores es el GNU Emacs.  La versión para Windows se puede encuentrar en:

http://ftp://ftp.gnu.org/gnu/emacs/windows/

Existe una versión un poco más gráfica llamada XEmacs, pero es más conveniente aprender a usar la versión sin botones ni componentes gráficos porque es más rápida.

Instalación de Emacs:
  - Descargue Emacs versión 21.3-22.2:
  - Copie la carpeta emacs-xx.x-bin-i386 a C:\emacs
  - Ejecute C:\emacs\bin\addpm.exe

4. Si instaló Emacs, instale AUC-TeX, que es un componente para añadir capacidades avanzadas de edición de documentos LaTeX en Emacs.  AUC-TeX puede obtenerse en:

http://www.gnu.org/software/auctex/download-for-windows.html

Instalación AucTex:
  - Copie los contenidos de auctex-xx.xx-xxx.x-msw.zip a la carpeta C:\emacs o
    donde haya instalado Emacs verificando que el contenido de la carpeta "site-lisp"
    de AucTeX sea copiado a la carpeta "site-lisp" de Emacs.
  - Por defecto AucTeX (11.85-e22.1-msw) viene configurado para invocar al
    visor de archivos "xdvi" (original de sistemas tipo Unix).  Para poder
    activar visualizar archivos DVI desde Emacs en Windows, se debe cambiar la
    configuración de Emacs para que invoque al programa Yap de MikTeX en vez de xdvi.
    Para esto existen las siguientes alternativas:

    Metodo 1: Modificación a través del Menú de Configuración
    En el menu de Emacs LaTeX/Customize AUCTeX/Browse Options/TeX Command/Tex Command List/
           En la sección "View":
           Command: Reemplazar "%V" por "yap %d"
           How: Reemplazar "TeX-run-discard" por "TeX-run-command"
           Prompt: Reemplazar "on (non-nil)" por "off (nil)"
      
           Similarmente para generar archivos Poscript, en la sección "Print":
           Command: Reemplazar "%p" por "dvips %d -o %f"
           How: Debe indicar "TeX-run-command"
           Prompt: Reemplazar "on (non-nil)" por "off (nil)"
     
     Las siguientes modificaciones recomendadas en http://www.emacswiki.org/cgi-bin/wiki/AUCTeX
     NO serían necesarias:
     "Usando M-x (Esc-x) modifique la variable "TeX-output-view-style" reemplazando todas las
      veces que aparece "xdvi" por "yap" para archivos con extensión dvi."
     Note que la opción "TeX-output-view-style" también puede accederse a través del menu
     de Emacs LaTeX/Customize AUCTeX/Browse Options/TeX Command/TeX Output View Style.
     
     Método 2: Modificación manual del archivo de configuración .emacs
     *** Use este método con cuidado de no eliminar o alterar otras partes de los         ***
     *** archivos de configuración, de lo contrario Emacs puede funcionar incorrectamente ***
     
     Agregue a su archivo de configuración .emacs las siguientes líneas:

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(TeX-command-list (quote (
("TeX" "%(PDF)%(tex) %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (plain-tex-mode texinfo-mode ams-tex-mode) :help "Run plain TeX")
("LaTeX" "%`%l%(mode)%' %t" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX")
("Makeinfo" "makeinfo %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with Info output")
("Makeinfo HTML" "makeinfo --html %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with HTML output")
("AmSTeX" "%(PDF)amstex %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX")
("ConTeXt" "texexec --once --texutil %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt once")
("ConTeXt Full" "texexec %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt until completion")
("BibTeX" "bibtex %s" TeX-run-BibTeX nil t :help "Run BibTeX")
("View" "yap %d" TeX-run-command nil t :help "Run Viewer")
("Print" "dvips %d -o %f" TeX-run-command nil t :help "Print the file")
("Queue" "%q" TeX-run-background nil t :help "View the printer queue" :visible TeX-queue-command)
("File" "%(o?)dvips %d -o %f " TeX-run-command t t :help "Generate PostScript file")
("Index" "makeindex %s" TeX-run-command nil t :help "Create index file")
("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help "Check LaTeX file for correctness")
("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil t :help "Spell-check the document")
("Clean" "TeX-clean" TeX-run-function nil t :help "Delete generated intermediate files")
("Clean All" "(TeX-clean t)" TeX-run-function nil t :help "Delete generated intermediate and output files")
("Other" "" TeX-run-command t t :help "Run an arbitrary command"))))
 '(inhibit-startup-screen t))
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 )


     Método 3: Modificación manual de los archivos de configuración .emacs y tex-site.el
     *** Use este método con cuidado de no eliminar o alterar otras partes de los         ***
     *** archivos de configuración, de lo contrario Emacs puede funcionar incorrectamente ***     
     *** Este método no es recomendado para las versiones Emacs 22 o posterior con        ***
     *** con AucTeX 11.xx o posterior, aunque también funciona                            ***

     Incluya las siguientes líneas en el archivo .emacs después del punto donde se carga AucTeX:

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(TeX-output-view-style (quote (("^dvi$" ("^landscape$" "^pstricks$\\|^pst-\\|^psfrag$") "%(o?)dvips -t landscape %d -o && gv %f") ("^dvi$" "^pstricks$\\|^pst-\\|^psfrag$" "%(o?)dvips %d -o && gv %f") ("^dvi$" ("^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "^landscape$") "%(o?)yap %dS -paper a4r -s 0 %d") ("^dvi$" "^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "%(o?)yap %dS -paper a4 %d") ("^dvi$" ("^a5\\(?:comb\\|paper\\)$" "^landscape$") "%(o?)yap %dS -paper a5r -s 0 %d") ("^dvi$" "^a5\\(?:comb\\|paper\\)$" "%(o?)yap %dS -paper a5 %d") ("^dvi$" "^b5paper$" "%(o?)yap %dS -paper b5 %d") ("^dvi$" "^letterpaper$" "%(o?)yap %dS -paper us %d") ("^dvi$" "^legalpaper$" "%(o?)yap %dS -paper legal %d") ("^dvi$" "^executivepaper$" "%(o?)yap %dS -paper 7.25x10.5in %d") ("^dvi$" "." "%(o?)yap %dS %d") ("^pdf$" "." "xpdf -remote %s -raise %o %(outpage)") ("^html?$" "." "netscape %o"))))
 '(TeX-view-style (quote (("^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "%(o?)yap %dS -paper a4 %d") ("^a5\\(?:comb\\|paper\\)$" "%(o?)yap %dS -paper a5 %d") ("^b5paper$" "%(o?)yap %dS -paper b5 %d") ("^letterpaper$" "%(o?)yap %dS -paper us %d") ("^legalpaper$" "%(o?)yap %dS -paper legal %d") ("^executivepaper$" "%(o?)yap %dS -paper 7.25x10.5in %d") ("^landscape$" "%(o?)yap %dS -paper a4r -s 0 %d") ("." "%(o?)yap %dS %d"))))

     Incluya las siguientes líneas en el archivo tex-site.el antes del punto donde empiezan
     los auto-loads.el [--- ATENCION: Estas líneas modificaran el menú de Commandos
     que se despliega en Emacs para archivos .tex---]

;; The 'TeX-command-list' (pull-down menu at the top of emacs appearing when
;; emacs is in TeX major mode) consists of the options below.
;; Invoking 'C-c C-c' in a TeX major mode will run the "LaTeX" command
;; of the command list. (After compiling, errors can be retrieved by
;; invoking 'C-c `' (Control-c accent-gr\`ave).
;; If no errors occur and if all cross-references are known, a second
;; 'C-c C-c' will run the 'View' command of the list.
(defvar TeX-command-list
  (list(list "LaTeX" "latex \\nonstopmode\\input{%t}"
                'TeX-run-LaTeX nil t)
       (list "View" "yap %d"
              'TeX-run-command nil t)
       (list "dviPS" "dvips %d -o %f"
              'TeX-run-command nil t)
       (list "Ghostview" "c:\\GStools\\gsview\\gsview32.exe %f"
              'TeX-run-command nil t)
       (list "BibTeX" "bibtex %s" 'TeX-run-BibTeX nil nil)
       (list "Index" "makeindex %s" 'TeX-run-command nil t)
       (list "Check" "lacheck %s" 'TeX-run-compile nil t)
       (list "Other" "" 'TeX-run-command t t)))

(setq TeX-default-mode 'LaTeX-mode)

     Método 4: Obtenga el archivo .emacs en http://www.ing.puc.cl/~mtorrest/downloads/
     que incluye tanto las modificaciones sugeridas en el método 2 para las variables
     del grupo "TeX-command-list" como las modificaciones a las variables
     "TeX-output-view-style" sugeridas en la primera parte del método 3.
     Notar que este enfoque no altera el archivo tex-site.el, por lo tanto debería ser
     el más seguro y completo.  Sin embargo, si se desea modificar el menú de Emacs
     bajo LaTeX, deberán implementarse instrucciones similares a las de la segunda parte
     del método 3.

     - Copie el archivo .emacs al directorio C:\emacs o donde instaló Emacs.
     - Asegurese que las siguientes líneas del archivo .emacs contengan las rutas apropiadas,
       sino modifíquelas:
(add-to-list 'load-path "c:/emacs/lisp/auctex/")
(add-to-list 'Info-default-directory-list "c:/emacs/lisp/auctex/doc/")



5. Instale un corrector ortográfico para Emacs como Ispell o Aspell.

Para la instlación de Aspell para Windows siga los pasos indicados abajo o en el link:

[http://aspell.net/man-html/Using-Aspell-with-other-Applications.html]

3.3.1 With Emacs and XEmacs

The easiest way to use Aspell with Emacs or XEmacs is to add this line:

(setq-default ispell-program-name "aspell")

to the end of your .emacs file.

For some reason version 3.0 of ispell.el (the lisp program that (x)emacs uses) wants to reverse the suggestion list. To fix this add this line:

(setq-default ispell-extra-args '("--reverse"))

after the previous line in your .emacs file and it should solve the problem.

Ispell.el, version 3.1 (December 1, 1998) and better, has the list reversing problem fixed. You can find it at http://www.kdstevens.com/~stevens/ispell-page.html.

6. Para hacer que la previsualización de LaTeX funcione bajo Emacs 22.xx o posterior
   además de instalar AUCTeX debe agregar las siguientes líneas a su archivo de
   de configuración .emacs:

(load "preview-latex.el" nil t t)
(setq preview-image-type 'pnm)

   Deberá además tener instalado Ghostview (ver paso 2) y agregar a la variable de entorno
   del sistema PATH la ruta de la ubicación del GhostView "gswin32c.exe", típicamente:
   C:\gs\gs8.14\bin\



E seguido el método 1 con buenos resultados la primera vez pero tras una reinstalacion de todo el sistema ahora la funcionar  de preview latex me ha dejado de funcionar.  :o

A la salidad del error log de "preview latex" me sale:


Citar

"GSWIN32C.EXE" "-dOutputFile=(_region_.prv/tmp2896JnV/pr1-1.pbm)" "-q" "-dSAFER" "-dNOPAUSE" "-DNOPLATFONTS" "-dPrinted" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4" "-sDEVICE=pnmraw" "-r61.3907x61.2726"
GS>{DELAYSAFER{.setsafe}if}stopped pop/.preview-BP currentpagedevice/BeginPage get dup null eq{pop{pop}bind}if def<</BeginPage{currentpagedevice/PageSize get dup 0 get 1 ne exch 1 get 1 ne or{.preview-BP gsave 0.752941 0.752941 0.752941 setrgbcolor clippath fill grestore }{pop}ifelse}bind/PageSize[1 1]>>setpagedevice/preview-do{[count 3 roll save]3 1 roll dup length 0 eq{pop}{setpagedevice}{ifelse .runandhide}stopped{handleerror quit}if aload pop restore}bind def [(_region_.prv/tmp2896JnV/preview.ps)(r)file]aload exch dup 0 setfileposition 58980()/SubFileDecode filter cvx .runandhide aload pop dup dup 59134 setfileposition 371()/SubFileDecode filter cvx<<>>preview-do
Error: /invalidfileaccess in --file--
Operand stack:
   --nostringval--   (_region_.prv/tmp2896JnV/preview.ps)   (r)
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   %loop_continue   --nostringval--   --nostringval--   false   1   %stopped_push   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:1173/1684(ro)(G)--   --dict:0/20(G)--   --dict:79/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
Current file position is 509


No se si sean de ayuda estas ultimas lineas, pero la verdad no caso ni j de lo que aquí se dice. Salvo "Last OS error: No such file or directory" pero de que archivo y de que directorio me habla?  :huh:

Bueno desde ya agradezco el tiempo dedicado a las respuestas sobre este problema.  ;D

Saludos.

4  Programación / Programación C/C++ / Programa que guarda una ip entrada por linea de comando en una variable de 32b en: 1 Octubre 2011, 02:04 am
Bueno eso esto es un Programa que pasa una ip por linea de comando y la manda a una variable de 32 bit.

Sin mas aquí el código.



Código
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. int atonum (int numero);
  6.  
  7.  
  8. main(int argc, char *argv[])
  9. {
  10. unsigned int a=0;
  11. unsigned int b=0;
  12. unsigned int c=0;
  13. unsigned int d=0;
  14. int cont=0;
  15. int tri=0;
  16. int i=0;
  17. long int ipn;
  18. char *s;
  19.  
  20. if(argc!=2)
  21. {
  22. printf("Error en la introduccion de la direccion ip\n");
  23. return(0);
  24. }
  25.  
  26.  
  27. if (strlen(argv[1])>15) // Me fijo que el string de entrada no posea
  28.                        //mas de 15 caracteres, el maximo posible 3
  29.                        //puntos mas 12 numeros 15 caracteres total
  30. {
  31. printf ("no es una ip valida");
  32. return (0);
  33. }
  34.  
  35. // me fijo que todos los craracteres que componene el string sean validos
  36. //para una direccion ip
  37.  
  38. for (i=0;i<(strlen(argv[1]));i++)
  39. {
  40.  
  41. if (atonum(argv[1][i])==-1 )
  42. {
  43. printf("\t el elemento \t %d \t es  \t %c ERROR ",i,argv[1][i]);
  44. printf("\n \t este elemento es invalido para una direccion ip \n");
  45. return(0);
  46. }
  47. if (atonum(argv[1][i])!=-1 )
  48. {
  49. printf("\t el elemento \t %d \t es  \t %c ok \n  ",i,argv[1][i]);
  50. }
  51.  
  52. }
  53.  
  54. i=0;
  55.  
  56. //me fijo que la cantidad de campos sea 4
  57.  
  58. for (i=0;i<(strlen(argv[1]));i++)
  59. {
  60. if (atonum(argv[1][i])==46 )
  61. {
  62. cont++;
  63. }
  64. if (cont>3 )
  65. {
  66. printf ("\n \n \t Error en el formato de la ip \n \n \t demasiado campos \n");
  67.  
  68. return (0);
  69. }
  70. }
  71.  
  72. i=0;
  73. cont=0;
  74.  
  75. // me fijo que todos los campo no posean mas de 3 numeros
  76.  
  77. for (i=0;i<(strlen(argv[1]));i++)
  78. {
  79. if (atonum(argv[1][i])!=46)
  80. {
  81. if (cont>=3)
  82.       {
  83.       printf("error en el formato de la ip uno de los campos esta exedido");
  84.       }
  85. cont++;
  86. }
  87.  
  88. if (atonum(argv[1][i])==46)
  89. {
  90. cont=0;
  91. }
  92.  
  93.  
  94. }
  95.  
  96.  
  97.  
  98. sscanf(argv[1],"%u.%u.%u.%u",&a,&b,&c,&d);
  99.  
  100.  
  101. printf ("\n\t %u.%u.%u.%u \n",a,b,c,d);
  102. printf ("\n\t en exadecimal %x.%x.%x.%x \n",a,b,c,d);
  103.  
  104.  
  105. if (a>256 || b>256 || c>256 || d>256  )
  106.  
  107. {
  108. printf ("\n \t Error uno de los campos es mayor a 256 \n");
  109. return(0);
  110. }
  111.  
  112. printf ("\n\t la direccion ip sera pasada a una variable de 32 bits ipn \n");
  113.  
  114. ipn=(a<<24)+(b<<16)+(c<<8)+d;
  115.  
  116. printf ("\n\t la direccion ip ahora esta en ipn %x \n",ipn);
  117.  
  118.  
  119.  
  120.  
  121. }
  122.  
  123.  
  124. int atonum (int numero)
  125.                        {
  126.                         int n;
  127.                         if ( (numero-48)>=0 && (numero-48)<=9) {n=numero-48;}
  128.                         if ( numero==46) {n=46;} // si el caracter es un punto se retorna el mismo valor
  129.                         if ((numero-48)<0 && (numero-48)>9) {n=-1;}
  130.                         return (n);
  131.                         }
  132.  
  133.  
  134.  



Espero criticas, opiniones, correcciones (que ya estoy viendo varias para hacer pero bueno).

Desde ya muchas gracias por su tiempo y colaboración.

EI: juntando mensajes.

Por cierto me olvidaba, compilado en código c en bloodshed  dev c++ 3.99.  ::)
5  Programación / Programación C/C++ / Re: Ejemplos de funciones en c en: 28 Septiembre 2011, 21:09 pm
Genial, muchas gracias.
6  Programación / Programación C/C++ / Re: Ejemplos de funciones en c en: 27 Septiembre 2011, 21:12 pm
Al parecer acá se usa el numero como tal

Código
  1.  
  2.  
  3. int esnum(char numero)
  4.  
  5. {
  6.   if ((numero-48) >= 0 && (numero-48)<=9 ) return 1;
  7.   return -1;
  8. }
  9.  
  10.  

Mientras que acá se usa el carácter y se lo compara como carácter.

Código
  1.  
  2. int esnum(char numero)
  3. {
  4.   return numero >= '0' && numero <= '9';
  5. }
  6.  
  7.  

Por cierto; esta forma de utilizar el return no la conocía y la verdad no lo entiendo.  :huh:



7  Programación / Programación C/C++ / Re: Ejemplos de funciones en c en: 25 Septiembre 2011, 09:41 am
Vean que la función esnum tiene varios errores; aquí la corrección funcional.

Función esnum compilada en lenguaje c con Dev c++

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int esnum (char numero);
  5.  
  6. void main(void)
  7.  
  8. {
  9. int numero, varaux;
  10.  
  11. printf("ingrese un numero del 0 al 9 \n \n \t \t");
  12. scanf("%c",&numero);
  13.  
  14. varaux=esnum(numero);
  15.  
  16. printf ("La funcion esnum dio %d", varaux);
  17.  
  18.     return (0);
  19. }
  20.  
  21. int esnum (char numero)
  22. {
  23.  
  24.   if ( (numero-48)>=0 && (numero-48)<=9  )
  25.  
  26.   {return (1);}
  27.  
  28.   else {return(-1);}
  29.  
  30. }
  31.  
  32.  
  33.  
8  Programación / Programación C/C++ / Re: Ejemplos de funciones en c en: 22 Septiembre 2011, 04:35 am
Gracias. Y desde ahora usare
Código:
 code 
ya que queda mucho mas legible.
9  Programación / Programación C/C++ / Ejemplos de funciones en c en: 18 Septiembre 2011, 18:35 pm
Bueno de un ejercicio de la cátedra terminaron saliendo las siguientes funciones en c, son bastante simples pero de todas maneras las comparto, espero criticas y opiniones, o sea cualquier aporte u ocurrencia que tengan.


Bueno sin dar mas lata e aquí los códigos.


ASCII to number      

atonum.cpp

Código
  1.  
  2. #include <stdio.h>
  3.  
  4. int atonum (int numero);
  5.  
  6. void main(void)
  7. {
  8.  
  9. char c;
  10. int numero;
  11.  
  12. printf("\n \t \t ingrese un numero o caracter \n \n \n \t \t");
  13. scanf("%c",&c);
  14.  
  15. printf("\n \t \t ingreso el numero o caracter %c que en ASCII es %d  \n \n \t \t",c,c);
  16.  
  17. numero=atonum(c);
  18.  
  19. if (numero!=-1)
  20. {
  21. printf("ahora el numero  %c lo pasamos a entero en la variable numero  \n \n \t \t",c);
  22. printf("la varible numero contiene el numero %d \n \n \t \t",numero);
  23. }
  24.  
  25. if (numero==-1) {printf ("se ingreso un caracter \n \n \t \t");}
  26.  
  27.  
  28. return (0);
  29.  
  30. }
  31.  
  32. int atonum (int numero)
  33. {
  34.   int n;
  35.   if ( (numero-48)>=0 && (numero-48)<=9  ) {n=numero-48;}
  36.   if ((numero-48)<0 && (numero-48)>9) {n=-1;}
  37.   return (n);
  38. }


potencia.cpp

Código
  1.  
  2. #include <stdio.h>
  3.  
  4.  
  5.  
  6. int pot (int base, int exp);
  7.  
  8.  
  9. void main(void)
  10. {
  11.  
  12. int p,exp,base;
  13.  
  14.  
  15. printf("ingrese la base \n \n \t \t");
  16.  
  17. scanf("%d",&base);
  18.  
  19. printf("ingrese el exponenete \n \n \t \t");
  20.  
  21. scanf("%d",&exp);
  22.  
  23. p=pot(base,exp);
  24.  
  25. printf ("el numero %d elevado a la %d es %d \n \n \t \t",base,exp,p);
  26.  
  27.  
  28.  
  29.  return (0);
  30.  
  31.  
  32.  
  33. }
  34.  
  35. int pot (int base, int exp)
  36. {
  37.   int p=1;
  38.  
  39.   if (exp==0){p=1;}
  40.  
  41.   while (exp>0)
  42.   {
  43.   p*=base;
  44.   exp=exp-1;
  45.   }
  46.  
  47.   printf("\n \n \t \t %d \n \n \n ",p);
  48.   return (p);
  49.  
  50.  
  51.  
  52. }
  53.  

Otra forma de hacer la potencia de manera recursiva (Cortesía de rir3760)

Código
  1.  
  2. #include <stdio.h>
  3.  
  4.  
  5.  
  6. int pot (int base, int exp);
  7.  
  8.  
  9. void main(void)
  10. {
  11.  
  12. int p,exp,base;
  13.  
  14.  
  15. printf("ingrese la base \n \n \t \t");
  16.  
  17. scanf("%d",&base);
  18.  
  19. printf("ingrese el exponenete \n \n \t \t");
  20.  
  21. scanf("%d",&exp);
  22.  
  23. p=pot(base,exp);
  24.  
  25. printf ("el numero %d elevado a la %d es %d \n \n \t \t",base,exp,p);
  26.  
  27.  
  28.  
  29.  return (0);
  30.  
  31.  
  32.  
  33. }
  34.  
  35. int pot(int base, int exp)
  36. {
  37.   if (exp > 0)
  38.   return base * pot(base, exp - 1);
  39.  
  40.   else
  41.   return 1;
  42. }
  43.  
  44.  
  45.  
  46.  


Una función para saber si un numero entrado como caracter es numero u otra cosa.

A esta le puse esnum.cpp


Código
  1.  
  2.  
  3. #include <stdio.h>
  4.  
  5. int esnum (int numero);
  6.  
  7. void main(void)
  8.  
  9. {
  10. int numero;
  11.  
  12. printf("ingrese un numero del 0 al 9 \n \n \t \t");
  13. scanf("%c",&numero);
  14.  
  15. printf ("La funcion esnum dio %d", esnum(numero));
  16.  
  17.     return (0);
  18. }
  19.  
  20. int esnum (int numero)
  21. {
  22.  
  23.   int r;
  24.  
  25.   if (0<=(numero-48)<=9)
  26.   r=1;
  27.   r=-1;
  28.  
  29.   return (r);
  30.  
  31. }
  32.  
  33.  
  34.  
  35.  


Bueno saludos a todos y desde ya gracias, que esto me salio con la ayuda del foro.

Por cierto la resolución de funciones recursivas es un dolor de ....cabeza.  

Bueno saludos y suerte.
10  Programación / Programación C/C++ / Re: Problemas con una funcion en c en: 18 Septiembre 2011, 18:19 pm
Solucionado.

Si el c lo tenia flojo.

 Desde ya muchas gracias.


Bueno aca como quedaron las funciones. Las hice por separado.

http://foro.elhacker.net/programacion_cc/ejemplos_de_funciones_en_c-t339386.0.html
Páginas: [1] 2 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines