Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
Вниз
case и char Найти похожие ветки
← →
ltexcimer (2004-05-29 15:55) [0]Приветствую, уважаемые!
Есть такая проблема:
использую конструкцию:
Read(my);
case my of
"1":punkt1;
"2":pinkt2:
else
WriteLn("fuck");
end;
my определена как char.
Если введено число 12 к примеру, выполняется все равно пункт 1, так как 12 обрезается до первой цифры. Подскажите, как этого избежать.
← →
SammIk © (2004-05-29 15:58) [1]Используи баит вместо чара или лучше слово, а еще лучше
двоиное слово.
← →
Gero © (2004-05-29 16:17) [2]А что нужно?
Обрезать до последней?
И не нужно ругаться.
← →
ltexcimer (2004-05-29 19:43) [3]pascal ругается, говорит что в case должен использоваться только тип char... ;(
← →
Anatoly Podgoretsky © (2004-05-29 20:19) [4]char по определению хранит только один символ
← →
ltexcimer (2004-05-29 21:04) [5]Больше спасибо за разъяснение!
А можно ли как-нибудь в case использовать другой тип данных(не char?) Задали на pascal"е лабу, по мне так удобнее было бы использовать конструкции if ... then, но нужно case...
Заранее благодарен!
← →
Palladin © (2004-05-29 21:19) [6]ну наверное ипользовать не integer а string, тебе так не кажется?
← →
GuAV © (2004-05-29 21:27) [7]
> ну наверное ипользовать не integer а string, тебе так не
> кажется?
Imho, наоборот нужон integer, т.к. string - не упорядоченный тип.
← →
Palladin © (2004-05-29 22:08) [8]
> GuAV © (29.05.04 21:27) [7]
Да, но есть Val.
← →
Германн © (2004-05-30 02:48) [9]По сабжу следует:
1. Вместо Read поставить Readln.
2. My объявить как целый тип.
← →
Gott (2004-05-30 03:33) [10]Создай свой порядковый тип и не мучайся
← →
GuAV © (2004-05-30 12:58) [11]
> pascal ругается, говорит что в case должен использоваться
> только тип char... ;(
кавычки где 1 и 2 убрать.
← →
Германн © (2004-05-31 02:07) [12]2 GuAV © (30.05.04 12:58) [11]
> кавычки где 1 и 2 убрать.
Если убрать кавычки, то получится case именно по целочисленному типу.
Ну а если нужен именно тип char. тогда вместо "1" можно поставить #49, а вместо "2" - #50. :-)
Но если по сабжу - Если введено число 12 к примеру - причем тут char?
← →
atruhin © (2004-05-31 07:49) [13]var
InS : string;
begin
Readln(InS);
try
case inttostr(trim(InS)) of
1 : punkt1;
2 : pinkt2;
12 : pinkt12;
end
except
Showmessage("Номер пункта должен быть числом");
end;
end.
← →
Глеб © (2004-05-31 08:16) [14]используй string
← →
Iraizor © (2004-05-31 08:27) [15]Какие стринги ? может человеку нужно именно чар =)
program В чем сила , брат ?;
{$APPTYPE CONSOLE}
var my:char;
begin
Read(my);
case my of
chr(49):begin writeln("GooD one =)");readln;readln;end;
chr(50):begin Writeln("Double GooD one =)");readln;readln;end;
else
WriteLn("Bad One =(");
readln;
readln;
end;
end.
← →
Palladin © (2004-05-31 19:07) [16]Сколько умников собралось. Это классическая школьная задача на использование case. Причем в Паскале, а не в Делфи! Связка: String, Val и Case. И нехрен мудрить!
> Iraizor © (31.05.04 08:27) [15]
А тебе бы я сразу из своей группы попер бы... за оформление, chr и Read...
← →
IraiZor © (2004-05-31 19:15) [17]за оформление
ну привычка такая , в одну длинную строку писать некторые действия %)
← →
Германн © (2004-06-01 03:06) [18]2 IraiZor ©
А зачем все эти readln?
Да еще без указаний пользователю, что он должен нажать Enter!
← →
IraiZor © (2004-06-01 05:56) [19]Германн ©
в дельфях без readln консоль мгновенно пропадает.
А без указания пользователю , потому что я писал это только для примера.
← →
Думкин © (2004-06-01 06:49) [20]> IraiZor © (01.06.04 05:56) [19]
Безусловно пропадет. А сделать так:ReadLn(my);
что мешает?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c