• Sábado 16 de Noviembre de 2024, 00:30

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - sem182

Páginas: [1]
1
ADA / Re: Programa De Ada
« en: Miércoles 7 de Mayo de 2008, 00:36 »
gracias por ahora llevo esto y toy atrancado.....voy bien??
que cambio??  




 with Ada.Text_Io, ada.Integer_Text_IO, ada.Sequential_IO;
   use ada.Text_IO, ada.Integer_Text_IO,ada.sequential_io;

   procedure practicas is



   pract_mayor_numero_aprobados:integer;
   max_numero_alumno:integer:=10;
   maximo_practicas:integer;
   numero_practicas:integer:=1;


subtype t_lista_alumno is array (1..max_numero_alumnos) of integer;

   type t_practica is record
    num_practica:integer;
    objetivo:character;
    puntuacion_maxima:integer;
    borrado:boolean;
    numero_alumnos:integer;
    alumnos:t_lista_alumno;
   end record;

   practica:t_practica;

   type t_array_practicas is array (1..numero_practicas) of integer;
array_practicas_aprobados:t_array_practicas;
array_practicas_supmedia:t_array_practicas;

package fich_practicas is new Ada.Sequential_Io (t_practica);
       use fich_practicas;


  type t_lista_practicas is array (1..maximo_practicas) of t_practica;
  lista_practicas:t_lista_practicas;

  cuantas_practicas:integer:=0;


----------procedimientos para rellenar y guardar las practicas

procedure rellenar_practica (practica:in out t_practica;max_numero_alumno:integer) is

 contador_alumnos:integer;
 continue:character:='n';


 begin
  put ("introduzca numero de practica");
  get (practica.num_practica);
  put ("introduzca el objetivo de la practica");
  get (practica.objetivo);
  put ("introduzca la máxima puntuacion que se pueda obtener");
  get (practica.puntuacion_maxima);

  put ("cuantos alumnos hay matriculados en esta asignatura");
  get (practica.numero_alumnos);

 loop
 put ("introduzca nota del alumno:");
 get (practica.alumnos);

contador_alumnos:=contador_alumnos+1;

    put("desea continuar rellenando alumnos en esta practica s´´ or n)");
    new_line;
    get(continue);
   exit when (continue='n')or (contador_alumno= practica.numero_alumnos);
  end loop;


end rellenar_practica;


--guardar todas las practicas leidas al archivo
procedure guardar_practicas(practicas:in t_lista_practicas; cuantas:integer) is

file:File_Type;
i:integer;

begin

 i:=1;
 Open(file, out_File, "practicas.txt");

 loop
    if practica.borrado=false then
      guardar_practica (practicas(i), file);
    end if;
    i:=i+1;
    exit when (i=cuantas);
 end loop;

 close(file);

end guardar_practicas;








procedure guardar_practica (practica:in t_practica; file:File_Type) is

i:integer;

begin

 put (file, practica.num_practica);
 put (file, practica.objetivo);
 put (file, practica.puntuacion_maxima);
 put (file, practica.cuantos_alumnos);
 put (file, practica.borrado);
 put (file, practica.numero_alumnos);

 i:=1;
 loop
put (practica.lista_alumno(i));
   exit when (i=practica.cuantos_alumnos);
   i:=i+1;
 end loop;

end guardar_practica;

procedure mostrar_practica (practica:in t_practica);

--el parametro File indica un archivo ya abierto para escritura

----------procedimientos para mostrar practicas por pantalla

--lee todas las practicas leidas al archivo y las muestra por pantalla,el parametro cuantas
--es para actualizar la variable global cuantas_practicas.
procedure listar_practicas (practicas:in t_lista_practicas; cuantas:out integer) is

file:File_Type;
i:integer;

begin

 i:=1;
 Open (file, in_File, "practicas.txt");

 loop

  cargar_practica (practica(i), file);

  mostrar_practica (practica(i));

  i:=i+1;
  exit when (end_of_file(file));

 end loop;

 --actualizar cuantas practicas se leyeron del archivo
 cuantas := i-1;

 close (file);

end listar_practicas;






--lee del archivo file una practica
procedure cargar_practica (practica:out t_practica; file:File_Type) is

i:integer;

begin

 get (file, practica.num_practica);
 get (file, practica.objetivo);
 get (file, practica.puntuacion_maxima);
 get (file, practica.cuantos_alumnos);
 get (file, practica.borrado);
 get (file, practica.numero_alumnos);

 i:=1;
 loop
  get(practica.lista_alumno(i));
   exit when i=practica.numero_alumnos;
   i:=i+1;
 end loop;

end cargar_practica;




--muestra los datos por pantalla de un solo alumno





procedure mostrar_practica (practica:in t_practica) is

i:integer;


begin

 if (practica.borrado=true)then
