elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  procedimiento para dar de baja un registro en Pascal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: procedimiento para dar de baja un registro en Pascal  (Leído 4,850 veces)
manu3742

Desconectado Desconectado

Mensajes: 20


Ver Perfil
procedimiento para dar de baja un registro en Pascal
« en: 16 Abril 2011, 13:54 pm »

Hola de nuevo,
Estoy acabando el programa final de curso. Tengo por último que hacer un procedimiento para dar de baja y modificar un registro.  Me dais pistas de como hacerlo?

saludos


En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: procedimiento para dar de baja un registro en Pascal
« Respuesta #1 en: 16 Abril 2011, 14:41 pm »

Siempre haces preguntas de este tipo:
http://foro.elhacker.net/programacion_general/como_cambiar_registro_pascal-t323895.0.html

No especificas que método usar para almacenar los registros, ni pones nada de código. Aún encima ni agradeces que te contesten.


En línea

manu3742

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: procedimiento para dar de baja un registro en Pascal
« Respuesta #2 en: 16 Abril 2011, 15:10 pm »

Si que lo agradezco lo que pasa es que estoy haciendo un curso sobre Pascal desde el inicio puro y duro y no de Delhpi. siempre se me contesta con este último. Con lo que la ayuda es nula. de todas formas te pongo el código para que veas mejor pues tendrás muchos mas conocimientos que yo como hacerlo


Código
  1.  


PROGRAM Bibliotecas;

(* Tamaño de cada registro que se pide *)

CONST

   TAMMAXI            = 40;
   TAMBIBLIOTECA     = 5;
   
TYPE

(* registro anidado que define las características de cada libro *)

   
   Tprestado = record
      
      nom_apellidos : string [TAMMAXI];
      email         : string [TAMMAXI];
      fecha        : char;
      end;
   
   
   Tlibro = record
         datos  : Tprestado;
         codigo : integer;
         titulo : string [TAMMAXI];
         autor  : string [TAMMAXI];
         tema   : string [TAMMAXI];
         precio : integer;
         alta   : boolean;
      prestado   : boolean;
         
      
         end;

   
   
(* -- TABLA SOBRE LA QUE VAMOS A TRABAJAR EN EL PROYECTO BIBLIOTECA --*)

   Tbiblioteca = array[1..TAMBIBLIOTECA] of Tlibro;
      Tfichero = file of Tlibro;
(*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)   
(*!!!!!!!!!!!!!!!! FUNCIONES Y PROCEDIMIENTOS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)
(*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)   

 (* -- LEE DEL TECLADO TODA LA INFORMACIÓN DE UN LIBRO QUE SE LE PASA--*)

 PROCEDURE lee_libro( var libro: Tlibro);
 
 begin
 
   
   writeln;
   writeln('Codigo: ');
   readln(libro.codigo);
   writeln('Titulo: ');
   readln(libro.titulo);
   writeln('Autor: ');
   readln(libro.autor);
   writeln('Tema: ');
   readln(libro.tema);
   writeln('Precio: ');
   readln(libro.precio);
   writeln;
   
end;

(* PRESENTAR LISTADOS DE LA BIBLIOTECA *)


PROCEDURE imprime_libro(libro: Tlibro); 

begin
                                         
      writeln('--------------------------------------');
      writeln('LISTADO POR LIBRO');
      writeln('--------------------------------------');
      
      writeln('Codigo : ', libro.codigo);
      writeln('Titulo : ', libro.titulo);
      writeln('Autor : ' , libro.autor);
      writeln('Tema : ', libro.tema);
      writeln('Precio : ',libro.precio);
        writeln;
      writeln('--------------------------------------');
   
end;

PROCEDURE hacer_prestamo(var prestado: Tprestado);

begin

   writeln;
   writeln('------------------------------------');
   writeln('INTRODUCIR DATOS PRESTAMO BIBLIOTECA');
   writeln('------------------------------------');
   writeln('Introducir Nombre y Apellidos: ');
   readln(prestado.nom_apellidos);
   writeln('Email: ');
   readln(prestado.email);
   writeln('Fecha del Prestamo: ');
   readln(prestado.fecha);
   writeln;
   
end;

PROCEDURE imprime_prestados(prestado:Tprestado; longitud: integer);

var

   i:  integer;
   
begin

for i:= 1 to longitud do;

   begin
   
      writeln('----------------------------------------');
      writeln('-----LISTADO DE LIBROS PRESTADOS--------');
      writeln('----------------------------------------');
      
      hacer_prestamo(prestado);
      
   end;
   
end;

(* -- CON ESTE PROCEDIMIENTO PRETENDO BUSCAR Y MODIFICAR SU ESTADO DE ALTA, BAJA O MODIFICAR --*)

PROCEDURE baja_modificacion( biblioteca: Tbiblioteca; longitud: integer; buscado: integer);

var

       i  : integer;
encontrado: Boolean;

begin

