Автор: savedata 3.10.2011, 17:24
Код
program Z462;
uses crt;
const s='abcdefghijklmnopqrstuvwxyz';
var a:char;
procedure letter_or_not(a:char);
var i:integer;
begin
for i:=1 to length(s) do
begin
if a=copy(s,i,1) then true;
end;
end;
Как сделать чтобы результатом выполнения процедуры стало истина или ложь?
Автор: savedata 3.10.2011, 17:45
Код
program Z462;
uses crt;
const s='abcdefghijklmnopqrstuvwxyz';
var a:char;
function letter_or_not(var a:char):boolean;
var i:integer;
begin
letter_or_not:=false;
for i:=1 to length(s) do
begin
if a=copy(s,i,1) then letter_or_not:=true;
end;
end;
С функцией все много проще, а как быть с процедурой?
Автор: граф Монте-Кристо 3.10.2011, 18:04
Насколько я помню паскаль, процедура тем и отличается от функции, что не возвращает никакого значения.
Автор: граф Монте-Кристо 3.10.2011, 18:40
Можно ведь сделать, чтобы процедура меняла значение глобальной переменной.
Автор: savedata 3.10.2011, 19:15
Цитата(граф Монте-Кристо @ 4.10.2011, 2:40)

Можно ведь сделать, чтобы процедура меняла значение глобальной переменной.
Мне кажется что это уже не соответствует заданию. Плюс к тому еще придется добавлять одну переменную
Код
begin
clrscr;
write('enter any character: ');
readln(a);
if letter_or_not(a) then writeln('simbol "',a,'" is a letter') else writeln('simbol "',a,'" is not a letter');
readln;
end.