return;
end if;
 put (practica.num_practica);
 put (practica.objetivo);
 put (practica.puntuacion_maxima);
 put (practica.numero_alumnos);

 i:=1;
 loop
  put(practica.lista_alumno(i));
   exit when (i=practica.numero_alumnos);
   i:=i+1;
 end loop;

end mostrar_practica;


procedure mayor_num_aprobados (practica: in t_practica;pract_mayor_numero_aprobados:in out integer;array_practicas:in out t_array_practicas;numero_practicas:integer) is

contador_aprobados:integer;
contador_alumno:integer;
i,j:integer;




begin
put("cuantas practicas hay:");
get(numero_practicas);

put("el numero de aprobados de la practica");
put(practica.numero);
put("es: ");

  loop

  loop

      if practica.alumno(i)>= 5 then

    contador_aprobados:=contador_aprobados+1;
    i:=i+1;

    put("desea continuar rellenando alumnos en esta practica s or n)");
    new_line;
    get(continue);
    end if;
   exit when (continue='n')or (contador_alumno= max_numero_alumno);

   contador_practicas:=contador_practicas+1;
   array_practicas(i):=contador_aprobados;
   exit when (contador_practicas=numero_practicas);

  end loop;

   end loop;

   loop

   practica_mayor_num_aprobados:=array_practicas(0);
   j:=j+1;

   if array_practicas(j) > practica_mayor_num_aprobados then

   practica_mayor_num_aprobados:=array_practicas(j);

   end if;

   exit when j=numero_practicas;

   end loop;
   put(practica_mayor_num_aprobados);

   end mayor_num_aprobados;


  procedure superior_media (practica:in t_practica;array_practicas_aprobados:in t_array_practicas;numero_practicas:integer;array_practicas_supmedia:in out t_array_practicas) is

   media_aprobados:integer;
   sumador_aprobados:integer;
   i:integer;
   begin

   loop

   sumador_aprobados:=sumador_aprobados+array_practicas_aprobados(i);

   exit when i=numero_practicas;


   media_aprobados:=sumador_aprobados/numero_practicas;


   if array_practicas_aprobados(i)>media_aprobados then

   array_practicas_supmedia(i):=array_practicas_aprobados (i);
   i:=i+1;

   else

  i:=i+1;

  end if;
  put(array_practicas_supmedia(i));

  end loop;
  end superior_media;



--------------------------------------------------------------------------



 continue:character:='n';


--PROCEDIMIENTO PRINCIPAL
begin

 loop
   --rellenamos las practicas de una en una junto con sus alumnos
   rellenar_practica (listar_practicas(cuantas_practicas+1),max_numero_alumno );

   put ("desea continuar rellenando Practicas. s or n)");
   new_line;
   get (continue);
   exit when (continue='n');

   cuantas_practicas:=cuantas_practicas+1;
 end loop;

 --guardar todas las practicas leidas al archivo
 guardar_practicas (lista_practicas, maximo_practicas);
 mayor_num_aprobados (practica,pract_mayor_numero_aprobados);
end practicas;

2
ADA / Re: Programa De Ada
« en: Lunes 7 de Abril de 2008, 09:37 »
No quiero que me hagan el programa si no que me ayuden a empezarlo diciendome como deberia empezar

Gracias

3
ADA / Programa De Ada
« en: Domingo 6 de Abril de 2008, 18:16 »
Hola!
necesito hacer un progrma que haga esto:

Diseñar y desarrollar un programa que permita mantener actualizada la información de las prácticas realizadas en la asignatura y las calificaciones de los alumnos que cursan la asignatura.
Para ello se disponen de los siguientes datos:
•   Número de práctica
•   Descripción de objetivos de cada práctica
•   Puntuación de cada práctica
•   Puntuación obtenida por los alumnos

Consideraciones:
1.- La información de cada práctica debe estar almacenada en un archivo plano. El programa debe permitir:
a. leer los datos almacenados para consultar las prácticas ya actualizadas
b. borrar prácticas almacenadas
c. incluir nuevas prácticas al archivo
2.- Por cada práctica se deben almacenar las calificaciones de los alumnos, según la lista de alumnos matriculados.
3.- La interfaz debe permitir ingresar los datos de las prácticas y para cada práctica las calificaciones de los alumnos.
4.- Se podrán realizar las siguientes preguntas:
a. estadísticas por prácticas, donde se podrá solicitar (1) práctica con mayor número de aprobados, (2) práctica con número de aprobados superior a la media.
b. estadística por cada práctica, donde se podrá solicitar (1) máxima nota obtenida, (2) media de las calificaciones de los alumnos para esa práctica.


no tengo ni idea de por donde cogerlo...si alguien me pudiese hechar un cable estaria muy agradecido.

Gracias!

Páginas: [1]