estructura en una array
Publicado por Carlos (12 intervenciones) el 11/12/2009 10:42:41
Hola amigos,
en primer lugar felicitaros por vuestra genial aportación a los "aspirantes" a programadores que intentamos llevar a cabo nuestros sueños
Estoy empezando a programar en SIMOTION (SIEMENS), es una herramienta para generar programas de ejecución en un sistema combinado entre PLC's y accionamientos SINAMICS (servomotores)
Este lenguaje estructurado está basado en PASCAL salvo algunas pequeñas diferencias
Os explico cual es mi problema (intentaré ser breve):
- Tengo un array con 500 elementos (de 0 a 499), el valor de dichos elementos ya está predefinido y es constante, p.ej: array[0]:=4.235 , array[225]:=0.258 , array[499]:=24.529
Los valores de cada elemento ya están declarados previamente (a mano)
Lo que quiero conseguir es recorrer el array en flanco positivo desde "0" hasta "499" y volver a empezar desde "0" si es necesario hasta que la suma de dichos elementos sea ">=" que el valor de una variable "litros" p.ej: suma>=litros
Una vez alcanzado ese valor, que me devuelva la posición del último elemento del array que ha sido sumado, para que en el próximo ciclo pueda empezar la "suma" desde este último punto
Como he explicado tengo que estructurar la instrucción controlando los "indices" del array y el valor de cada uno de los elemento. Creo que esto se puede hacer utilizando una estructura FOR pero la verdad es que me supera y no veo la forma de hacerlo
He escrito algo de codigo, pero la verdad es que de momento "me supera"
Esto es lo que he escrito:
PROGRAM pruebas;
IF boton1 THEN
FOR k:=0 TO 359 DO
array[k]:=array[k]+1; //Así consigo recorrer la array, pero no puedo pararla
END_FOR;
FOR k:=0 TO 359 DO
IF array[k]>litros THEN
pos_array:=k;
END_IF;
END_FOR;
END_IF;
END_PROGRAM
Ruego me echeís un "cable", ya que estoy muy perdido. gradeceré vuestra ayuda inmensamente
Gracia y un abrazo a todos los compañeros del foro
Atentamente,
Carlos
en primer lugar felicitaros por vuestra genial aportación a los "aspirantes" a programadores que intentamos llevar a cabo nuestros sueños
Estoy empezando a programar en SIMOTION (SIEMENS), es una herramienta para generar programas de ejecución en un sistema combinado entre PLC's y accionamientos SINAMICS (servomotores)
Este lenguaje estructurado está basado en PASCAL salvo algunas pequeñas diferencias
Os explico cual es mi problema (intentaré ser breve):
- Tengo un array con 500 elementos (de 0 a 499), el valor de dichos elementos ya está predefinido y es constante, p.ej: array[0]:=4.235 , array[225]:=0.258 , array[499]:=24.529
Los valores de cada elemento ya están declarados previamente (a mano)
Lo que quiero conseguir es recorrer el array en flanco positivo desde "0" hasta "499" y volver a empezar desde "0" si es necesario hasta que la suma de dichos elementos sea ">=" que el valor de una variable "litros" p.ej: suma>=litros
Una vez alcanzado ese valor, que me devuelva la posición del último elemento del array que ha sido sumado, para que en el próximo ciclo pueda empezar la "suma" desde este último punto
Como he explicado tengo que estructurar la instrucción controlando los "indices" del array y el valor de cada uno de los elemento. Creo que esto se puede hacer utilizando una estructura FOR pero la verdad es que me supera y no veo la forma de hacerlo
He escrito algo de codigo, pero la verdad es que de momento "me supera"
Esto es lo que he escrito:
PROGRAM pruebas;
IF boton1 THEN
FOR k:=0 TO 359 DO
array[k]:=array[k]+1; //Así consigo recorrer la array, pero no puedo pararla
END_FOR;
FOR k:=0 TO 359 DO
IF array[k]>litros THEN
pos_array:=k;
END_IF;
END_FOR;
END_IF;
END_PROGRAM
Ruego me echeís un "cable", ya que estoy muy perdido. gradeceré vuestra ayuda inmensamente
Gracia y un abrazo a todos los compañeros del foro
Atentamente,
Carlos
Valora esta pregunta


0