|
|
|
Ejercicio Pascal NO sale, a ver si me echais una mano me urge muchisimo |
|
Windows XP (5.1) 32b, Firefox 13.0.1 hola, soy una chica española que esta empezando con la programacion y estoy muy atascada, puedes ayudarme?son los ultimos jercicios pero ya no estoy atascada gracias se me pide defina un fichero binario en el que cada elemento del fichero sea de tipo producto. codifique un procedimiento (guarda_cesta) que guarda todos los productos de una cesta de la compra, que se pasa como parámetro, en un fichero cuyo nombre también se pasa como parámetro. tenga en cuenta que salvo el producto que ocupa la posición cero (que como ya veremos tiene un significado especial) todos los demás están en la cesta sólo si el campo en_cesta=true, si este campo es false no necesitamos, por tanto, guardar ese producto en el fichero. puede utilizar el apartado respuesta 1 para realizar sus comentarios. respuesta 1: 1. segunda cuestiÓn: codifique un procedimiento (recupera_cesta) que lea de un fichero de elementos de tipo producto, cuyo nombre se pasa como parámetro junto con otros que considere necesario, todos los productos que tenga almacenados y los guarde en una variable del tipo cesta que también se pasa como parámetro. asegúrese de que no se sobrepasarán los límites de la cesta intentando introducir más de tammaxcesta. puede utilizar el apartado respuesta 2 para realizar sus comentarios. respuesta 2: 2. tercera cuestiÓn: codifique un módulo principal en el que reutilizando los resultados de cuestiones y actividades anteriores (procedimientos de lectura y escritura de ficheros, presentación, modificación de datos de una cesta…), se muestre al usuario el menú y se ejecuten las acciones pertinentes a cada opción. tenga en cuenta que si el usuario elige: 1. abrir cesta de compra existente: se preguntará al usuario el nombre de la cesta (que será el nombre del fichero que la contiene). 2. comenzar cesta de compra nueva: se creará una cesta desde cero. 5. guardar cesta: se pedirá al usuario el nombre del fichero donde guardar la cesta. 6. pedir cesta: se mostrará la cesta actual. 7. salir del programa: se terminará la ejecución del programa. supongo que tengo que utilizar tipo_fichero = file of tipo_base; (* define un tipo de fichero de tipo_base *) assing reset rewrite. estas cosas por que es el ultimo tema y es lo que estoy dando pero no se como hacerlo te pego el codigo que tengo hasta ahora y el cual hay que reutilizar lo que proceda para hacer estos ejercicios supongo que algunas cosas de este codigo habria que quitarlas por que no sirven como el menu aqui el codigo {autor:almudena dorrego robles iniciacion a la programacion tema 8} program cestacompra; uses crt; const tammaxcesta = 3; type producto = record nombreproduct : string; numerounidadessolic : integer; preciounidad :real; en_cesta : boolean; end; tcesta= array [0.tammaxcesta] of producto; procedure lee_producto(var p:producto); {var, modificamos el registro, insertamos información} begin write('nombre del producto: '); readln(p.nombreproduct); write('numero de unidades solicitadas: '); readln(p.numerounidadessolic); write('precio por unidad: '); readln(p.preciounidad); p.en_cesta := true; end; procedure inicializa_cesta(cestacompra : tcesta); var i:integer; begin {empezamos en 1 porque el 0 está reservado.} for i:=1 to tammaxcesta do begin cestacompra [i]. en_cesta := false; cestacompra [i]. nombreproduct := ''; cestacompra [i]. numerounidadessolic := 0; cestacompra [i]. preciounidad := 0.0; end; end; procedure muestra_producto(var p:producto); begin writeln('nombre del producto: ', p.nombreproduct); writeln('numero de unidades: ', p.numerounidadessolic); writeln('precio de la unidad: ', p.preciounidad:0:2); writeln ('precio total: ',(p.numerounidadessolic * p.preciounidad):0:2); writeln; end; procedure mostrar_cesta(lacesta : tcesta); var i:integer; aux : integer; begin aux:= 0; for i := 1 to tammaxcesta do begin if (lacesta[i].en_cesta = true) then begin writeln('nombre: ',lacesta[i].nombreproduct); writeln ('unidades: ',lacesta[i].numerounidadessolic); writeln ('precio por unidad: ',lacesta[i].preciounidad:0:2); aux:= aux + 1; writeln; end; end; if aux = 0 then begin writeln ('la cesta esta vacia'); writeln; end; end; procedure rellenar_cesta(var lacesta: tcesta); var i:integer; begin for i:=1 to tammaxcesta do writeln('rellene el producto ', i, ' de su cesta:'); lee_producto(lacesta[i]); writeln; end; procedure muestracesta (lacesta : tcesta); var i: integer; begin for i := 1 to tammaxcesta do muestra_producto (lacesta[i]); end; function cuenta_productos(lacesta: tcesta):integer; var cantos:integer; i:integer; begin cantos:= 0; {iniciamos la cuenta a 0} for i:=1 to tammaxcesta do {recorremos la cesta} if (lacesta[i].en_cesta) then {si el producto i de la cesta c está en la cesta} cantos:= cantos + 1; {aumentamos la cuenta de productos en cesta en 1} cuenta_productos:= cantos; end; function busca_libre(lacesta: tcesta): integer; var i:integer; begin busca_libre:=0; for i := 1 to tammaxcesta do if (lacesta[i].en_cesta = false) then begin busca_libre:= i; end else writeln ('no hay ninguna posicion libre en la cesta'); end; procedure incluir_producto_en_cesta(var lacesta:tcesta); var i: integer; begin i:= 0; i:= busca_libre(lacesta); if (i 0 )then lee_producto (lacesta [i]) else begin writeln; writeln ('la cesta esta llena'); end; end; function busca_producto(lacesta:tcesta; nombreproduct:string):integer; var i:integer; begin for i:=1 to tammaxcesta do begin if (lacesta[i].nombreproduct = nombreproduct) then busca_producto:= i else busca_producto:= 0; end; end; procedure eliminar_producto_de_cesta(var lacesta:tcesta); var aproduct:string; posaux:integer; begin {leemos el nombre del producto} write('por favor, indique el nombre del producto a eliminar: '); readln(aproduct); {pos := 0; {inicializamos pos (aunque no hace falta aquí)}} posaux:= busca_producto(lacesta,aproduct); {buscamos el producto} {pos := 0; {inicializamos pos (aunque no hace falta aquí)} if posaux = 0 then {si lo encontramos} writeln ('producto no encontrado.');{c[pos].en_cesta := false {lo eliminamos} else begin lacesta[posaux].en_cesta:= false; writeln('producto numero: ',posaux,'encontrado y eliminado'); end; end; procedure modificar_producto(var lacesta:tcesta); var p: string; posaux:integer; change:integer; nuevonombre :string; nuevonumero : integer; nuevoprecio : real; begin {leemos el nombre del producto} write('por favor, indique el nombre del producto a modificar: '); readln(p); posaux:= busca_producto (lacesta , p); if posaux = 0 then writeln ('producto no encontrado') else begin writeln('introduzca el numero de campo que quiere modificar'); writeln('1. modificar el nombre.'); writeln('2. modificar el numero de unidades.'); writeln('3. modificar el precio por unidad.'); readln(change); writeln; if (change = 1) then begin writeln ('que nombre quiere poner por: ', lacesta [posaux].nombreproduct); readln (nuevonombre); lacesta [posaux].nombreproduct:= nuevonombre; end else if (change = 2) then begin writeln ('que numero de unidades desea: (antes:' ,lacesta[posaux].numerounidadessolic,')'); readln (nuevonumero); lacesta [posaux].numerounidadessolic := nuevonumero; end else if (change = 3) then begin writeln ('que precio nuevo desea: (antes:' ,lacesta[posaux].preciounidad:0:2,')'); readln (nuevoprecio); lacesta [posaux].preciounidad := nuevoprecio; end; end; end; var lacesta: tcesta; option: integer; begin option:= 0; inicializa_cesta(lacesta); {inicializamos la cesta} repeat {menú del programa} writeln('a. anhadir producto de la cesta.'); writeln('b. eliminar producto de la cesta.'); writeln('c. mostrar cesta.'); writeln('d. modificar productos de la cesta.'); writeln('e. contar productos de la cesta.'); writeln('f. salir del programa.'); readln(option); case opción of a : begin clrscr; incluir_producto_en_cesta (lacesta); writeln; end; b: begin clrscr; eliminar_producto (lacesta); writeln; end; c: begin clrscr; mostrar_cesta (lacesta); writeln; end; d: begin clrscr; modificar_producto (lacesta); writeln; end; e: begin clrscr; writeln; writeln ('la cesta contiene: ',cuenta_productos (lacesta),' productos'); writeln; end; f: begin clrscr; writeln ('pulse cualquier tecla para salir'); readln; end; end; until opción = 6; end. gracias |
#1 Godmol (44.456 Posts) - 15/11/2012 13:15:48 | ||
Hola laura05, normalmente cuando a un alumno le mandan un ejercicio es porque se supone que debe tener el conocimiento suficiente como para resolverlo, nosotros estamos aquí para ayudar a la gente que tiene problemas con sus equipo, no para resolver tareas escolares.
Espero que comprendas que debemos cerrar tu consulta y rogarte que no realices más preguntas de este tipo en el futuro Salu2 Firma No escatimes en explicaciones, cuantos más datos proporciones mejor, piensa que si fuera adivino no estaría leyendo mensajes, estaría en el Caribe tirado al sol en una playa | ||
Bajar - Subir |
Temas relacionados: |
Me urge y les agradeceré muchisimo.... | |
Intel, window 7 tengo mi impresora multifuncional epson tx210, al imprimir me sale desconfigurada la impresion. al darle vista preliminar si mira normal pero ya en la hoja impresa, sale mas abajo y a un lado el izquierdo para ser mas exacto. esta desconfigurada y no se como configurarla ya desinstale el programa dos veces y sigo con el mismo problema que me lo tira diferente a como se mira en la pantalla de mi monitor. muchas gracias y ojala que si pueden responderme. ... | |
Problema ejercicio factusol no corresponde ejercicio tpvsol | |
Hola, he abierto el nuevo ejercicio 2015 en factusol, pero el TPVsol me sigue apareciendo el ejercicio anterior del 2014, con lo cual no se me descuenta el stock, no puedo generar facturas, es como si estuvieran desvinculados los programas. He traspasado la información del ejercicio 2014 al 2015, pero todo lo que hago nuevo en TPVsol no aparece ejecutado en el factusol ¿alguien sabe como puedo solucionarlo? Windows 7 (6.1) 32b, Chrome 39.0. ... | |
Quiero comprar un PC Gaming, ¿me echáis una manita? | |
Windows 7 64 Bits i5-2450M 2,5 GHz 4 GBs de RAM Nvidia Geforce 610M - 2 GBs ¡Muy buenas chicos! Voy a vender mi portátil (ASUS A53S, tiene un i5 2450M de cuatro núcleos a 2,5 GHz cada uno. 4 GBs de RAM y una Nvidia Geforce 610M de 2GBs de dedicados) para comprar un sobremesa (¿creéis que hago bien?). Obviamente, lo voy a utilizar sobre todo para videojuegos, también lo usaré para grabaciones y edición de vídeo, ya que soy actor de voz, aunque con un PC Gaming sé de sobra que cualquier programa tanto de edición de vídeo como de audio fu... | |
Programa en pascal de dos matrices | |
Windows Vista (6.0) 32b, Chrome 15.0 neecesito ayuda de bien y todoo!!!! es urgente mis pana ayúdenme que me va a quedar la materia de programacion!! por favor es una programa osea un ejemplo yo lo lo paso ustedes nme lo hacen ... | |
Aplicar el metodo de biseccion en pascal | |
Me gustaria que me ayudaran con un programa que me mandaron hacer en pascal en lazarus aplicando el metodso de biseccion de las funciones: x^5+4x^2-22 en el intervalo 0 y 2 su sexta iteracion, y la ltra es sex+cos(1+x^2) en el intervalo cerrado 2pi/3, pi su tercera iteracion. este es mi codigo program metododebiseccion; uses crt,wincrt,math,dos; var op:integer; funcion1:real; xn:real; j:integer; raiz:real; function resultado(a,b:real):real; var aux:real; begin resultado:=a*a*a*a*a+4*sqr(a)-22; aux:=resultado; r... | |
Subir |
Foros: |
|