Известны данные о сотрудниках фирмы: фамилия и отношение к во-инской службе (военнообязанный или нет). Напечатать фамилии всех военно-обязанных сотрудников.
задача на тему Записи помогите пожалуйста !!!
Массив записей. Pascal
или помогите исправить что не правильно в этой задаче
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.
пожалуйста помогите!!!
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.
пожалуйста помогите!!!
-
- Сообщения: 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.
Ну буквально минимальная оптимизация
if Otvet=0 then tabl.v:=false { не военнообязанный }
else tabl.v:= true; { военнообязанный }
заменяется на
tavl.v:=otvet=0
и
if tabl.v=true заменяется на if tabl.v
if Otvet=0 then tabl.v:=false { не военнообязанный }
else tabl.v:= true; { военнообязанный }
заменяется на
tavl.v:=otvet=0
и
if tabl.v=true заменяется на if tabl.v
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.