Pascal/Turbo Pascal - arreglos

 
Vista:

arreglos

Publicado por Alberto (1 intervención) el 18/06/2012 21:35:35
necesito con mis compañeros una solucion a este problema: como saber quienes son los aptos y no aptos y los promedios de los aptos en este ejercicio.

"en una campaña de donacion de sangre se presentan 10posibles donantes a los que se les solicita la edad en años y el peso en libras. almacenar dicha informacion en arreglos independientes, y en otro arreglo indicar quienes estan aptos / o no aptos para donar sangre(minimo18 años y 110 lbs.).
ademas indicar el promedio de edad y de peso de los aptos para donar.

hasta el momento solo he podido hacer el ingreso de datos en los arreglos de peso y edad.!


program dracula;
uses crt;
var
edad: array [1 .. 10] of integer;
peso: array [1 .. 10] of real;
aptos: array [1 .. 10] of integer;
x, m: integer;

begin
clrscr;
for x:= 1 to 10 do
begin
write ('Ingresar edad del ', x,'ø', ' donante: ');
read (edad [x]);
if edad [x] >= 18 then
begin
write ('Ingrese el peso del donante: ');
read (peso [x]);
if peso [x] < 110 then
begin
writeln ('Peso insuficiente, se va a morir si dona sangre.');
end;
end
else
writeln ('Edad insuficiente.');
end;
writeln;
Write ('Los donantes aptos son los numeros: ', a [x]);
read (m);
end.
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

arreglos

Publicado por ramon (2158 intervenciones) el 19/06/2012 20:16:47
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
{Algo como esto sirve }
 
program dracula;
uses crt;
 var
   edad : array [1..10] of integer;
   peso : array [1..10] of real;
  aptos : array [1..10] of boolean;
   n, x, m : integer;
   sumaedad : integer;
   sumapeso : real;
 
  begin
    clrscr;
    m := 1;
    while m < 10 do
    begin
       write('Entre Edad Del Donante N§ ',m,' : ');
       readln(edad[m]);
       write('Entre El Peso Del Donante N§ ',m,' : ');
       readln(peso[m]);
       if (edad[m] > 17) and (peso[m] > 109) then
       aptos[m] := true
     else
       aptos[m] := false;
       m := m + 1;
       clrscr;
    end;
      x := m - 1;
      writeln;
      writeln('Promedio De Edad y Peso de los aptos');
      sumaedad := 0;
      sumapeso := 0;
      n := 1;
      for m := 1 to x do
      if aptos[m] = true then
      begin
         sumaedad := sumaedad + edad[m];
         sumapeso := sumapeso + peso[m];
         n := n + 1;
      end;
      writeln('Promedio De Edad De Los Aptos = ',round(sumaedad / n));
      writeln('Promwdio De Peso De Los Aptos = ',round(sumapeso / n));
      writeln;
      writeln('Pulse Una Tecla');
      readkey;
  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

arreglos

Publicado por jonathan gomez (2 intervenciones) el 20/06/2012 07:57:54
Amigo Ramon, puedes darme una dirección de correo electrónico para comunicarme contigo? Necesito ayuda urgente en un jueguito y se que para esto eres de los mejores. Ahora mismo no puedo crear temas en el foro porque estoy desde el telefono. Desde ya, MUCHIIIISIMAS GRACIAS por tu respuesta amigo.
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

arreglos

Publicado por ramon (2158 intervenciones) el 20/06/2012 21:24:49
Primero agradezco tus palabras pero solo soy un aprendiz de programación puesto que
siempre se sabe demasiado poco y el tiempo nos enseña mas.
En lo otro como e contestado a otros solo en este lugar intentare enseñar lo que buena mente
pueda si necesitas de mi ayuda dime lo que quieres y te ayudare pero ten en cuenta que al
hacerlo contigo a otros les enseñara también y ese es mi propósito que todos puedan aprender.
Espero lo comprendas y disculpa si en algo puedo ofender.
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

arreglos

Publicado por jonathan gomez (2 intervenciones) el 21/06/2012 01:40:00
Que buena onda eres wey! De verdad te felicito! Orale pues, te explico: Es una practica para la facultad, llevo avanzado ciertas cositas pero esta todo muy crudo. Me gustaria que me dieras una idea general de como lo harías tu. Quiero hacer un juego de guerra por territorios, donde se luche contra la computadora y las batallas sean lanzando dados y el que saca un numero mayor se gana el territorio quiero hacer 10 territorios que se repartan al principio de la partida de manera aleatoria y equitativa entre la pc y el jugador y gane la partida el jugador que conquiste todos los territorios. Algo así me gustaría hacer, gracias de antemano carnal =)!
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

arreglos

Publicado por ramon (2158 intervenciones) el 21/06/2012 15:18:42
Me gustaría ver loquee llevas echo para empezar donde tu lo llevas pero a falta de ello
te pasare un ejemplo de lo que yo aria con considerando que los dados sera 1 no 3 si no
me informareis de cuantos y las tiradas asta terminar una ganando o con limite.
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

arreglos

Publicado por ramon (2158 intervenciones) el 21/06/2012 21:56:09
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
{A ver si vale}
 
 program juego;
 uses
    crt;
  const
     territorios = 10;
     pais : array[1..territorios] of string[30] = (
     'Francia','Portugal','Inglaterra','Rusia','America',
     'Rumania','Espa¤a','Peru','Guatemala','China');
  var
    ordenador, jugador : array[1..(territorios div 2)] of string[30];
    a : integer;
 
   procedure asignaterritorios;
   var
      t, p, nu, asig : integer;
      toma : array[1..5] of integer;
      no, sige : boolean;
   begin
      randomize;
      nu := 1;
    repeat
       asig := random(11);
       if (asig > 0) and (asig < 10) then
       begin
         sige := false;
         for p := 1 to nu do
         begin
          if toma[p] = asig then
          begin
            sige := false;
            break;
          end
        else
           begin
             sige := true;
           end;
         end;
        if sige = true then
        begin
           toma[nu] := asig;
           nu := nu + 1;
        end;
       end;
    until nu > 5;
    for p := 1 to nu - 1 do
    begin
        jugador[p] := pais[toma[p]];
    end;
    t := 1;
    for p := 1 to territorios do
    begin
        no := false;
        for nu := 1 to 5 do
        begin
          if jugador[nu] = pais[p] then
          no := true;
        end;
        if no = false then
        begin
        ordenador[t] := pais[p];
        t := t + 1;
        if t > 5 then
        break;
       end;
    end;
   end;
 
   function valordado : integer;
   var
     num : integer;
     numero : boolean;
   begin
       numero := false;
       num := 0;
    repeat
         num := random(7);
         if num < 7 then
         numero := true
       else
         numero := false;
    until numero = true;
    valordado := num;
   end;
 
   procedure quitaganado(d : char; m : integer);
   begin
      if d = 'J' then
      begin
      case m of
   1 : begin gotoxy(1,3);write('               '); end;
   2 : begin gotoxy(1,4);write('               '); end;
   3 : begin gotoxy(1,5);write('               '); end;
   4 : begin gotoxy(1,6);write('               '); end;
   5 : begin gotoxy(1,7);write('               '); end;
     end;
    end;
      if d = 'O' then
      begin
      case m of
   1 : begin gotoxy(40,3);write('               '); end;
   2 : begin gotoxy(40,4);write('               '); end;
   3 : begin gotoxy(40,5);write('               '); end;
   4 : begin gotoxy(40,6);write('               '); end;
   5 : begin gotoxy(40,7);write('               '); end;
     end;
    end;
   end;
 
   procedure dadojugador(nume : integer);
   begin
       gotoxy(45,14);write(' ');
       gotoxy(43,12);write(' /---/|');
       gotoxy(43,13);write('|---| |');
       gotoxy(43,14);write('|   | |');
       gotoxy(43,15);write('|___|/');
       gotoxy(45,14);write(nume);
   end;
 
   procedure dadoordenador(nume : integer);
   begin
       gotoxy(12,14);write(' ');
       gotoxy(10,12);write(' /---/|');
       gotoxy(10,13);write('|---| |');
       gotoxy(10,14);write('|   | |');
       gotoxy(10,15);write('|___|/');
       gotoxy(12,14);write(nume);
   end;
 
   procedure jugamos;
   var
    nc, ng, tiradas, jug, pc : integer;
    tec : char;
    salir : boolean;
   begin
       asignaterritorios;
       tiradas := 1;
       gotoxy(40,1);write('    Jugador    ');
       gotoxy(40,3);write('   ',jugador[1]);
       gotoxy(40,4);write('   ',jugador[2]);
       gotoxy(40,5);write('   ',jugador[3]);
       gotoxy(40,6);write('   ',jugador[4]);
       gotoxy(40,7);write('   ',jugador[5]);
       gotoxy(40,10);write('     Jugador   ');
       gotoxy(1,1);write('    Ordenador    ');
       gotoxy(1,3);write('   ',ordenador[1]);
       gotoxy(1,4);write('   ',ordenador[2]);
       gotoxy(1,5);write('   ',ordenador[3]);
       gotoxy(1,6);write('   ',ordenador[4]);
       gotoxy(1,7);write('   ',ordenador[5]);
       gotoxy(1,10);write('     Ordenador   ');
       salir := false;
       nc := 1;
       ng := 1;
     repeat
     gotoxy(27,20);write('Juega Jugador Pulsa Espacio');
     repeat
     tec := readkey;
     if tec = #27 then
     salir := true;
     until (tec = #27) or (tec = #32);
     if tec = #32 then
     begin
        jug := valordado;
        dadojugador(jug);
     end;
       pc := valordado;
       dadoordenador(pc);
       if pc > jug then
       begin
           gotoxy(22,13);write('              ');
           gotoxy(22,13);write('Gana Ordenador');
           quitaganado('O',ng);
           ng := ng + 1;
           if ng > 5 then
           begin
              clrscr;
              gotoxy(22,13);write('A Ganado El Ordenador');
              salir := true;
           end;
       end;
       if pc < jug then
       begin
           gotoxy(22,13);write('            ');
           gotoxy(22,13);write('Gana Jugador');
           quitaganado('J',nc);
           nc := nc + 1;
           if nc > 5 then
           begin
              clrscr;
              gotoxy(22,13);write('A Ganado El Jugador');
              salir := true;
           end;
       end;
       if pc = jug then
       begin
       tiradas := tiradas;
       gotoxy(22,13);write('              ');
       gotoxy(22,13);write('Tirada Nula');
       end
     else
       tiradas := tiradas + 1;
       if tiradas > 10 then
       salir := true;
     until salir = true;
   end;
 
  begin
      clrscr;
      randomize;
      jugamos;
      gotoxy(22,15);write('Pulse Una Tecla');
      readkey;
  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