Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача с процедурами. На экзамен.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Death Smile
Текст задачи (решение нужно, конечно, в Паскале):
Составить функцию, результатом которой является истинное значение, если символ, заданный при обращении к процедуре, - буква, и ложное значение в противном случае.
P. S. Завтра экзамен, нужно срочно найти решение. Если нужно, постараюсь отблагодарить в Вмз/Вмр.
compiler
начни со справки ТП по 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.
volvo
Case не нужен... Достаточно использовать множества:

function f(ch: char): boolean;
begin
f := ch in ['a' .. 'z', 'а' .. 'п', 'р' .. 'я'];
end;

Можно добавить и другие символы при необходимости...
compiler
Цитата(volvo @ 15.06.2007 20:18) *
'а' .. 'п', 'р' .. 'я'
уже встречал, но так и не понял зачем разбивать алфавит на части...
volvo
Цитата
так и не понял зачем разбивать алфавит на части...
Поиск рулит... Я объяснял уже, что между 'п' и 'р' есть еще символы...
compiler
Цитата(volvo @ 15.06.2007 20:39) *
Поиск рулит...
славами ключевыми не поделишься?


Добавлено через 4 мин.
там псевдо графика, и зачем ее туда впихнули smile.gif
но врядли ее кто то введет lol.gif (по край ней мере с клавиатуры )
volvo
А кто тебе сказал, что я буду передавать f('б') ? Может, я напишу: f(#192)?

Ошибки, знаешь ли, лучше не допускать сразу, чем потом искать и отлаживать... blum.gif
compiler
Цитата(volvo @ 15.06.2007 20:54) *
Ошибки, знаешь ли, лучше не допускать сразу, чем потом искать и отлаживать... blum.gif
ну да... ты прав...

а чем руководствывались люди выбрав такой распорядок символов?
volvo
Тут опять же вопрос кодировки. Вот, например, в кодировке MKKTT (не альтернативный вариант) и MIC все символы кириллицы идут подряд, в кодировке ЕСТЕЛ (Mazovia) символы 'а'-'я' вообще расположены вразнобой, а чтобы заставить функцию корректно работать на машине с кодировкой КОИ-8 вообще надо делать так:

function f(ch: char): boolean;
begin
f := ch in ['a' .. 'z', 'ю' .. 'ъ'];
end;
blink.gif
compiler
Цитата(volvo @ 15.06.2007 21:19) *
а чтобы заставить функцию корректно работать на машине с кодировкой КОИ-8 вообще надо делать так... blink.gif
не ну в серии кодировок КОИ - 8 , ясно хоть зачем и почему делалось имено так yes2.gif ...

и по KOI8-R(имено R, ведь в других KOI8 могут быть еще буквы которые в R - псевдографика) наверно чтобы заставить функцию корректно надо по <<Ъ>>,вместо<<ъ>> иначе большие русские буквы будут не буквами lol.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.