|
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 - tomas_sauron
26
« en: Lunes 23 de Mayo de 2011, 03:17 »
hola creo q lo q esta mal es la part recursiva o sea al programa vos le pones if (n>1){ condiciones } deberia ir un else { condiciones } ya q nada le impid al programa q c siga llamando hasta q n valga lo k sea x ejemplo corrri tu programa en eclipse con el debug y m dic q n x lo menos llega a valer -280 un ejemplo d recursividad es el factorial si n =0 entonces n!=1 sino si n>=1 entonces n!=(n-1)!.n y creo es mejor si trabajas con vectores pasarle la primera posicion y la ultima y preguntar las condiciones en base a esas posiciones bah yo lo hacia asi m andaba noc si m expliq bien sino pregunta d vuelta !!! saludos!! PD: usas eclipse ?? o en bloc de notas ???
27
« en: Lunes 16 de Mayo de 2011, 20:54 »
si entiendo gracias !!
28
« en: Lunes 16 de Mayo de 2011, 20:11 »
sisi eso es lo q llevo hecho hasta ahora pero qeria sabr si hay una manera noc un poco mas eficaz o si algun libro q hable d este tema del correcto uso si hay muchos administradores noc si m explico ?? igual gracias !!!
29
« en: Lunes 16 de Mayo de 2011, 05:33 »
hola gnt !! estoy leyendo sobre java web la part d srvlts y jsp, y m surge una duda com administrar prmisos de ususari o yo tngo hecha una pagina hecha q muestra datos de un club y los modifica da d alta a nuevos socios y da bajas tmb y qeriia poner restricciones a los usuarios normales para q solo vean sus datos personales y no podr modificarlos y las modificaciones las hagan los administradores del club pnc en darles contrasenia a los administradores para q se registren d esa manera para q en el posterior logueo un metodo consult en la base d datos en una tabla d id d administradores para asignarle el permiso correspondiente mi duda es si hay alquien sab si hay una manera mas eficas y si estoy bien encaminado dsd ya muchas gracias !!!
30
« en: Sábado 14 de Mayo de 2011, 04:39 »
hola noc si resolvist tu duda (supongo q si x la fecha del mensaje jeje pero igual ) si qeres mostrar un List<> en un jsp dbs simplemente pasarle una lista y recorrerlo con un forEach en el jsp y dntro dl forEach acs lista.nombre por ejemplo dond nombre s el atributo d tu clase dominio espero no sea tarde y t sirva saludos!!
31
« en: Martes 10 de Mayo de 2011, 02:37 »
alguien sabe como mostrar en un jsp una lista de datos tomados de una base de datos y almacenados en un arraylist ???? la cosa seria guardar los datos de socios en un array list package GimnasioWeb; import java.util.*; public class Socio { private int Id; private double Cuota; private double Saldo; private Membrecia unaMembrecia; private List<Actividad>Actividades; private int ActAnotado; private boolean seAgrego=false;
donde Membrecia es un objeto de tipo membrecia ,y actividaddes tambien el probloema se me presenta en sacar los datos d membrecia y actividades q estan dntro d socio <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <table border="2"> <c:forEach var ="current" items="${lista}"> <tr> <td> <b> <c:out value="${current.nombre }"/><c:out value=" "/><c:out value="${current.apellido }"/><c:out value=" "/><c:out value="${current.cuota }"/><c:out value=" "/><c:out value="${current.saldo }"/><c:out value=" "/><c:out value="${current.id }"/> </b> </td> </tr> </c:forEach> </table> </body> </html>
este es el jsp graciaas d antemano !!!!!!!
32
« en: Lunes 9 de Mayo de 2011, 04:59 »
ahhhhhhhh si yo tmb soi est udiant pero todavia no m dan java (lo toi leyendo x mi cuenta)rec en en 3 bue yo ic una agenda en java asi media basica pero anda usa archivos si qeres te la paso y t fijas ahi noc si t servira por ejemplo un boton q tngo es asi private void BtnGuardarActionPerformed (java. awt. event. ActionEvent evt ) { Ciudad = txtCiudad.getText(); nom = txtnom.getText(); ape = txtape.getText(); tel = txttel.getText(); cel = txtcel.getText(); mail = txtmail.getText(); dir = txtdir.getText(); try { crearArch(nom); guardarArch(nom, ape, mail, dir,tel,cel,Ciudad); Logger.getLogger(pruebClass.class.getName()).log(Level.SEVERE, null, ex); } txtnom.setText(""); txtape.setText(""); txttel.setText(""); txtcel.setText(""); txtmail.setText(""); txtdir.setText(""); txtCiudad.setText(""); this.dispose(); }
33
« en: Lunes 9 de Mayo de 2011, 04:36 »
cual es el problema ?? y xq no lo acs con netbeans ??
34
« en: Jueves 28 de Abril de 2011, 06:40 »
Disculpa Matias la verdad te contest rapido y solo vi que faltaba una llave pero tenias dos errores uno era la falta de la llave y el otro es hacer un archivo .java con dos clases publicas lo q tenes q hacer es o bien crear una clase publica y la otra no o lo mejor es hacer un .java con una sola clase. por ejemplo si hablamos de venta de ropas ,podes hacer un archivo Shirt.java ,Pant.java ,Pullover.java donde cada archivo posee un public class Shirt ,public class Pant ,public class Pullover respectivamente
con sus metodos correspondientes y ademas vas a tener un archivo VentaTest.java que es el que va a contener el main acordate que cuando hablas de objetos se trata de individualizar las cosas o sea tenes una camisa un pantalon y un pullover por eso es conveniente hacer clases separadas que representen cada objeto que a vos t sea importante en el problema q trates de resolver, otra cosa cuando el compilador te tira reached end of file while parsing } t seniala la llave !!,despues si le colocas la llave q falta t dice class Shirt is public ,should be declared in a file named Shirt.java te dice q declares la clase Shirt en otro .java
en cuanto a los otros tres errores estas declarando un objeto y luego lo inicializas con el tipo de dato dl objeto tiene razon el amigo Shadow pero eso en el primer archivo q publicast no estaba tendrias q separar repito el PRIMER archivo q publicaste (donde estan las dos clases juntas ),en Shirt.java y ShirtTest.java y añadir la llave en Shirt.java y ya esta bueno espero avrt sido d ayuda y claro!!, sino segui preguntando SUERTE y SALUDOS!!!!
35
« en: Miércoles 27 de Abril de 2011, 17:43 »
ni idea jaja parece q no ai posibilidad d retractarse jaja
36
« en: Miércoles 27 de Abril de 2011, 14:55 »
esta perdonado senior jaja
37
« en: Miércoles 27 de Abril de 2011, 14:48 »
una pavada error claasico t falta una llave suert !!
38
« en: Sábado 23 de Abril de 2011, 00:57 »
Hola gente alguien sab como hacer para al clickear 1 boton en 1 frame q llame a otro frame ?? osea para x ejemplo en una agenda al pinchar sobre un contacto y clickear el boton q muestre en otro frame los datos del contacto si contstan muchas gracias !!!!!
39
« en: Domingo 17 de Abril de 2011, 01:45 »
hola yo soy medio novato noc si t servira mi respuesta.....pero estuv probando y estoy usando ArrayList para guardar en un archivo (q es parecido a un vector) asi q proba d usar la serializacion q t dja guardar objetos en un archivo suerte!!
40
« en: Miércoles 13 de Abril de 2011, 07:06 »
hola gente!!! estoy empezando en java hace un mes y algo mas y leyendo un poco logre llegar hasta archivos en mi entendimiento pero m falta mucho todavia.Bueno la cosa es esta , tengo problemas con este codigo estoy intentando a hacer una especie d agenda pero lo unico q m importa ees ver el funcionamiento de archivos y ArrayList y su relacion el programa esta hecho en netbeans 6.9 y el problema salta cuando quiero leer el archivo paara mostrar los datos al guardar no hay problema el error qu tira es en tiempo d ejecucion y es est [color=#FF0000Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException] aqui el codigo del boton q abre los datos private void btnSavePerson1ActionPerformed (java. awt. event. ActionEvent evt ) { try{ try { Logger.getLogger(Formulario.class.getName()).log(Level.SEVERE, null, ex); } fileIn.close(); Datos agenda=book.get(i-1); nom=agenda.getNombre(); ape=agenda.getApellido(); dir=agenda.getDireccion(); mail=agenda.getEmail(); tel=agenda.getTelefono(); txtName1.setText(nom); txtApe1.setText(ape); txtDire1.setText(dir); txtmail1.setText(mail); txtTel1.setText(""+tel); JOptionPane. showMessageDialog(this, "Error!! No se encuentra archivo"); } }
y el boton qu guarda es este private void btnSavePersonActionPerformed (java. awt. event. ActionEvent evt ) { ape=txtApe.getText(); nom=txtName.getText(); dir=txtDire.getText(); mail=txtmail.getText(); tel =Integer. parseInt(txtTel. getText()); Datos agenda = new Datos(nom,ape,mail,dir,tel); book.add(i,agenda); i++; txtApe.setText(""); txtName.setText(""); txtDire.setText(""); txtmail.setText(""); txtTel.setText(""); try{ fileOut.writeObject(agenda); fileOut.close(); JOptionPane. showMessageDialog(this, "Error!! No se encuentra archivo"); } }
PD: hay una cclase Datos q possee todos los geters y seters con los atributos nombre apellido direccion email y telefono si alguien m puede contestar se lo agradecere mucho !!!!!!!!!!!! [/color]
41
« en: Martes 8 de Marzo de 2011, 15:01 »
bueno gracias querido por la ayuda!!...igualmente por lo poco q se y lei mas de una clase no puede ser public,ademas static debe ser el metodo q posea algo dentro d si,ojo! esto es lo q me arrojo el compilador (los errores),lo q si es cierto un constructor no devuelve valor alguno entonces a ver si me ayudas con esta duda como hago para comunicarme entre clases de manera statica ???..muchas gracioas amigo!!
42
« en: Martes 8 de Marzo de 2011, 05:31 »
hola gente de java soy muy nuevo en java es mas empece anoche leyendo un manual q encontre en la web,bueno lo q mas me importa es si me pueden ayudar a entender el pasaje por referencia de java ya q yo conozco el de pascal y no son iguales,intente implementar el pase de parametros por referencia con un clasico como el de los numeros primos pero no quedo bien al compilar sale primos_ppal.java:27:cannot find symbol smbol:constructor es el error de estar mal hecha la referencia supongo bueno si alguien me puede ayudar se agradece de antemano !! class primos { boolean esPrimo; public boolean primos(int n){ int k=2; esPrimo=true; while((k<=n-1) && (esPrimo)){ if((n%k)==0) esPrimo=false; else esPrimo=true; k++; } return(esPrimo); } } class primos_ppal { public static void main (String args []) { primos var; var=new primos(3); } }
pd:una funcion q devuelve un booleano puede ser static????
43
« en: Domingo 13 de Febrero de 2011, 01:41 »
gente necesito ayuda con este programa de pascal...se trata de una aplicacion para solicitudes de autos este es el enunciado estoy practicando para mi final de programacion 1 si alguien me pued ayudar muchas gracias de antemano.....hice casi todo el programa pero no logro q ejecute despues de los ingresos de los datos y ya noc q mas hacer .- Desarrollar un algoritmo que permita la actualización de un archivo de solicitudes de planes de ahorro para compra de automóviles. Se cuenta con un archivo secuencial ordenado en forma ascendente por el campo NRO-SOLICITUD donde están registradas todas las solicitudes vigentes. Los registros de este archivo tienen la siguiente estructura: REGISTRO-SOLICITUD NRO-SOLICITUD entero TITULAR cadena de 40 caracteres MARCA entero (1 a 4) MODELO entero (1 a 3) COLOR entero (1 a 8) Y un archivo también secuencial que informa las altas a procesar. Este archivo tiene la misma estructura de registros que el archivo de solicitudes y también está ordenado en forma ascendente por el campo NRO-SOLICITUD Se quiere generar un nuevo archivo de solicitudes resultado de efectuar las altas correspondientes. (Este archivo tendrá la misma estructura que el archivo de solicitudes.) Se podrán rechazar altas por nro. de solicitud ya existente o por valor inválido en marca, modelo o color. Se listará cada alta rechazada indicando la razón del rechazo. Al final del proceso se emitirá un informe indicando para cada marca, la cantidad de solicitudes existentes por modelo y color. También al final del proceso se indicará la cantidad de registros leídos en cada uno de los archivos de entrada, la cantidad de registros grabados en el archivo actualizado, la cantidad de altas rechazadas. program autos; uses crt; type tnum=integer; tregAlta=record nro:tnum; titular:string[40]; marca:tnum; modelo:tnum; color:tnum end; tregRech=record nro:tnum; titular:string[40]; motivo:string[20] end; tregMarca=record mod1M1,mod2M1,mod3M1:tnum; mod1M2,mod2M2,mod3M2:tnum; mod1M3,mod2M3,mod3M3:tnum; mod1M4,mod2M4,mod3M4:tnum; color1M1,color2M1,color3M1,color4M1,color5M1,color6M1,color7M1,color8M1:tnum; color1M2,color2M2,color3M2,color4M2,color5M2,color6M2,color7M2,color8M2:tnum; color1M3,color2M3,color3M3,color4M3,color5M3,color6M3,color7M3,color8M3:tnum; color1M4,color2M4,color3M4,color4M4,color5M4,color6M4,color7M4,color8M4:tnum; end; arAlta=file of tregAlta; arRech=file of tregRech; arMarca=file of tregMarca; var alta,solic,solic_n:arAlta; marca:arMarca;regSol,regAlta:tregAlta;motivo:arRech; regMarca:tregMarca;finSol,finAlta,finMarca,finmotivo:boolean; procedure ingAlta(var alta:arAlta;var regAlta:tregAlta); var tecla:char; begin assign(alta,'c:userstomasarch_pascalalta.dat'); rewrite(alta); writeln('ingresa datos de altas'); readln(tecla); while(tecla='s')do begin writeln('ingrese nro de solicitud');readln(regAlta.nro); writeln('ingrese titular');readln(regAlta.titular); writeln('ingrese marca');readln(regAlta.marca); writeln('ingrese modelo');readln(regAlta.modelo); writeln('ingrese color');readln(regAlta.color); write(alta,regAlta); writeln('ingresa mas datos(s/n)');readln(tecla) end; close(alta) end; procedure ingSol(var solic:arAlta;var regSol:tregAlta); var tecla:char; begin assign(solic,'c:userstomasarch_pascalsolic.dat'); rewrite(solic); writeln('ingresa datos de solicitud');readln(tecla); while(tecla='s')do begin writeln('ingrese nro de solicitud');readln(regsol.nro); writeln('ingrese titular');readln(regSol.titular); writeln('ingrese marca');readln(regSol.marca); writeln('ingrese modelo');readln(regSol.modelo); writeln('ingrese color');readln(regSol.color); write(solic,regSol); writeln('ingresa mas datos(s/n)');readln(tecla) end; close(solic) end; procedure leer_alta(var F:arAlta;var reg:tregAlta;var fin_alta:boolean); begin fin_alta:=eof(F); if not(fin_alta)then read(F,reg) else fin_alta:=true end; procedure leer_sol(var F:arAlta;var reg:tregAlta;var fin_sol:boolean); begin fin_sol:=eof(F); if not(fin_sol)then read(F,reg) else fin_sol:=true end; procedure actualizar(var alta,solic,solic_n:arAlta); var regAlta,regSol:tregAlta; begin assign(alta,'c:userstomasarch_pascalalta.dat'); assign(solic,'c:userstomasarch_pascalsolic.dat'); assign(solic,'c:userstomasarch_pascalsolic_n.dat'); reset(alta);reset(solic);rewrite(solic_n); leer_sol(solic,regSol,finsol);leer_alta(alta,regAlta,finAlta); while(not(finSol))and(not(finAlta))do begin if(regSol.nro=regAlta.nro)or(regAlta.marca>4)or(regalta.modelo>3)or(regAlta.color>8)then begin leer_sol(solic,regSol,finsol); leer_alta(alta,regAlta,finalta) end else if(regSol.nro<regAlta.nro)then begin write(solic_n,regSol); leer_sol(solic,regSol,finsol) end else if(regAlta.nro<regSol.nro)and(regAlta.marca<=4)and(regAlta.modelo<=3)and(regAlta.color<=8)then begin write(solic_n,regAlta); leer_alta(alta,regAlta,finalta) end end; close(solic);close(alta);close(solic_n) end; procedure motivo_x_rech(var solic,alta:arAlta;var motivo:arrech); var regAlta,regSol:tregalta; regrech:tregrech; begin assign(alta,'c:userstomasarch_pascalalta.dat'); assign(solic,'c:userstomasarch_pascalsolic.dat'); assign(motivo,'c:userstomasarch_pascalmotivo.dat'); reset(alta);reset(solic);rewrite(motivo); leer_sol(solic,regSol,finsol);leer_alta(alta,regAlta,finalta); while(not(finsol))and(not(finalta))do begin if(regSol.nro=regAlta.nro)then begin regrech.nro:=regAlta.nro; regrech.titular:=regAlta.titular; regrech.motivo:='solicitud existente'; write(motivo,regrech); leer_sol(solic,regsol,finsol);leer_alta(alta,regAlta,finalta) end else if(regAlta.marca>4)then begin regrech.nro:=regAlta.nro; regrech.titular:=regAlta.titular; regrech.motivo:='marca invalida'; write(motivo,regrech); leer_alta(alta,regAlta,finalta) end else if(regAlta.modelo>3)then begin regrech.nro:=regAlta.nro; regrech.titular:=regAlta.titular; regrech.motivo:='modelo invalida'; write(motivo,regrech); leer_alta(alta,regAlta,finalta) end else if(regAlta.color>8)then begin regrech.nro:=regAlta.nro; regrech.titular:=regAlta.titular; regrech.motivo:='color invalido'; write(motivo,regrech); leer_alta(alta,regAlta,finalta) end end; close(solic);close(alta);close(motivo) end; procedure armar_solic(var marca:arMarca;var solic_n:arAlta); var regSol:tregAlta; regMarca:tregMarca; begin assign(solic_n,'c:userstomasarchivos_pascalsolic_n.dat'); assign(marca,'c:userstomasarchivos_pascalmarca.dat'); reset(solic_n);rewrite(marca); with(regMarca)do begin mod1M1:=0;mod2M2:=0;mod3M3:=0;color1M1:=0;color2M1:=0; color3M1:=0;color4M1:=0;color5M1:=0;color6M1:=0;color7M1:=0; color8M1:=0;mod1M2:=0;mod2M2:=0;mod3M2:=0;color1M2:=0;color2M2:=0;color3M2:=0;color4M2:=0; color5M2:=0;color6M2:=0;color7M2:=0;color8M2:=0;mod1M3:=0;mod2M3:=0;mod3M3:=0;color1M3:=0; color2M3:=0;color3M3:=0;color4M3:=0;color5M3:=0;color6M3:=0;color7M3:=0;color8M3:=0; mod1M4:=0;mod2M4:=0;mod3M4:=0;color1M4:=0;color2M4:=0;color3M4:=0;color4M4:=0;color5M4:=0; color6M4:=0;color7M4:=0;color8M4:=0 end; leer_sol(solic_n,regSol,finSol); while(not finSol)do begin with(regMarca)do begin if(regSol.marca=1)then begin case(regSol.modelo)of 1:inc(mod1M1); 2:inc(mod2M1); 3:inc(mod3M1) end; case(regSol.color)of 1:inc(color1M1); 2:inc(color2M1); 3:inc(color3M1); 4:inc(color4M1); 5:inc(color5M1); 6:inc(color6M1); 7:inc(color7M1); 8:inc(color8M1) end; write(marca,regMarca); leer_sol(solic,regSol,finsol) end else if(regSol.marca=2)then begin case(regSol.modelo)of 1:inc(mod1M2); 2:inc(mod2M2); 3:inc(mod3M2) end; case(regSol.color)of 1:inc(color1M2); 2:inc(color2M2); 3:inc(color3M2); 4:inc(color4M2); 5:inc(color5M2); 6:inc(color6M2); 7:inc(color7M2); 8:inc(color8M2) end; write(marca,regMarca); leer_sol(solic_n,regSol,finsol) end else if(regSol.marca=3)then begin case(regSol.modelo)of 1:inc(mod1M3); 2:inc(mod2M3); 3:inc(mod3M3) end; case(regSol.color)of 1:inc(color1M3); 2:inc(color2M3); 3:inc(color3M3); 4:inc(color4M3); 5:inc(color5M3); 6:inc(color6M3); 7:inc(color7M3); 8:inc(color8M3) end; write(marca,regMarca); leer_sol(solic_n,regSol,finsol) end else if(regSol.marca=4)then begin case(regSol.modelo)of 1:inc(mod1M4); 2:inc(mod2M4); 3:inc(mod3M4) end; case(regSol.color)of 1:inc(color1M4); 2:inc(color2M4); 3:inc(color3M4); 4:inc(color4M4); 5:inc(color5M4); 6:inc(color6M4); 7:inc(color7M4); 8:inc(color8M4) end; write(marca,regMarca); leer_sol(solic_n,regSol,finsol) end end end; close(solic_n); close(marca) end; procedure leer_marca(var marca:arMarca;regMarca:tregMarca;fin:boolean); begin fin:=eof(marca); if(not(fin))then read(marca,regMarca) else fin:=true end; procedure leer_motivo(var motivo:arrech;regrech:tregrech;fin:boolean); begin fin:=eof(motivo); if(not(fin))then read(motivo,regrech) else fin:=true end; procedure mostrar_motivo(var motivo:arrech); var regrech:tregrech; begin assign(motivo,'c:userstomasarchivos_pascalmotivo.dat'); reset(motivo); leer_motivo(motivo,regrech,finmotivo); while(not(finmotivo))do begin writeln(regrech.nro:10,regrech.titular:10,regrech.motivo:10); leer_motivo(motivo,regrech,finmotivo) end; close(motivo) end; procedure mostrar_sol(var marca:arMarca); var regMarca:tregMarca; begin assign(marca,'c:userstomasarchivos_pascalmarca.dat'); reset(marca); leer_marca(marca,regMarca,finMarca); while(not(finMarca))do begin with(regMarca)do begin writeln('marca 1',mod1M1:10,mod2M1:10,mod3M1:10,'':19,color1M1:10,color2M1:10,color3M1:10,color4M1:10,color5M1:10,color6M1:10,color7M1:10,color8M1:10); writeln('marca 2',mod1M2:10,mod2M2:10,mod3M2:10,'':19,color1M2:10,color2M2:10,color3M2:10,color4M2:10,color5M2:10,color6M2:10,color7M2:10,color8M2:10); writeln('marca 3',mod1M3:10,mod2M3:10,mod3M3:10,'':19,color1M3:10,color2M3:10,color3M3:10,color4M3:10,color5M3:10,color6M3:10,color7M3:10,color8M3:10); writeln('marca 4',mod1M4:10,mod2M4:10,mod3M4:10,'':19,color1M4:10,color2M4:10,color3M4:10,color4M4:10,color5M4:10,color6M4:10,color7M4:10,color8M4:10); end; leer_marca(marca,regMarca,finMarca) end; end; begin ingAlta(alta,regAlta); ingSol(solic,regSol); actualizar(alta,solic,solic_n); motivo_x_rech(solic,alta,motivo); armar_solic(marca,solic_n); mostrar_motivo(motivo); mostrar_sol(marca); readkey end.
44
« en: Sábado 5 de Febrero de 2011, 18:15 »
?????????????
45
« en: Viernes 4 de Febrero de 2011, 14:13 »
mmmmmmm gracias por tu ayuda pero por alguna razon yo lo habia probado asi pero se pierde el registro del medio.....igualmente lo pude resolver creando un procedimiento q asigne a una variable el fin de archivo es algo asi procedure leersoc(var socio:tsocio;var rsoc:reg1;var finsoc:boolean); begin finsoc:=eof(socio); if not(finsoc)then read(socio,rsoc) else finsoc:=true; end;
PD:igual MUCHAS GRACIAS !!!!!saludos !!
46
« en: Jueves 3 de Febrero de 2011, 22:32 »
a ver si interprete bien dcis q debo crear un subprograma q asigne a una variable booleana si es fin de archivo ?????...ah otra cosa esta bie lee ants del bucle (ciclo)???? disculpa si mis preguuntas son medio pero ac poco empece a programar algo d un mes gracias x la respuesta!!! PD:si leo luego de preg el fin de archivo(o sea dentro del while) se pierd el registro del medio
47
« en: Jueves 3 de Febrero de 2011, 18:40 »
hola gente del foro necesito ayuda con este programa se trata de actuakizar un archivo de socios de un club con sus respectivos pagos,esta hecho el programa el unico problema es en el procedure actualizar actualiza bien pero se come el ultimo registro si alguien sabe y m pued ayudar muchas gracias !!!!!
AQUI EL CODIGO
program ing_archivo; uses crt;
type tmes=1..12; tdeuda=array[tmes]of real; reg1=record cod:integer; nomape:string; dir:string; deuda:tdeuda end; reg2=record cod:integer; mes:tmes; monto:real end;
tsocio=file of reg1; tpago=file of reg2;
var
socio:tsocio;rsoc:reg1; pago:tpago;rpago:reg2; socion:tsocio;tecla:string;
procedure ingrsoc(var socio:tsocio;var rsoc:reg1); var tecla:char; i:tmes;
begin assign(socio,'c:userstomassocio.dat'); rewrite(socio); writeln('ingresa datos al archivo socios(s/n)' ); readln(tecla); while(tecla='s')do begin writeln('ingrese cod soc');readln(rsoc.cod); writeln('ingrese nom apell');readln(rsoc.nomape); writeln('ingrese dir');readln(rsoc.dir); for i :=1 to 12do begin writeln('ingrese deuda mes',i); readln(rsoc.deuda) end; write(socio,rsoc); writeln('ingresa mas datos (s/n)' ); readln(tecla) end; close(socio) end;
procedure ingpago(var pago:tpago;var rpago:reg2);
var tecla:char; begin assign(pago,'c:userstomaspago.dat'); rewrite(pago); writeln('ingresa datos al archivo pagos(s/n)'); readln(tecla); while(tecla='s')do begin writeln('ingrese cod soc');readln(rpago.cod); writeln('ingrese mes abonado');readln(rpago.mes); writeln('ingrese monto');readln(rpago.monto); write(pago,rpago); writeln('ingresa mas datos (s/n)');readln(tecla) end; close(pago) end;
procedure actualizar(var socio:tsocio;var pago:tpago;var socion:tsocio); var rsoc,rnew:reg1; rpago:reg2;cuenta:word; begin clrscr;cuenta:=0; assign(socio,'c:userstomassocio.dat');assign(pago,'c:userstomaspago.dat');assign(socion,'c:userstomassocion.dat'); reset(socio);reset(pago);rewrite(socion); read(socio,rsoc);read(pago,rpago); while(not(eof(socio)))and(not(eof(pago)))do begin
if rsoc.cod=rpago.cod then begin rnew:=rsoc; rnew.deuda[rpago.mes]:=0; write(socion,rnew);inc(cuenta); read(socio,rsoc); read(pago,rpago) end
end; writeln('se ingresaron',cuenta,'registros'); close(socio); close(pago); close(socion)
end; function suma(vector:tdeuda):real; var i:tmes; aux:real; begin aux:=0; for i:=1to 12do aux:=aux+vector; suma:=aux end; procedure leer_socion(var socion:tsocio);
var rsoc:reg1;i:tmes;cuenta:word; begin cuenta:=0; writeln('codigo socio':10,' nombre apellido,':10,'direccion':10); assign(socion,'c:userstomassocion.dat'); reset(socion);
while(not eof(socion))do begin read(socion,rsoc); writeln( rsoc.cod:10,' ',rsoc.nomape:10,' ',rsoc.dir:10); writeln('deuda'); for i:=1 to 12do writeln('mes ',i,rsoc.deuda:10:2); inc(cuenta) end; close(socion);write('leeyeron',cuenta); writeln() end; procedure mostrar_deuda(var socion:tsocio);
var rsoc:reg1;i:tmes;cuenta:word; begin writeln('socios que poseem deuda:'); assign(socion,'c:userstomassocion.dat'); reset(socion); cuenta:=0; while(not eof(socion))do begin read(socion,rsoc); if suma(rsoc.deuda)<>0 then writeln(rsoc.cod:10,rsoc.nomape:10,suma(rsoc.deuda):10:2); inc(cuenta) end; close(socion);writeln('se leyeron',cuenta,'registros'); writeln() end; procedure opcion(var tecla:string);
begin writeln('desea ingresar actualizar o leer'); writeln('si quiere ingresar presione ing,si quiere actualizar act o si quiere leer presione leer'); read(tecla); if tecla='ing'then begin ingrsoc(socio,rsoc); ingpago(pago,rpago) end else if tecla='act'then actualizar(socio,pago,socion) else if tecla='leer'then begin leer_socion(socion) ; mostrar_deuda(socion) end
end;
begin clrscr; opcion(tecla); readkey end.
48
« en: Domingo 30 de Enero de 2011, 20:31 »
gracias che!!!...pero no ya lo habia probado ants d subir mi inquietud al foro pero no paso nada sigue = .... gracias =!!
49
« en: Viernes 28 de Enero de 2011, 20:57 »
HOLA GENTE DEL FORO ESTOY PRACTICANDO EJERCICIOS CON ARCHIVOS Y SOY NUEVO EN ESTO PERO DENTRO DE TODO VOY BIEN HASTA AHORA NECESITO SI ME PUEDEN AYUDAR EL PROBLEMA ES UN CLUB POSEE DOS ARCHIVOS SECUENCIALES SOCIOS.DAT Y OTRO PAGOS .DAT HAY Q ACTUALIZAR EL DE SOCIOS.DAT CON LOS DATOS DE PAGOS.DAT HICE EL PROGRAMA PERO TNGO UN PROBLEMA POR LO Q VI EN EL PROCEDURE ACT() ES HAY Q AL EJECUTARLO QEDA TILDADO EL PROGRAMA BUSQE D MIL MANERAS PERO NO LOGRO VER EL PROBLEMA SI ME AYUDAN LO AGRADECERE MUCHO!!!!
AQUI EL CODIGO
program archivos;
uses crt;
type tmes=1..12; tdeuda=array[tmes]of real; reg1=record cod:integer; nomape:string; dir:string; deuda:tdeuda end; reg2=record cod:integer; mes:tmes; monto:real end; reg3=record cod:integer; nomape:string; totdeuda:real end; tsocio=file of reg1; tpago=file of reg2; tmoroso=file of reg3;
var
socio:tsocio;rsoc:reg1; pago:tpago;rpago:reg2; moroso:tmoroso;rmoroso:reg3; socion:tsocio;
procedure ingrsoc(var socio:tsocio;var rsoc:reg1); var tecla:char; i:tmes;
begin assign(socio,'c:archivospascalsocio.dat'); rewrite(socio); writeln('ingresa datos al archivo socios(s/n)' ); readln(tecla); while(tecla='s')do begin writeln('ingrese cod soc');readln(rsoc.cod); writeln('ingrese nom apell');readln(rsoc.nomape); writeln('ingrese dir');readln(rsoc.dir); for i :=1 to 12do begin writeln('ingrese deuda mes',i); readln(rsoc.deuda) end; write(socio,rsoc); writeln('ingresa mas datos (s/n)' ); readln(tecla) end; close(socio) end;
procedure ingpago(var pago:tpago;var rpago:reg2);
var tecla:char; begin assign(pago,'c:archivospascalpago.dat'); rewrite(pago); writeln('ingresa datos al archivo pagos(s/n)'); readln(tecla); while(tecla='s')do begin writeln('ingrese cod soc');readln(rpago.cod); writeln('ingrese mes abonado');readln(rpago.mes); writeln('ingrese monto');readln(rpago.monto); write(pago,rpago); writeln('ingresa mas datos (s/n)');readln(tecla) end; close(pago) end;
procedure act(var socio:tsocio;var pago:tpago;var socion:tsocio);
var rsoc:reg1; rpago:reg2;
begin assign(socio,'c:archivospascalsocio.dat'); assign(pago,'c:archivospascalpago.dat'); assign(socion,'c:archivospascalsocion.dat'); reset(socio); reset(pago); rewrite(socion); read(socio,rsoc); read(pago,rpago); while(not eof(socio))or(not eof(pago))do
begin
if rsoc.cod=rpago.cod then begin rsoc.deuda[rpago.mes]:=0; write(socion,rsoc); read(socio,rsoc); read(pago,rpago) end else
if rsoc.cod<rpago.cod then read(socio,rsoc)
else read(pago,rpago)
end;
close(socio); close(pago); close(socion)
end; function suma(vector:tdeuda):real;
var i:tmes; aux:real;
begin suma:=0; for i :=1 to 12 do aux:=vector+aux;
suma:=aux
end;
procedure morosos(var socion:tsocio;var moroso:tmoroso);
var rsoc:reg1; rmoroso:reg3;
begin assign(socion,'c:archivospascalsocion.dat'); assign(moroso,'c:archivospascalmoroso.dat'); reset(socion); rewrite(moroso); read(socion,rsoc); while(rsoc.cod<=clave_max)do
begin rmoroso.cod:=rsoc.cod; rmoroso.nomape:=rsoc.nomape; rmoroso.totdeuda:=suma(rsoc.deuda); write(moroso,rmoroso); read(socion,rsoc)
end;
close(socion); close(moroso)
end; procedure mostrar_moroso(var moroso:tmoroso);
var rmorso:reg3; begin assign(moroso,'c:archivospascalmoroso.dat'); reset(moroso); read(moroso,rmoroso); while(not(eof(moroso)))do begin if rmoroso.totdeuda<>0 then writeln(rmoroso.cod:5,rmoroso.nomape:5,rmoroso.totdeuda:10:2); read(moroso,rmoroso) end; close(moroso) end;
begin//bloqe ppal.// clrscr; ingrsoc( socio, rsoc); ingpago(pago,rpago); act(socio,pago,socion); morosos(socion,moroso); mostrar_moroso(moroso); readkey end.
50
« en: Miércoles 26 de Enero de 2011, 00:30 »
buenas gent espero m ayudn estoy practicando sigo bah...estoy con el tema de archivos todo va bien hasta q el progrrama llega a ejecutar el procedure actual() hay qda muerto el programa..ah! el programa es una aplicacion para llevar 1 registro de entrega de medicacion y en algun momento se debe actualizar el archivo el problema esta maas q nada en la part de actualizacion adjunto el programa si alguien m pued ayudar lo agradecere
|
|
|