Pascal/Turbo Pascal - Ayuda con estos ejercicios de turbo pascal

 
Vista:

Ayuda con estos ejercicios de turbo pascal

Publicado por Luis (3 intervenciones) el 07/05/2015 21:15:29
Arreglos Unidimensionales

1) elabore un procedimiento que lea 5 números los almacene en un vector y la ultima posicion del mismo es el producto de los cinco números. El procedimiento debe enviar este vector como parametro de salida.

2) Elabore un procedimiento que almacene una secuencia de numeros enteros positivos y negativos en un vector, luego debe crear otro vector con los positivos y negativos, ademas de imprimir con printed la suma de cada vector, la informacion generada por este procedimineto, debe salir del mismo.

3) Elabore un procedimiento que genere y almacene los primeros 6 números de la sucesión de Fibonacci en un vector, el cual debe salir del procedimiento con los números indicados.

4)Elabore un procedimiento que lea nombres de personas y diga cuantos caracteres tiene cada nombre.

5)Diseñe un programa que trabaje en paralelo con arreglos unidimensionales para el siguiente problema:
Se desea determinar el numero de alumnos inscritos por asignatura. Usted debe de presentar el siguiente reporte:


Total por asignatura:
Calculo...........xxxx
Quimica General..........xxxxx
Fisica..................xxxxx
Dibujo................xxxxxx
Deporte..............xxxxx
Lenguaje......xxxxx
Ingles............xxxxx

6) Elabore un programa en pascal que utilice procediminetos para los siguientes enunciados:

a) Se desea calcular la transpuesta de una tabla, para ello usted debe de imprimir la tabla inicial y la nueva tabal transpuesta.

b) Elabore un programa en pascal que permita calcular el producto de dos tablas, usted debe imprimir las tablas a multiplicar y la tabla resultante.

c) Elabore un programa que utilice vectores y tablas simultaneamente, la tabla contiene los indices academicos de 4 estudiantes de 4 especialidades, usded debe de calcular el promedio de indices por especialidad y almacenarlo en un vector, ordenarlo y luego determinar cual fue el menor y mayor indice, y a que especialidad corresponde.



7) Elabore procediminetos para generar las siguientes tablas

a) 2 2 3 b) 1 1 1 1
2 4 6 2 2 2 2
3 6 6 1 1 1 1
2 2 2 2
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

Ayuda con estos ejercicios de turbo pascal

Publicado por ramon (2158 intervenciones) el 15/05/2015 21:09:45
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
216
{A ver si esto va sirviendo}
 
program tablas;
   uses
     crt;
 
   type
     numeros = array[1..6] of integer;
     positnega = array[1..10] of integer;
   var
     num2, num1 : numeros;
     x, numero : integer;
 
 
   procedure vector1(var v : numeros);
   var
      t : integer;
   begin
       randomize;
       for t := 1 to 5 do
       begin
          numero := random(5 * 2) + 1;
          v[t] := numero;
       end;
       numero := 0;
       for t := 1 to 5 do
       numero := numero + v[t];
       v[6] := numero;
   end;
 
 
   procedure positivos_negativos;
   var
      pos, neg, n, p, m, t : integer;
      negat, posit, posneg : positnega;
   begin
      fillchar(negat,sizeof(negat),0);
      fillchar(posit,sizeof(posit),0);
      randomize;
       for t := 1 to 5 do
       begin
         numero := random(10) + 1;
         posneg[t] := - numero;
       end;
       for t := 6 to 10 do
       begin
         numero := random(20) + 1;
         posneg[t] := numero;
       end;
       n := 1;
       p := 1;
       for t := 1 to 10 do
       if posneg[t] < 0 then
       begin
       negat[n] := posneg[t];
       n := n + 1;
       end
     else
        begin
           posit[p] := posneg[t];
           p := p + 1;
        end;
       neg := 0;
       for t := 1 to 10 do
       begin
       if negat[t] < 0 then
       begin
       write('  ',negat[t]);
       neg := neg + negat[t];
       end;
      end;
       writeln;
       pos := 0;
       for t := 1 to 10 do
       begin
       if posit[t] > 0 then
       begin
       write('  ',posit[t]);
       pos := pos + posit[t];
       end;
      end;
        writeln;
        writeln('  Total Negativos = ',neg);
        writeln('  Total positivos = ',pos);
   end;
 
   Function fibonacci(n : LongInt) : LongInt;
   begin
     if n < 2 then
     fibonacci := n
  else
     fibonacci := fibonacci(n - 1) + fibonacci(n - 2);
 end;
 
   procedure numerofibonanci(var fib : numeros);
   var
     l, fibo : integer;
     nufibo : numeros;
   begin
      l := 1;
      For fibo := 1 to 15 do
      begin
      nufibo[l] := fibonacci(fibo);
      l := l + 1;
      if l > 6 then
      begin
         fib := nufibo;
         break;
      end;
    end;
   end;
 
   procedure longitudnombre;
   var
     nom : string;
     begin
        write('  Entre Nombre : ');
        readln(nom);
        writeln;
        write('  La Longitud Es : ',ord(nom[0]));
     end;
 
   procedure alumnos_asignat;
   const
     max = 40;
     asignat : array[1..7] of string[12] = (
     'Calculo','Quimica','Fisica','Dibujo','Deporte','Lenguaje','Ingles');
   var
      alumn : array[1..max] of string[12];
      salir : boolean;
      tecla : char;
      nm : integer;
      s1 : array[1..7] of integer;
   begin
      salir := false;
      nm := 0;
      repeat
          gotoxy(9,14);write('  Asignatura Alimno ');
          gotoxy(4,16);write(' 1 = Calculo');
          gotoxy(4,17);write(' 2 = Quimica');
          gotoxy(4,18);write(' 3 = Fisica');
          gotoxy(4,19);write(' 4 = Dibujo');
          gotoxy(4,20);write(' 5 = Deporte');
          gotoxy(4,21);write(' 6 = Lenguaje');
          gotoxy(4,22);write(' 7 = Ingles');
          gotoxy(4,23);write(' 8 = Salir');
          nm := nm + 1;
          if nm > max then
          begin
          nm := max;
          writeln('  Fin De Entradas Pulse Salir');
          end;
          gotoxy(4,24);write('                                 ');
          gotoxy(4,24);write('  Elija Asignatura Alumno N§ ',nm);
          repeat
              tecla := readkey;
          until tecla in['1','2','3','4','5','6','7','8'];
      case tecla of
  '1' : alumn[nm] := asignat[1];
  '2' : alumn[nm] := asignat[2];
  '3' : alumn[nm] := asignat[3];
  '4' : alumn[nm] := asignat[4];
  '5' : alumn[nm] := asignat[5];
  '6' : alumn[nm] := asignat[6];
  '7' : alumn[nm] := asignat[7];
  '8' : salir := true;
   end;
      until salir = true;
      nm := nm - 1;
      fillchar(s1,sizeof(s1),0);
      for nm := 1 to max do
      begin
      if alumn[nm] = asignat[1] then
      s1[1] := s1[1] + 1;
      if alumn[nm] = asignat[2] then
      s1[2] := s1[2] + 1;
      if alumn[nm] = asignat[3] then
      s1[3] := s1[3] + 1;
      if alumn[nm] = asignat[4] then
      s1[4] := s1[4] + 1;
      if alumn[nm] = asignat[5] then
      s1[5] := s1[5] + 1;
      if alumn[nm] = asignat[6] then
      s1[6] := s1[6] + 1;
      if alumn[nm] = asignat[7] then
      s1[7] := s1[7] + 1;
      end;
      writeln;
      for nm := 1 to 7 do
      writeln('   ',asignat[nm],'  ',s1[nm]);
 
 
   end;
 
 
   begin
      clrscr;
      vector1(num1);
      write('  ');
      for x := 1 to 5 do
      write(' ',num1[x]);
      write(' = ',num1[6]);
      writeln;
      positivos_negativos;
      numerofibonanci(num2);
      write('  Numeros fibonacci = ');
      for x := 1 to 6 do
      write(' ',num2[x]);
      writeln;
      longitudnombre;
      writeln;
      alumnos_asignat;
 
 
      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

Ayuda con estos ejercicios de turbo pascal

Publicado por dario (42 intervenciones) el 17/05/2015 11:18:40
Solucion Nro 1.

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
{Programa en pascal que almacena 5 numeros aleatorios en un vector y la
ultima posicion es el producto de los 5 numeros aleatorios}
 
uses crt;
type
	numeros=array[1..6] of integer;
var
	tabla:numeros;
	i:byte;
 
procedure producto(lista:numeros);
var
	num,i:integer;
begin
	num:=1;
	randomize;
	for i:=1 to 5 do begin
		lista[i]:=random(10);
		num:=num * lista[i]
	end;
 
	lista[6]:=num;
	writeln('Vector resultante ');
 
	for i:=1 to 6 do
		write(lista[i],' ');
end;
 
begin
	clrscr;
 
	for i:=1 to 5 do
		tabla[i]:=0;
 
	producto(tabla);
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

Ayuda con estos ejercicios de turbo pascal

Publicado por dario (42 intervenciones) el 19/05/2015 11:29:30
Solucion, ejercicio Nro 2

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
uses crt;
var
	a,i,j,k,sp,sn:integer;
	numeros,positivos,negativos:array[1..50]of integer;
begin
	clrscr;
	randomize;
	sp:=0;
	sn:=0;
 
	for i:=1 to 20 do begin
		a:=random(100)-50;
		numeros[i]:=a;
	end;
 
	j:=1;
	k:=1;
 
	for i:=1 to 20 do begin
		if numeros[i] > 0
			then
				begin
					positivos[j]:=numeros[i];
					sp:=sp + positivos[j];
					inc(j);
				end
			else
				begin
					negativos[k]:=numeros[i];
					sn:=sn + negativos[k];
					inc(k);
				end;
	end;
 
	for i:=1 to j do
		write(positivos[i],' ');
 
	writeln;
	writeln('La suma del vector de numeros positivos es: ',sp);
	writeln;
 
	for i:=1 to k do
		write(negativos[i],' ');
 
	writeln;
	writeln('La suma del vector de numeros negativos es: ',sn);
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

Ayuda con estos ejercicios de turbo pascal

Publicado por dario (42 intervenciones) el 20/05/2015 06:23:32
Solucion Nro 3.

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
uses crt;
 
procedure fibonacci;
var
   a,b,c,i:word;
   fib:array[1..6]of word;
begin
	a:=1;
	b:=1;
    fib[1]:=a;
    fib[2]:=b;
 
    for i:=3 to 6 do begin
        c:=a+b;
        fib[i]:=c;
        a:=b;
        b:=c;
    end;
 
    for i:=1 to 6 do
        write(fib[i],' ');
 
end;
 
{--------------------------------------------}
 
begin
	clrscr;
	fibonacci;
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

Ayuda con estos ejercicios de turbo pascal

Publicado por dario (42 intervenciones) el 20/05/2015 06:39:36
Solucion nro 4.

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
uses crt;
 
procedure cuentaCaracteres;
var
   nom,i:byte;
   nombre:array[1..50]of string;
begin
     write('Cuantos nombres desea ingresar: ');
     readln(nom);
 
     for i:=1 to nom do begin
         write('Nombre nro ',i,': ');
         readln(nombre[i]);
     end;
 
     for i:=1 to nom do
         writeln('Nombre nro ',i,' tiene ',length(nombre[i]),' caracteres');
 
     readkey;
end;
 
{-----------------------------------------------}
 
begin
	clrscr;
	cuentaCaracteres;
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