Programa de empresa en pascal


02 de Marzo del 2020

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.