39 lines
738 B
Plaintext
39 lines
738 B
Plaintext
/*
|
|
** Es sollen alle Angestellten und alle ihre Leiter recherchiert werden.
|
|
*/
|
|
## shared Dt
|
|
## i2 leiter;
|
|
## char name[21];
|
|
## char *name_arg;
|
|
amx(argc, argv)
|
|
int argc;
|
|
char **argv;
|
|
{
|
|
name_arg = (argc == 1)? "*": argv[1];
|
|
## open Personal
|
|
## retrieve Personal $Name == name_arg (name = $Name, leiter = $Leiter)
|
|
## {
|
|
suche_leiter();
|
|
## }
|
|
## close Personal
|
|
fflush(stdout);
|
|
}
|
|
/*
|
|
** `suche_leiter' sucht rekursiv nach dem Leiter eines Angestellten,
|
|
** bis dieser der Direktor ist, das heisst, der Angestellte als
|
|
** Leiternummer eine `0' hat.
|
|
*/
|
|
suche_leiter()
|
|
{
|
|
printf("%-20s ", name);
|
|
if (leiter == 0)
|
|
{
|
|
putchar('\n');
|
|
return;
|
|
}
|
|
## retrieve Personal $Num == leiter (name = $Name, leiter = $Leiter)
|
|
## {
|
|
suche_leiter();
|
|
## }
|
|
}
|