Programa de empresa en pascal
Buenas amigos me gustaria que me pudiesen ayudar con este programa en pascal que debo crear y me esta dando bastantes quebraderos de cabeza
Se me pide crear un programa que permita ingresar el nombre y el salario de los trabajadores de una empresa. asi como tambien poder consultarlos y eliminar todos los datos de algun trabajador.
ya llevo algo hecho del codigo
program ACME; type tipoPersona = record nombre: string; salario: real; sal_anu: real; sal_anual: real; sal_men: real; sal_mensual: real; utili, utilidades, vaca, vacaciones: real; bono: real; end; const capacidad = 1000; var tra: array[1..capacidad] of tipoPersona; cantidad: integer; opcion: integer; i: integer; textoBuscar: string; encontrado: boolean; bono: real; cesta: integer; seBorro:boolean; {Cuerpo del programa principal} begin cantidad := 0; repeat WriteLn('***BIENVENIDO A ACME***'); WriteLn; WriteLn('1- Agregar Trabajador'); WriteLn('2- Todos los trabajadores'); WriteLn('3- Buscar a un trabajador'); WriteLn('4- Reporte 1'); WriteLn('5- Reporte 2'); WriteLn('6- Eliminar Trabajador'); WriteLn('0- Salir'); Write('Escoja una opcion: '); ReadLn(opcion); WriteLn; case opcion of 1: { Agregar trabajador } if (cantidad < capacidad) then begin inc(cantidad); WriteLn('Introduciendo al trabajador ', cantidad); Write('Introduzca el nombre: '); ReadLn(tra[cantidad].nombre); Write('Introduzca Salario: '); ReadLn(tra[cantidad].salario); for i:=1 to cantidad do begin if tra[i].salario > 1500 then begin tra[i].bono:=tra[i].salario*0.1; tra[i].utilidades:=tra[i].salario*2; tra[i].vacaciones:=tra[i].salario; tra[i].sal_mensual:=tra[i].salario+tra[i].bono; tra[i].sal_anual:=tra[i].sal_mensual*12+tra[i].vacaciones+tra[i].utilidades; end; if tra[i].salario <= 1500 then begin cesta:=20; tra[i].vaca:=tra[i].salario; tra[i].utili:=tra[i].salario*4; tra[i].sal_men:=tra[i].salario+cesta; tra[i].sal_anu:=tra[i].sal_men*12+tra[i].vaca; end; end; end; 2: begin {Todos los trabajadores} if cantidad = 0 then WriteLn('No hay datos') else for i := 1 to cantidad do WriteLn(i, ' ', tra[i].nombre, tra[i].salario:4:2); WriteLn; end; 3: {Buscar a un trabajador} begin Write('Escriba el nombre del trabajador '); ReadLn( textoBuscar ); encontrado := false; for i := 1 to cantidad do if pos (textoBuscar, tra[i].nombre) > 0 then begin encontrado := true; WriteLn( i,' - Nombre: ', tra[i].nombre, ', Salario: ', tra[i].salario:4:2); end; if not encontrado then WriteLn('No se ha encontrado.'); WriteLn; end; 4: {Reporte 1 } for i := 1 to cantidad do begin if tra[i].salario > 1500 then begin writeln('Nombre del trabajador: ', tra[i].nombre); WriteLn('Salario: ', tra[i].salario:4:2); WriteLn('Bono: ', tra[i].bono:4:2); WriteLn('Total: ', tra[i].sal_mensual:4:2); end; end; 5: { Reporte 2} for i := 1 to cantidad do begin if tra[i].salario <= 1500 then begin writeln('Nombre del trabajador: ', tra[i].nombre); WriteLn('Salario: ', tra[i].salario:4:2); WriteLn('Cestaticket: ', cesta); WriteLn('Total: ', tra[i].sal_men:4:2); end; end; 6: { Eliminar trabajador } begin seBorro := false; for i := 1 to capacidad do ReadLn(tra[cantidad].nombre); if pos (textoBuscar, tra[cantidad].nombre) = tra[i].nombre then begin seBorro := true; fillchar(tra[i].salario, tra[i].sal_anu, tra[i].sal_anual, tra[i].sal_men, tra[i].sal_mensual, tra[i].utili, tra[i].utilidades, tra[i].vaca, tra[i].vacaciones, tra[i].bono;),0); end; if seBorro = true then writeln('El Trabajador indicado se ha borrado con exito') end; 0: { salir} begin ; WriteLn; WriteLn('Saliendo...'); WriteLn; end; else begin WriteLn; WriteLn('Opción incorrecta!'); WriteLn; end; end; { Fin de "case" } until opcion = 0; end.
el problema surge que al compilar me da los siguientes errores:
prueba2.pas(267,10) Error: Incompatible types: got "LongInt" expected "ShortString"
prueba2.pas(273,177) Fatal: Syntax error, ")" expected but ";" found
Fatal: Compilation aborted
Ha fallado la compilación.
creo que estoy fallando en algo. me gustaria que me pudiesen orientar para porder realizar mejor la intruccion eliminar
esperando su pronta respuesta. Muchas gracias.