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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: [1] 2
1  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.

2  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.  ::)
3  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.
4  Programación / Programación C/C++ / Problemas con una funcion en c en: 18 Septiembre 2011, 04:06 am
Bueno, la hago cortita.

Estoy probando 3 funciones propias muy simples en c el programa es este.

pot o sea potencia de un numero usando recursividad

atonum de caracter ascii a numero

esnum o sea a ver si el carácter introducido den ascii es un numero



#include <stdio.h>



int pot (int base, int exp);
int esnum (int numero);
int atonum (int numero);

void main(void)
{

char exp,base,numero;

 printf("ingrese un numero del 0 al 9 \n \n \t \t");
 scanf("%c",&numero);

 printf ("La funcion esnum dio %d", esnum(numero));

 numero=atonum(numero);

 if (numero==-1)
 {
 printf("No es un numero del 0 al 9 \n \n \t \t");
 return (0);
 }
 printf("el numero ingresado es  \t \t %d \n \n ", numero);
 printf("ingrese un numero \n \n \t \t");
 scanf("%d",&exp);
 printf("ingrese un numero \n \n \t \t");
 scanf("%d",&base);



        
      return (0);
}

int pot (int base, int exp)
{

   exp=exp-1;
   base*=base;

   if (exp>=0)
   base=pot (base, exp);

   if (exp==0)
   return (1);

   return (base);

   return (1);

}


int esnum (int numero)
{
   if (0<=(numero-48)<=9)
   return (1);
   return (-1);
}

int atonum (int numero)
{
   if (0<=(numero-48)<=9)
   return (numero-48);
   return (-1);
}



El tema que al ejecutar la función esnum, si meto un caracter, debería darme -1 y después en el if, salir e imprimir por pantalla un -1. Pero no lo hace. Es como si lo pasara a int y luego lo trata como un numero.  


Bueno ya estoy muy mareado y cansado de debugear esto una y otra vez, probablemente me enfrasque en un error muy tonto, pero ya estoy atascado asi que recurro a un tercero que se apiade de este pobre inepto y marque el error.


Bueno esos es todo desde ya gracias por su tiempo y paciencia.
5  Informática / Electrónica / Como alinear una fibra optica con una lente? en: 18 Noviembre 2009, 18:40 pm
Bueno esta vez traigo una jodida:

Necesito alinear una fibra óptica y un lente biconvexo para colectar una cantidad de luz determinada en un recoveco (o sea uso la fibra y el lente como sensor).

Para hacérselas corta y no  poner el trabajo entero acá, lo que quiero es el angulo con el que la luz de salida del lente tiene que entrar a la fibra para que trasmita dicha luz a su otro extremo.

Por cierto si el angulo debe ser aproximado al horizontal debo utilizar un lente bicóncavo pequeño para rectificar y hacer coherente el haz de luz?

Bueno desde ya muchas gracias

6  Informática / Electrónica / Bueno muchachos que longitudes de onda absorben las celdas solares? en: 3 Noviembre 2009, 12:25 pm
Bueno muchachos, eso necesito saber  que longitudes de onda absorben las celdas solares?

Me refiero a las comunes de silicio. eso es todo y desde ya gracias por todo.

 ::)
7  Media / Multimedia / ¿Como copiar y dividir un dvd con .vob sin rip de por medio? en: 29 Octubre 2009, 07:10 am
Bueno esa es mi pregunta, mas claramente lo que quiero hacer es copiar un dvd de video común y corriente pero la cosa es que estos tienen mas de 4.7 gb por ej la película The Fountain (excelente peli por cierto aunque un poco triste) ocupa como 5.6 o un poco mas de gb, wolverine (Xmen Origins) ocupa como 7 gb.

Bueno para hacerla corta lo que se pretende es dividir el dvd de mas de 4.7 gb en 2 de 4.7 sin que allá ningún rip ni transformación alguna de por medio.
Conservando la calidad todos los subtítulos y pistas de audio  de por medio incluyendo asta la ventana de presentación y selección de opciones que por lo general es el X_0.vob.

Ya estuve pispiando en el foro y en Google pero el problema es que todo lo que leí incluía algún ripeo de varias horas y  varios programas como gordian rip pak o dvdrat entre otros.

Repito que no quiero ripear, simplemente por cuestión de espacio quiero dividir los ficheros conservando todos los canales de audio y subtítulos.

