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.