Pascal/Turbo Pascal - 3.2 tema 7

   
Vista:

3.2 tema 7

Publicado por Erik Napster_EPD88@hotmail.com (73 intervenciones) el 26/03/2014 19:30:44
hola a partir del siguiente codigo tengo que hacer lo siguente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Program Galeria;
  uses
    crt;
  (*-- Constantes globales al programa -- *)
   Const
       TAMCOLECCION = 4;
 
   (*-- Tipos globales al programa -- *)
   Type
      coleccion = array[1..tamcoleccion] of real;
 
   (*-- Variables del módulo principal -- *)
    Var
    precios : Coleccion;
 
   (*-- Funciones y procedimientos -- *)
  procedure lee_tabla(var t : coleccion; n : integer);
  var
    i : integer;
  begin
     i := 1;
     writeln('  Entre Precio Cuadro ');
   while i < n + 1 do
   begin
      write('  Numero ',i,' : ');
      readln(t[i]);
      i := i + 1;
   end;
  end;
 
  procedure imprime_tabla(t : coleccion; n : integer);
  var
    i : integer;
  begin
     i := 1;
   writeln('  Los Resultados Son ');
   writeln;
   while i < n + 1 do
   begin
      writeln(' Num. : ',i,'  Precio : ',t[i]:0:2);
      i := i + 1;
   end;
  end;
 
 
 
 
    (*-- Programa Principal -- *)
   Begin
      clrscr;
      lee_tabla(precios, TAMCOLECCION);
      clrscr;
      imprime_tabla(precios, TAMCOLECCION);
      readln;
    End.

Partiendo del programa anterior, sin modificar los procedimientos y funciones ya codificados, introduzca un procedimiento de nombre limites que devolverá como parámetros por referencia el máximo y el mínimo de la colección.

RECORDATORIO:
A la hora de buscar el mínimo (o el máximo) dentro de una tabla se procede:

Se le da como valor inicial al mínimo, el primer valor de la tabla.
Se recorre el resto de la tabla y en cada iteración:
a) Se comprueba si el valor de la tabla es menor que mínimo. a.1) Si lo es al mínimo se le da el valor de dicho elemento.
a.2) Si es mayor no se hace nada y se pasa al siguiente elemento.

En el programa principal, la invocación deberá ser de la forma:

(*-- Variables -- *)
Var
precios1 : Coleccion;
min1, max1: real;

(*-- Programa Principal -- *)
Begin
lee_tabla(precios1, TAMCOLECCION);
imprime_tabla(precios1, TAMCOLECCION);

(* Aquí iría la invocación a limites *)

(* Presentación de resultados *)
Writeln('El maximo es ', max1:0:1, ' y el mínimo ' , min1:0:1);
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

3.2 tema 7

Publicado por Diego (98 intervenciones) el 26/03/2014 19:48:45
Tenés que recorrer el arreglo buscando el precio más bajo y el precio mas alto; Como el arreglo no tiene ningun tipo de orden se tiene que recorrer completamente preguntado por el minimo y el máximo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure limites( var arreglo : coleccion; var min: real; var max : real); {Podrían venir inicializados desde el progama principal}
 
  var
     indice : integer;
  begin
       max := -20;
       min :=  99999;
      for indice := 1 to TAMCOLECCION do
         begin
              if (arreglo[indice] > max) then
                 max := arreglo[indice];
              if (arreglo[indice] < min) then
                 min := arreglo[indice];
         end;
  end;
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