В условии дан раздел type. это список преподавателей (ФИО, специальность, номера групп, в которых они ведут). Надо написать логическую функцию, которая определяет, есть ли преподаватели, ведущие занятия только в одной группе. если есть, вывести их ФИО.
Я вот написала, но после ввода информации о преподавателях программа закрывается. Помогите, пожалуйста!
Код:
program Prepodavatel;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
kol_prepod=2;
type
Tgruppa=1..7;
Tgruppy_kursa=array[Tgruppa] of boolean;
Tgruppy_fak=array[1..5] of Tgruppy_kursa;
Tprepod=record
fio:string;
spec:(matematika,mehanika);
spisok_grupp:Tgruppy_fak
end;
Tvse_prepod=array[1..kol_prepod] of Tprepod;
var
prepod:Tvse_prepod;
i:byte;
nomer,danet:0..1;
gruppa:Tgruppa;
kurs:1..5;
t,b:boolean;
//----------------------------------------------------------------------
function proverka(n:integer):boolean;
var sk:byte;
gr:Tgruppa;
k:1..5;
begin
sk:=0;
for gr:=1 to 7 do
for k:=1 to 5 do
if prepod[n].spisok_grupp[gr,k]=true then sk:=sk+1;
if sk=1 then result:=true
else result:=false
end;
//---------------------------------------------------------------------
begin
//ввод данных о преподавателях
for i:=1 to kol_prepod do
begin
writeln('vveite informaciyu o ',i,' prepodavatele:');
write('FIO: ');
readln(prepod[i].fio);
write('nomer specialnosti (matematica-0, mehanika-1): ');
readln(nomer);
if nomer=0 then prepod[i].spec:=matematika
else prepod[i].spec:=mehanika;
for gruppa:=1 to 7 do
for kurs:=1 to 5 do
prepod[i].spisok_grupp[gruppa,kurs]:=false;
b:=true;
while b<>false do
begin
write('vvedite gruppu: ');
readln(gruppa);
write('vvedite kurs: ');
readln(kurs);
prepod[i].spisok_grupp[gruppa,kurs]:=true;
write('dobavit eshe gruppu? da-vvedite 1, net-0: ');
readln(danet);
if danet=1 then b:=true
else b:=false
end;
writeln
end;
t:=false;
for i:=1 to kol_prepod do
if proverka(i)=true then
begin
writeln(prepod[i].fio);
t:=true
end;
readln;
if t=false then writeln('takih prepodavateley net');
readln
end.
lmikle: Пользуемся тегами!!!