encontrado:= false;

for i:= 1 to longitud do

   begin
   
      if biblioteca.codigo = buscado then begin
      imprime_libro(biblioteca);
      encontrado:= true;
      end;
   
   end;
      
   begin
   
      if encontrado = false then begin
      lee_libro(biblioteca);
      end;
      
   end;


end;

(* -- PENDIENTE DE REALIZAR --*)

(* PROCEDURE baja_libro( var libro: Tlibro; longintud: integer);

begin


end; *)

(* -- PENDIENTE DE REALIZAR --*)

(*procedure modificar_datos(var prestado: Tprestado; longitud:integer);

begin



end;*)



(* lISTADOS DE TODOS LOS LIBROS *)

PROCEDURE imprime_libros(biblioteca: Tbiblioteca; longitud: integer);

var

i: integer;

begin

for i:= 1 to longitud do

   begin

      writeln('--------------------------------------');
      writeln('LISTADO DE TODOS LOS LIBROS BIBLIOTECA');
      writeln('--------------------------------------');
      
      imprime_libro(biblioteca);
   
   end;
   
end;



(* FUNCION QUE DEVUELVE EL VALOR TOTAL DE LA COLECCION DE LA BIBLIOTECA *)

FUNCTION suma_coleccion(biblioteca: Tbiblioteca; longitud: integer): integer;

var

i: integer;
suma: integer;

begin

suma:= 0;

for i:= 1 to longitud do

   begin
   
      suma:= suma + biblioteca.precio;
      
      suma:=suma_coleccion;
      
   end;
   
end;

(* FUNCIÓN QUE DEVUELVE VALOR MÁXIMO DE LA COLECCION DE LA BIBLIOTECA *)

FUNCTION Maximo(biblioteca: Tbiblioteca; longitud: integer): integer;

var

i: integer;
max: integer;

begin

max:= 0;

for i:= 1 to longitud do

   begin
   
      if max < biblioteca.precio then begin
         
         max:= biblioteca.precio;
      
         Maximo:= max;
      end;   
   
   end;
   
end;

(* FUNCION QUE DEVUELVE VALOR MÍNIMO DE LA COLECCION DE LA BIBLIOTECA *)

FUNCTION Minimo(biblioteca: Tbiblioteca; longitud: integer): real;

var

i: integer;
min: integer;

begin

min:= 0;

for i:= 1 to longitud do

   begin
   
      if min > biblioteca.precio then
      
      (*min:= biblioteca.precio;*)
      
      Minimo:= min;
   
   end;
   
end;

(* FUNCION QUE DEVUELVE EL VALOR MEDIO DE LA COLECCION DE LA BIBLIOTECA *)

FUNCTION Media(biblioteca: Tbiblioteca; longitud: integer): real;

var

i: integer;
suma_coleccion: integer;

begin

suma_coleccion:= 0;
   
for i:=  1 to longitud do
   
      begin
      
         suma_coleccion:= suma_coleccion + biblioteca.precio;
         Media:= suma_coleccion/1.0+longitud;
      
      end;
      
end;

(*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)   
(*!!!!!!!!!!!!!!!!    Funciones de ficheros   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)
(*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)   

(*-- ALMACENA DATOS LEIDOS DE UN FICHERO --*)
 
PROCEDURE graba_fichero(nombre: string; var biblioteca: Tbiblioteca; longitud: integer);
Var
  i : integer;
  fichero : Tfichero;
Begin   
  assign(fichero, nombre);
   rewrite(fichero);

for i:= 1 to longitud do
      write(fichero, biblioteca);
      
   close(fichero);
End;

(*-- LEE DATOS DEL FICHERO --*)

PROCEDURE lee_fichero(nombre: string; var biblioteca: Tbiblioteca; longitud: integer);

Var
     i : integer;
fichero : Tfichero;

Begin   
  i := 0;
   
   assign(fichero, nombre);
   reset(fichero);
   
    while ( not(eof(fichero)) AND (i<TAMBIBLIOTECA) ) do begin
    i := i+1;      
    read(fichero, biblioteca);
   
   end;
      
   close(fichero);

   
End;

(*-- FUNCIÓN QUE PRESENTA MENÚ Y DEVUELVE OPCIÓN ELEGIDA --*)

FUNCTION Menu: INTEGER;

VAR

opc: integer;

BEGIN

   repeat
   
      writeln('-----------------------------');
      writeln('MENU DE GESTION DE BIBLIOTECA');
      writeln('-----------------------------');
      writeln;
      writeln('1. ALTA DE LIBRO');
      writeln('2. BAJA DE LIBRO');
      writeln('3. DATOS DE PRESTAMO');
      writeln('4. MODIFICACION DE DATOS');
      writeln('5. GUARDAR DATOS EN FICHEROS');
      writeln('6. LECTURA DE DATOS DE FICHERO');
      writeln('7. PRESENTACION DE LISTADO DE BIBLIOTECA');
            
      writeln;
      writeln('8. SALIR');
      writeln('OPCION:  ');
      readln(opc);
       until ( (opc>=1) and (opc <=7) or (opc=8)    );

 Menu := opc;
End;   

(*--  FUNCIÓN QUE PRESENTA UN SUBMENU DE LA OPCION 6 DEL MENÚ PRINCIPAL Y DEVUELVE LA OPCION ELEGIDA --*)

FUNCTION submenu: INTEGER;

VAR

opc1: integer;

BEGIN

   repeat
   
      writeln('------------------------------------------');
      writeln('MENU PRESENTACION DE LISTADO DE BIBLIOTECA');
      writeln('------------------------------------------');
      writeln;
      writeln('9. LISTADO DE TODOS LOS LIBROS DE LA BIBLIOTECA');
      writeln('10. LISTADO DE LIBROS PRESTADOS');
      writeln('11. LISTADO DE PRECIOS MAXIMOS, MINIMOS, LA MEDIA Y EL VALOR TOTAL DE LA COLECCION');
      writeln;
      writeln('12. VOLVER MENU PRINCIPAL');
      writeln('OPCION: ');
      readln(opc1);
      until ( (opc1>=9) and (opc1<=12) );

submenu:= opc1;

END;

(*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)   
(*!!!!!!!!!!!!!!!!    VARIABLES GLOBALES           !!!!!!!!!!!!!!!!!!!!!!!!*)
(*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)      
VAR

libro     : Tlibro;
prestado  : Tprestado;f
biblioteca: Tbiblioteca;
opc        : integer;
opc1      : integer;
nombre    : string;      
buscado   : integer;
   
(*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)   
(*!!!!!!!!!!!!!!!!    PROGRAMA PRINCIPAL          !!!!!!!!!!!!!!!!!!!!!!!!!!!*)
(*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*)   

BEGIN

   repeat
   
      opc:= Menu;
      
      case opc of
      
         1: lee_libro(libro);
         2: begin
            writeln('Introducir codigo: ');
            readln(buscado);   
            baja_modificacion(biblioteca, TAMBIBLIOTECA, buscado);
            end;   
         3: hacer_prestamo(prestado);
         4: baja_modificacion(biblioteca, TAMBIBLIOTECA, buscado);
         5: begin
            writeln('Introduzca el nombre del fichero de datos: ');
            readln(nombre);
            graba_fichero(nombre, biblioteca, TAMBIBLIOTECA); 
            end;
         6: begin
            writeln('Introduzca el nombre del fichero: ');
            readln(nombre);
            lee_fichero(nombre, biblioteca, TAMBIBLIOTECA);
            end;
         7: begin
            opc1:=submenu;
            end;
      end;
   until(opc=8);
   
   repeat
      opc1:= Submenu;
      
      case opc1 of
      
         9: imprime_libros(biblioteca, TAMBIBLIOTECA);
         10: imprime_prestados(prestado, TAMBIBLIOTECA);
         11: begin
            writeln('--------------------------------------------------------------');
            writeln('LISTADO DE PRECIOS MAXIMOS, MINIMOS, LA MEDIA Y EL VALOR TOTAL');
            writeln('--------------------------------------------------------------');
            writeln('Valor máximo: ');
            maximo(biblioteca, TAMBIBLIOTECA);
            writeln('Valor mínimo: ');
            minimo(biblioteca, TAMBIBLIOTECA);
            writeln('Valor medio: ');
            media(biblioteca, TAMBIBLIOTECA);
            writeln('Valor total Biblioteca');
            suma_coleccion(biblioteca, TAMBIBLIOTECA);
            end;
         12: begin
            opc:= menu;
            end;(* ME DA ERROR *)
       end;
   until(opc1=12);
END.
En línea

manu3742

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: procedimiento para dar de baja un registro en Pascal
« Respuesta #3 en: 20 Abril 2011, 13:06 pm »

lee y veras que doy las gracias por anticipado
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda procedimiento Pascal
Programación General
manu3742 3 2,833 Último mensaje 20 Abril 2011, 17:48 pm
por manu3742
AYUDA.PROCEDIMIENTO PARA DAR DE ALTA. PASCAL
Programación General
manu3742 3 4,783 Último mensaje 25 Abril 2011, 17:44 pm
por d(-_-)b
Pascal para Linux
GNU/Linux
M33RK4T 2 2,543 Último mensaje 19 Mayo 2012, 11:07 am
por Seaworth
Busqueda de Registro con Procedimiento Almacenado en Sql Server
Programación Visual Basic
hamiltonbl 1 2,389 Último mensaje 18 Agosto 2015, 04:36 am
por ThunderCls
España registró en 2018 la cifra más baja de nacimientos en 20 años
Foro Libre
Machacador 1 1,590 Último mensaje 11 Diciembre 2019, 21:14 pm
por B€T€B€
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines