Массив записей. Pascal

Ответить
geniuss
Сообщения: 7
Зарегистрирован: 26 янв 2008, 20:48

Известны данные о сотрудниках фирмы: фамилия и отношение к во-инской службе (военнообязанный или нет). Напечатать фамилии всех военно-обязанных сотрудников.
задача на тему Записи помогите пожалуйста !!!
geniuss
Сообщения: 7
Зарегистрирован: 26 янв 2008, 20:48

или помогите исправить что не правильно в этой задаче
uses crt;
type tab = record
fam:string;
v:boolean;
end;
const n=5;
var tabl:array [1..n] of tab;
fam:string;
x:array[1..n]of byte;
i:byte;
BEGIN
clrscr;
for i:=1 to n do
begin
writeln('Ведите фамилию N',i,':');
readln(fam);
write('военнообязанный(если да введите = 1/если нет введите = 0)');
readln(x);
writeln(' ');
end;
for i:=1 to n do
begin
if x = 0 then tabl.v:=false { военнообязанный }
else tabl.v:= true; { не военнообязанный }
end;
for i:=1 to n do
begin
if tabl =false
then writeln (' fam ' )
end;
end.

пожалуйста помогите!!!
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

слишком много ошибок... ;-(( но зато видно, что пытался...
направление было правильное.
за это приз - вот код программы:

Код: Выделить всё

uses crt;
type tab = record
  fam:string;
  v:boolean;
end;
const n=5;
var
  tabl :array [1..n] of tab;
  i    :integer;
  Otvet:integer;
begin
  clrscr;

  {заполнение массива с данными о сотрудниках}
  for i:=1 to n do
  begin
    writeln('Введите фамилию N',i,':');
    readln(tabl[i].fam);
    write('военнообязанный(если да введите = 1/если нет введите = 0)');
    readln(Otvet);
    if Otvet=0 then tabl[i].v:=false { не военнообязанный }
    else tabl[i].v:= true; { военнообязанный }
  end;


  {проверка признака и выдача подходящих записей}
  WriteLn;
  WriteLn('Список военнообязанных: ');
  for i:=1 to n do
  begin
   if tabl[i].v=true
       then writeln (tabl[i].Fam)
  end;
end.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Ну буквально минимальная оптимизация
if Otvet=0 then tabl.v:=false { не военнообязанный }
else tabl.v:= true; { военнообязанный }
заменяется на
tavl.v:=otvet=0
и
if tabl.v=true заменяется на if tabl.v
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
geniuss
Сообщения: 7
Зарегистрирован: 26 янв 2008, 20:48

Большое спасибо!!!
Ответить