Текст задачи (решение нужно, конечно, в Паскале):
Составить функцию, результатом которой является истинное значение, если символ, заданный при обращении к процедуре, - буква, и ложное значение в противном случае.
P. S. Завтра экзамен, нужно срочно найти решение. Если нужно, постараюсь отблагодарить в Вмз/Вмр.
начни со справки ТП по case...
Добавлено через 14 мин.
//сама функция
function IfLetter(const c:char):boolean;
{заголовок функции IfLetter-название, c- символ, который она получает
(const указывает на то, что мы не собираемся его менять)}
begin
Case UpCase( с ) of //проверяем значение приображенного символа
'A'..'Z': IfLetter:= true //сюда надо добавить русские буквы
else IfLetter:=false;
end;
end;
// пример вызова
var
ch:char;
begin
readLn(ch);
if IfLetter (ch)=true then writeLn('1')
else writeLn('0');
readln;
read;
end.
Case не нужен... Достаточно использовать множества:
function f(ch: char): boolean;Можно добавить и другие символы при необходимости...
begin
f := ch in ['a' .. 'z', 'а' .. 'п', 'р' .. 'я'];
end;
А кто тебе сказал, что я буду передавать f('б') ? Может, я напишу: f(#192)?
Ошибки, знаешь ли, лучше не допускать сразу, чем потом искать и отлаживать...
Тут опять же вопрос кодировки. Вот, например, в кодировке MKKTT (не альтернативный вариант) и MIC все символы кириллицы идут подряд, в кодировке ЕСТЕЛ (Mazovia) символы 'а'-'я' вообще расположены вразнобой, а чтобы заставить функцию корректно работать на машине с кодировкой КОИ-8 вообще надо делать так:
function f(ch: char): boolean;
begin
f := ch in ['a' .. 'z', 'ю' .. 'ъ'];
end;