Les explico en mi casa en el dvd de masa algunos nos gusta ver las pelis en idioma original y a otros les va mas el hablado en castellano.

Bueno desde ya muchas gracias y suerte.
8  Media / Multimedia / Faq del dvd, fijense en Tecnologia perdida de FMD en: 27 Octubre 2009, 05:32 am
Bueno releyendo el faq de dvd por enesima vez me llamo la atencion esto.


Citar
[2.13] Que efecto tendrá el FMD en el DVD?

Muy poco, como se predijo en esta FAQ. Constellation 3D se quedaron sin dinero a mediados del 2002. Los informes del fluorescent multilayer disc (FMD) causando la súbita muerte del DVD fueron salvajemente exagerados y no estaban basados en la realidad.

La tecnologia de multicapas fluorescentes, que puede ser usada en tarjetas o discos, usa un laser en un material grabador fluorescente causando que emita luz. Puesto que no depende de luz laser reflejada, es posible crear muchas capas de datos (C3D ha hecho un prototipo con 50 capas en su laboratorio). Puede usar el mismo laser de 650 nm del DVD, de tal modo que los lectores FMD podrían hacerse para que leyesen DVDs. En junio 2000, C3D anunció un programa para hacer FMDs con 25 gigas por lado que podría ser leíble por lectores DVD con unas "modificaciones pequeñas y baratas). C3D dijo posteriormente que los lectores podrían estar disponibles a mediados del 2001. El FMD era una nueva e interesante tecnología, pero era nueva, no usa una pista grabada, desarrollada por una pequeña compañía. El DVD está basado en décadas de desarrollo de tecnología de almacenamiento óptico por docenas de compañías. La monumental tarea de cambiar todas las infraestructuras de producción hacia el nuevo formato era demasiado para C3D, incluso con decenas de millones de dólares y algunas grandes alianzas.

Pues esta tecnología nunca la he visto ni la e escuchado mencionar pero me resulta sumamente atractivo un disco de multicapas fluorescente que por ende no depende del laser permitiéndome grabar multicapas :o.

Aquí les dejo el faq de dvd en castellano en el siguiente link, si es viejito pero es un clásico.

http://www.megaupload.com/?d=ZAVBZEMZ  (original en ingles)

http://www.megaupload.com/?d=6W7X56J3   (en castellano)


Les pregunto si alguien ya sabia de esta tecnología o es parte de algo ya implementado.

 
9  Informática / Electrónica / Consulta por que me lanzo a programar en pic y freescale en: 16 Octubre 2009, 03:11 am
Bueno eso me mando a programar en pic y freescale (exmotorola) mi pregunta es que kit de programacion me recomiendan para empezar, quisiera algo que me sirva a futuro y que programe tanto en 8 como 16 bists y como puedo conseguirlo, soy de argentina pero tengo la posibilidad de pedir directamente desde usa ya que tengo un tio de confianza viviendo aya.

Bueno eso es todo desde ya gracias por todo.
10  Informática / Software / Es conveniente grabar a naxima velocidad ono ? en: 31 Agosto 2009, 11:59 am
Bueno estuve googleando un poco y la realidad que dependiendo de la cache la velocidad de tu rigido y otros parametros no siempre tu grabadora de cd/dvd puede ir a su maximo pero mi pregunta es:

Por mas que estuviere todo armado y configurado para grabar al palo, es conveniente grabar a maxima velocidad o existe una mayor probabilidad de un error de datos?

Cuales son los limites aceptables para las velosidades de gravacion y prinsipalmente respecto a las capasidades fisicas del dispositivo de gravacion, osea el hardware (la gravaadora que tengas) cuales son los limites recomendables de gravacion.

Cantidad de discos gravados de manera seguida (la T° aumenta y hay mas posibilidad de un error de datos y mas desgaste).

Cantidad de discos que puede grabar en total durante su vida util una grav standard hoy en dia.

Y que se aguantan y asta donde dichas grabadoras (desgaste vs tiempo y cant de gravaciones).

Obviamente no pretendo que me escrivan un tutorial lo que pretendo son un par de respuestas cortas concretas y simples (nada elavorado nadie tiene tiempo para ponerse a responder dedicadamente cada pregunta del foro "aunque algunos lo intentan con vastante exito mis saludos y respetos a ellos"), y un par de numeros que me den una referencia.

Bueno desde ya gracias por su ayuda. 
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines