Pascal/Turbo Pascal - 2.2 tema 7 (2)

 
Vista:
sin imagen de perfil

2.2 tema 7 (2)

Publicado por Erik (73 intervenciones) el 09/04/2014 15:29:42
hola tengo que corregir un codigo, aqui dejo lo que tengo que corregir:

Aquí si que has diseñado bien el recorrido porque has utilizado el for.

No has diseñado correctamente la función suma_coleccion. El array es un parámetro por valor, es sólo de entrada, no se modifican sus datos. Tienes que borrar el var.

function sumar_arreglo( var arreglo : coleccion) : real;

Además te falta inicializar el acumulador

1
2
3
4
5
6
7
8
9
10
11
12
13
function  sumar_arreglo( var arreglo : coleccion) : real;
  var
     indice : integer;
     acumulador : real;
  begin
 
tienes que añadir     acumulador:=0;
       for indice := 1 to TAMCOLECCION do
           begin
              acumulador := acumulador + arreglo[indice];
           end;
       sumar_arreglo := acumulador;
  end;

aqui dejo el codigo en cuestion que hay que corregir

1
2
3
4
5
6
7
8
9
10
11
function  sumar_arreglo( var arreglo : coleccion) : real;
  var
     indice : integer;
     acumulador : real;
  begin
       for indice := 1 to TAMCOLECCION do
           begin
              acumulador := acumulador + arreglo[indice];
           end;
       sumar_arreglo := acumulador;
  end;


gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

2.2 tema 7 (2)

Publicado por Diego (98 intervenciones) el 09/04/2014 18:45:49
En esa si se me pifió la de la inicialización del acumulador (suele pasar cuando se hace un código rapidamente), basta con inicializarlo antes del for con un valor 0;
En cuanto al vector como ya mencioné se pasa por referencia para hacer un mejor uso de la memoria, como ono se va a modificar el contenido no hay un posible daño a la integracion de los elementos del arreglo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

2.2 tema 7 (2)

Publicado por Erik (73 intervenciones) el 10/04/2014 17:04:50
explicamelo en codigo pascal por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

2.2 tema 7 (2)

Publicado por Diego (98 intervenciones) el 11/04/2014 17:05:25
Como ya te explique en otro mensaje lo del vector me lo voy a saltar;
en cuanto a la inicializacion del aculador es un error mio al escribir codigo rapidamente ese y errores como no cerrar parentesis o olvidarme un end. Peor bue.

begin
----acumulador := 0; {agregarlo en esta posición}
----for indice := 1 to TAMCOLECCION do
...
.
.
.
.
.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

2.2 tema 7 (2)

Publicado por Erik (73 intervenciones) el 12/04/2014 20:27:50
si, esta bien pero muestramelo con el codigo pascal que escribi yo, configuralo para que se corriga los errores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

2.2 tema 7 (2)

Publicado por Diego (98 intervenciones) el 13/04/2014 03:36:28
Como ya te dije no tienen nada de malo los codigos (excepto el descuidod e no inicializar el acumulador), lo que digo es que esa es la manera en la trabaja y hace uso de la memoria pascal. por eso te digo que es casi la mejor manera de usar:
Resumiendo: no hay nada que corregir(salvo agregar la inicilaización antes del ciclo for). (amenos que se requiera una optimización si es que la hay, se busca que optimizar y se ahorran unidades de tiempo).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar