Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
practica 9 ejercicio 10
program HelloWorld; {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- CONST - Define las constantes para usar en tiempo de compilacion} const platos = 5; FIN = 'fin'; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- TYPE - Define los tipos creados por el usuario para usar en tiempo de compilacion} type // rango de platos rangoPlatos = 1 .. platos; // tipo nombre Tnombre = string[15]; // registro de clientes Tcliente = record nombre : Tnombre; apellido : Tnombre; codigo : integer; telefono : integer; domicilio : Tnombre; end; // registro de platos Tplato = record nombre : Tnombre; stock : integer; end; // registro de pedidos Tpedido = record codigo : integer; // codigo del cliente cantidad : integer; // stock plato : rangoPlatos; // codigo del plato end; // vector de platos Tvector = array [rangoPlatos] of Tplato; // lista de clientes Tlista= ^nodo; nodo = record datos : Tcliente; sig : Tlista; end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- VARIABLES GLOBALES - Define variables que se podran usar por todos los modulos de ser necesarias} //var {-----------------------------------------------------------------------------------------------------------------------} // lista {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure leerCliente(var c : Tcliente); begin readln(c.nombre); if (c.nombre <> FIN) then begin {aca solo se debe ingresar nombre,apellido y domicilio} readln(c.apellido); c.codigo := random(10)+1; c.telefono := random(9999); readln(c.domicilio); end; end; {----------------------------------------------------------------- } procedure agregarCliente(var l : Tlista; c : Tcliente); var nue : Tlista; begin new(nue); nue^.datos := c; nue^.sig := l; l := nue; end; {----------------------------------------------------------------- } procedure cargarLista(var l : Tlista); var c : Tcliente; begin leerCliente(c); while c.nombre <> FIN do begin agregarCliente(l,c); leerCliente(c); end; end; {----------------------------------------------------------------- } procedure imprimirCliente(c : Tcliente); begin writeln('nombre :',c.nombre); writeln('apellido: ',c.apellido); writeln('codigo: ',c.codigo); writeln('telefono: ',c.telefono); writeln('domicilio: ',c.domicilio); writeln('---------------------'); end; {----------------------------------------------------------------- } procedure imprimirLista(l : Tlista); begin writeln('---------------------'); while l <> nil do begin imprimirCliente(l^.datos); l := l^.sig; end; end; {----------------------------------------------------------------- } procedure liberarLista(var l : Tlista); var aux : Tlista; begin while l <> nil do begin aux := l^.sig; dispose(l); l := aux; end; end; {-----------------------------------------------------------------------------------------------------------------------} // vector {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure cargarVector(var v : Tvector); var i : rangoPlatos; begin for i := 1 to platos do begin readln(v[i].nombre); {aca solo se ingresan la cantidad de nombres segun la cantidad de platos} v[i].stock := random(14); end; end; {----------------------------------------------------------------- } procedure imprimirPlato(p : Tplato); begin writeln('nombre :' , p.nombre); writeln('stock disponible: ', p.stock); end; {----------------------------------------------------------------- } procedure imprimirVector(v : Tvector); var i : rangoPlatos; begin writeln('---------------------'); for i:=1 to platos do begin imprimirPlato(v[i]); writeln('---------------------'); end; end; {-----------------------------------------------------------------------------------------------------------------------} // agregado {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure espacio; begin writeln;writeln;writeln;writeln; writeln('--------------------------------------------------------------------------'); writeln;writeln;writeln;writeln; end; {-----------------------------------------------------------------------------------------------------------------------} // realizar pedidos {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure leerPedido(var p : Tpedido); begin readln(p.codigo);// codigo de cliente if p.codigo <> -1 then begin p.cantidad:= random(14)+1 ;//stock {el pedido se lee : codigo de cliente hasta que el mismo sea -1} p.plato := random(platos)+1;//codigo de plato end; end; {----------------------------------------------------------------- } procedure pedido(p : Tpedido; l : Tlista;var v : Tvector); begin while (l <> nil)and(l^.datos.codigo <> p.codigo) do l := l^.sig; if l <> nil then begin if (p.cantidad <= v[p.plato].stock) then begin v[p.plato].stock:=v[p.plato].stock-p.cantidad; writeln('el pedido se realizo con exito'); end else writeln('no hay suficiente stock disponible'); end else writeln('el cliente no está en la lista'); end; {----------------------------------------------------------------- } procedure cargarPedidos( l : Tlista; var v : Tvector); var p : Tpedido; begin leerPedido(p); while p.codigo <> -1 do begin pedido(p,l,v); writeln('---------------------'); leerPedido(p); end; end; {-----------------------------------------------------------------------------------------------------------------------} // informar {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- } procedure informar(v : Tvector); var i : rangoPlatos; begin writeln('codigo de los platos que no tienen mas stock ...'); for i:=1 to platos do if v[i].stock = 0 then writeln('-------',i :3); end; {-----------------------------------------------------------------------------------------------------------------------} {-----------------------------------------------------------------------------------------------------------------------} {----------------------------------------------------------------- PROGRAMA PRINCIPAL} var l : Tlista; v : Tvector; begin // cargas ........................ cargarLista(l); cargarVector(v); // impresiones ................... imprimirLista(l); espacio; imprimirVector(v);espacio; // pedidos........................ cargarPedidos(l,v);espacio; //informar........................ informar(v); end. {-----------------------------------------------------------------------------------------------------------------------}
run
|
edit
|
history
|
help
0
(p,q,r)
LISTNAME
Task
dsds
https://m.facebook.com/akansha.panchal.906?refid=12&ref=opera_speed_dial
practica 2 ejercicio 7
nested for loop a(ii)
[DE/GER] Caesar Chiffre (Entschlüsseln)
nomer2
Поиск совершенного числа