Pascal/Turbo Pascal - diseñar un algoritmo en Pascal que leerá el nombre del estudiante

 
Vista:
sin imagen de perfil

diseñar un algoritmo en Pascal que leerá el nombre del estudiante

Publicado por anonymous (3 intervenciones) el 10/06/2016 17:18:17
diseñar un algoritmo en Pascal que leerá el nombre del estudiante, las 4 criterios si el campo es vacío o mayor a lo solicitado notificar que ingrese una nota de acuerdo a lo planteado, escribirá el resultado y mostraran las notas en la escala de 5,y volverá a pedir los datos del siguiente estudiante hasta que el usuario finalice el ciclo.

Les agradecería mucho su ayuda.!
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

diseñar un algoritmo en Pascal que leerá el nombre del estudiante

Publicado por ramon (2158 intervenciones) el 10/06/2016 21:33:35
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
{Disculpa si no entendí bien pero mira esto a ver si ayuda }
 
program estudiante;
  uses
     crt;
   type
     notas = record
          nombre : string;
          notas : array[1..4] of real;
          num : integer;
       end;
 
   var
     losestudi : array[1..40] of notas;
     cont : integer;
 
  procedure entranotas(n : integer);
  begin
     if n > 40 then
     n := 40;
     clrscr;
     write('   Entre Nombre : ');
     readln(losestudi[n].nombre);
     write('   Entre Noto 1 : ');
     readln(losestudi[n].notas[1]);
     write('   Entre Noto 2 : ');
     readln(losestudi[n].notas[2]);
     write('   Entre Noto 3 : ');
     readln(losestudi[n].notas[3]);
     write('   Entre Noto 4 : ');
     readln(losestudi[n].notas[4]);
     cont := cont + 1;
     if cont > 40 then
     cont := 40;
   end;
 
 
   procedure menu;
   var
     sal : boolean;
     tec : char;
     begin
        sal := false;
        cont := 1;
        repeat
           clrscr;
           writeln('   Entrada Notas Estudiantes ');
           writeln;
           writeln('   [E] = Entradas Notas');
           writeln('   [S] = Salir');
           writeln;
           writeln('   Elija Opcion');
          repeat
             tec := upcase(readkey);
          until tec in['E','S'];
          if tec = 'S' then
          sal := true
       else
         entranotas(cont);
        until sal = true;
     end;
 
    begin
       menu;
    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
sin imagen de perfil

Ayuda urgente amigos!

Publicado por anonymous (3 intervenciones) el 10/06/2016 21:37:45
gracias amigo! Y lamento la confusion con el enunciado.

Es este:

La nota final de cada
estudiante
se calcula según los siguientes criterios:

Parte práctica vale el 25%;

Parte de problemas vale 35%

Parte de Desarrollo lógico el 20%.

Parte teórica 20%.
El algoritmo leerá el nombre
del estudiante, los 4 criterios si el campo es vacío o mayor a lo solicitado notificar que ingrese una nota de acuerdo a lo planteado, escribirá el resultado y mostraran las notas en la escala del 1 al 5, y volverá a pedir los datos del siguiente estudiante hasta que el usuario finalice el ciclo.

y me dsculpas la molestia
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 urgente amigos!

Publicado por ramon (2158 intervenciones) el 12/06/2016 20:57:42
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
{Mira si esto te ayuda es para 60 alumnos}
 
 program notasalumnos;
 uses
   crt;
   const
   asig = 4;
   practica = 25;
   problemas = 35;
   Desarrollo = 20;
   teorica = 20;
 
   type
     alumno = record
         nombre : string[80];
         asignt : array[1..asig] of string[10];
         nota : array[1..asig,1..asig] of real;
         notafinal : array[1..asig] of real;
       end;
 
   var
     alu : array[1..60] of alumno;
     cri, n, cont : integer;
     tec : char;
 
  procedure entradadatosalumno(nn : integer);
  begin
     n := 1;
     with alu[nn] do
     begin
     write('   Entre Nombre : ');
     readln(nombre);
     cri := 1;
  repeat
     writeln('   Elija Criterio = [1]=Practica \ [2]=Problemas ',
                             '\ [3]=Desarrollo \ [4]=Teorica');
     repeat
        tec := readkey;
     until tec in['1','2','3','4'];
     case tec of
  '1' : asignt[cri] := 'practica';
  '2' : asignt[cri] := 'problemas';
  '3' : asignt[cri] := 'Desarrollo';
  '4' : asignt[cri] := 'teorica';
    end;
     writeln;
     n := 1;
     repeat
     write('   Entre Nota N. ',n,' : ');
     readln(nota[cri][n]);
     n := n + 1;
     until n > asig;
     if asignt[cri] = 'practica' then
     begin
        notafinal[1] := ((nota[nn][1] + nota[nn][2] +
                         nota[nn][3] + nota[nn][4]) * practica) / 100;
     end;
     if asignt[cri] = 'problemas' then
     begin
       notafinal[2] := ((nota[nn][1] + nota[nn][2] +
                         nota[nn][3] + nota[nn][4]) * problemas) / 100;
     end;
     if asignt[cri] = 'Desarrollo' then
     begin
       notafinal[3] := ((nota[nn][1] + nota[nn][2] +
                         nota[nn][3] + nota[nn][4]) * Desarrollo) / 100;
     end;
      if asignt[cri] = 'teorica' then
     begin
       notafinal[4] := ((nota[nn][1] + nota[nn][2] +
                         nota[nn][3] + nota[nn][4]) * teorica) / 100;
     end;
    cri := cri + 1;
   until cri > asig;
   clrscr;
   writeln('   Alumno : ',nombre);
     writeln;
   for cri := 1 to asig do
   begin
     writeln('   Asignatura : ',asignt[cri]);
     writeln;
     writeln('   Notas : ',nota[cri][1]:0:2,'  ',nota[cri][2]:0:2,'  ',
     nota[cri][3]:0:2,'  ',nota[cri][4]:0:2);
     writeln;
     writeln('   Nota Final : ',notafinal[cri]:0:2);
     writeln;
   end;
     writeln;
     writeln('   Pulse una Tecla');
     readkey;
     end;
  end;
 
  procedure muestra_resultados(r : integer);
  var
    c, res : integer;
  begin
     if r > 1 then
     begin
     for res := 1 to r do
     begin
     with alu[res] do
     begin
       clrscr;
         writeln('   Alumno : ',nombre);
         writeln;
     for c := 1 to asig do
     begin
        writeln('   Asignatura : ',asignt[c]);
        writeln;
        writeln('   Notas : ',nota[c][1]:0:2,'  ',nota[c][2]:0:2,'  ',
                              nota[c][3]:0:2,'  ',nota[c][4]:0:2);
        writeln;
        writeln('   Nota Final : ',notafinal[c]:0:2);
        writeln;
     end;
   end;
         writeln;
         writeln('   Pulse una Tecla');
         readkey;
         clrscr;
     end;
     end
   else
      begin
          writeln;
          textcolor(4);
          writeln('   Primero Entre Los Datos Pulse Una Tecla');
          textcolor(7);
          readkey;
      end;
  end;
 
  procedure menu;
     var
     sal : boolean;
     tec : char;
     begin
        sal := false;
        cont := 1;
        repeat
           clrscr;
           writeln('   Entrada Notas Estudiantes ');
           writeln;
           writeln('   [E] = Entradas Notas');
           writeln('   [M] = Mostrar Resultados');
           writeln('   [S] = Salir');
           writeln;
           writeln('   Elija Opcion');
          repeat
             tec := upcase(readkey);
          until tec in['E','M','S'];
          clrscr;
          if tec = 'S' then
          sal := true;
         if tec = 'E' then
         begin
         entradadatosalumno(cont);
         cont := cont + 1;
         if cont > 60 then
         cont := 60;
         end;
         if tec = 'M' then
         muestra_resultados(cont - 1);
        until sal = true;
  end;
 
 
  begin
      clrscr;
      menu;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda urgente amigos!

Publicado por anonymous (3 intervenciones) el 12/06/2016 21:14:03
Muchas gracias ramon, que digo gracias... Inmensas gracias amigo me salvaste ! un abrazo crack
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

diseñar un algoritmo en Pascal que leerá el nombre del estudiante

Publicado por enmanuel castillo (1 intervención) el 26/10/2022 21:28:23
En la empresa el Central Madeira C.A., el jefe de personal ha venido presentando inconveniente
Para obtener un listado con los datos personales de sus empleados. El problema se suscita
Debido a que el jefe de personal para generar dicho listado solo cuenta con los siguientes datos:
No. de C.I. del empleado, nombre y apellido, fecha de nacimiento y sueldo. Y el listado que se
Requiere debe contemplar: No. de C.I., nombre y apellido, edad y categoría del empleado.
Siendo estos dos últimos datos (edad y categoría) los que le generan al jefe de personal,
Dificultades para obtener un listado confiable y consistente.
Basándose en lo anterior diseñe un programa en Pascal que, haciendo uso de Arreglos (vectores
y/o matrices), permita lo siguiente:

1. Ingresar por teclado los datos personales del empleado:
• No. de Cédula de Identidad
• Nombre y Apellido
• Fecha de Nacimiento
• Sueldo
2. Generar un listado con los siguientes datos:
• No. de Cédula de Identidad
• Nombre y Apellido
• Edad
• Categoría
Para generar el listado se debe considerar lo siguiente:
▪ La Edad del empleado se debe obtener a partir de su fecha de nacimiento y la fecha actual,
Tomando como fecha actual el 01/06/2022.
▪ La categoría del empleado está en función de su sueldo, tal como se expresa en la
Siguiente tabla:

Rango de sueldo Categoría
1500 ≤ Sueldo < 2000 1
2000 ≤ Sueldo < 2500 2
2500 ≤ Sueldo < 3000
3
Repuesta
Cedula Nombre y apellido Fecha de nacimiento Edad Categoría Sueldo actual
9999999 Rafael Torres 05-05-1971 37 año 2 2300
7777777 José Tovar 15-12-1970 37 año 3 2500
6666666 María Romero 15-12-1970 40 año 1 1600
5555555 Marco Méndez 12-02-1967 41 año 3 2800
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