![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
olvidaba
ese codigo es parte de mi procedimiento
y la letra 'a' es una cadena ,donde estan las notas a modo de cadena |
|
#2
|
|||
|
|||
|
otro problema
tengo otro problema 'a' es un cadena long:length(a); for n:= 1 to (long/2) do si a 'n' la declaro como byte sale de error: [Error] letraspares.dpr(20): Incompatible types: 'Byte' and 'Extended' si a 'n' la declaro como integer sale de error: [Error] letraspares.dpr(20): Incompatible types: 'Integer' and 'Extended' si a 'n' la declaro como real sale de error: [Error] letraspares.dpr(20): Incompatible types: 'Integer' and 'Extended' |
|
#3
|
|||
|
|||
|
el ultimo error estaba mal
[Error] letraspares.dpr(20): For loop control variable must have ordinal type entonces que hacer for n:= 1 to (long/2) do for s:= (2*n) to long do write(' ',nombre[s],' '); con este codigo lo ke quiero es escribir las letras pares de una cadena nombre es un vector que tiene 20 espacios (max de caracteres) y en cada espacio del vector esta una letra de la cadena pero el problema es la 'n' dado que no puedo poner byte no integer pues long esta dividido pero tampoco puede ser real por ke dice que un loop debe ser un numero ordinal ¿que hacer? ![]() |
|
#4
|
|||
|
|||
|
A ver StrToint lo que hace es pasarte un dato del tipo cadena a un dato de tipo entero, por ejemplo si yo tengo '13' y lo quiero tener 13 lo que hago es :
Mira he echo un ejemplo muy simple con dos edit y un boton, dandole dos veces alboton entras en el evento oNCLICK del boton y escribes el siguiente código:
Si ejecutas este programa y escribes numeros enteros en el edit1 y luego le das al boton te sumara 2 y te lo pondra en el edit 2. Para tu programa ocurre igual, una vez que hemos pasado la cadena que queremos a la variable aux1 la transformamos en entero y se lo asignamos a Nota 1, te quedaria de la siguiente forma: Espero que te haya quedado mas claro, ya me contaras. Un Saludo. ![]() |
|
#6
|
|||
|
|||
|
Noten que uso el div (división entera) en lugar de "/"
por que esa es división en flotante. Y prefiero bajar el "begin".
Usando val tienes el caracter erróneo en code, con strtoint utilizas excepciones que tienes que capturar, sino la capturas sale un mensajito que puede que no te guste. Tienes que definir una variable code. No es necesario inicializar code o num, sólo cad. val(cad,num,code); Luego obtienes el número contenido en cad en num (que puede ser entero o flotante). Si ocurrio un error en code devuelve la posición del caracter que no va. Asi que luego puedes tener por ejemplo un: if code<>0 then num:=ValorPredeterminado; O simplemente ignorar el valor de num y seguir con el siguiente número de tu lista. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|