• Viernes 8 de Noviembre de 2024, 16:52

Autor Tema:  Me Dan Ideas??  (Leído 3856 veces)

Kilmiss

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Me Dan Ideas??
« en: Miércoles 31 de Enero de 2007, 08:55 »
0
un programa que sume los digitos de los numeros enteros que se le han metido por teclado...

imagino que sera facil pero yo no me llevo demasiado bien con la programacion..

en fin, me podrian ayudar??

no puedo sumar tipo char..  solo se me ocurre convertir los digitos a enteros con ORD pero... realmente no me valen para nada los numeros porque la suma de ellos me dara un caracter.. a saber.

jooooo me ayudais??

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Me Dan Ideas??
« Respuesta #1 en: Jueves 1 de Febrero de 2007, 05:44 »
0
Yo también quisiera saber si hay alguna funcion para convertir un char a entero. la funcion ORD lo que hace es devolver el ascii del caracter, por lo tanto creo que no serviría en este problema.

Bueno, mientras averiguo si hay alguna funcion para convertir un char a entero, lo que se me ocurre es hacer esto por medio de un case:

Lees el entero y lo guardas en una variable String, luego la recorres y con la ayuda del case vas comparando el caracter y si coincide, sumas.

Código: Text
  1.  
  2.  var
  3. cadena:String;
  4. entero, i: integer
  5.  
  6. readln(cadena);
  7.  
  8. for i:=0 to length(cadena) do
  9. BEGIN
  10.           case cadena[i] of
  11.  
  12.           '0': entero:=entero+0;
  13.           '1': entero:=entero+1;
  14.  
  15.            '2': entero:=entero+2;
  16.           .
  17.           .
  18.           .
  19.           else writeln('ERROR');
  20. END;
  21.  
  22.  
  23.  

No probé este codigo, pero es una idea... ojala te sirva.
Un dia sin sol es como, ya sabes, ... noche

Kilmiss

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Me Dan Ideas??
« Respuesta #2 en: Jueves 1 de Febrero de 2007, 07:46 »
0
hola!!

veras, al final si logre dar con la solucion..

ORD(numerodel0al9) = nos dara un valor del 48 (correspondiente al 0) al 57 (al 9) en ascii entonces si al numero ascii que corresponde le restamos 48 nos dara su valor entero.

espero haberme explicado. mil gracias por la respuesta : )

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Me Dan Ideas??
« Respuesta #3 en: Jueves 1 de Febrero de 2007, 19:42 »
0
:lol:  :lol:  que bueno que lo pudiste resolver.

Me queda la duda si hay alguna funcion para convertir un String o un char a entero. es decir directamente.
Un dia sin sol es como, ya sabes, ... noche

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Me Dan Ideas??
« Respuesta #4 en: Viernes 2 de Febrero de 2007, 10:42 »
0
que tal? SI EXISTE una función de pascal que convierte directamente o STRING o CHAR, a INTEGER... la función es VAL....

Código: Text
  1. VAL(String, Variable_Integer o Variable_Real, Variable_Integer);
  2. VAL(Char, Variable_Integer o Variable_Real, Variable_Integer);
  3.  

Esa es la sintaxis...

Donde dice Char o String, alli se puede colocar una variable, o una cadena de texto directamente.

Donde dice Variable_Integer o Variable_Real debe ir obligatoriamente una variable de cualquiera de esos dos tipòs, porque allí se depositará el resultado de convertir la cadena o caracter en número.

Donde dice Variable Integer al final, alli tambien debe ir obligatoriamente una variable de tipo ENTERO (INTEGER). En esta variable, la función VAL devuelve un número que nos especifica si se logró hacer la conversión...

Ejemplo 1:
Código: Text
  1. Uses CRT;
  2. Var s: string;
  3.       i,j: integer;
  4. Begin
  5.       s:='12345';
  6.       val(s,i,j);
  7. End.
  8.  
En este código como, la variable "s" es igual a "12345", y aunque es de tipo String, es una expresión numérica válida, por lo tanto la conversión será exitosa. La función Val arrojaría los siguientes valores:

Código: Text
  1. i:=12345;
  2. j:=0;
  3.  
La variable "j" devuele como valor cero (0) porque no se produjo ningún error.


Ejemplo 2:
Código: Text
  1. Uses CRT;
  2. Var s: string;
  3.       i,j: integer;
  4. Begin
  5.       s:='12345a';
  6.       val(s,i,j);
  7. End.
  8.  
En este código como, la variable "s" es igual a "12345a",  es de tipo String, y NO ES una expresión numérica válida, por lo tanto la conversión no se podrá realizar. La función Val arrojaría los siguientes valores:

Código: Text
  1. i:=0;
  2. j:=1;
  3.  
La variable "i" devuelve un valor cero (0) porque no se pudo realizar la conversión, ya que la variable "s" de tipo string no contenía una expresión numérica válida.
La variable "j" devuele como valor uno (1) porque se produjo un error.
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

robertogt

  • Miembro activo
  • **
  • Mensajes: 97
  • Nacionalidad: gt
    • Ver Perfil
    • http://robertux.wordpress.com
Re: Me Dan Ideas??
« Respuesta #5 en: Viernes 2 de Febrero de 2007, 20:05 »
0
:o  :o  :lol:  :lol: Gracias, esa no me la sabia.
Un dia sin sol es como, ya sabes, ... noche