Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.039 c
14-1085358526
Monster
2004-05-24 04:28
2004.06.13
3D engine


14-1084473025
ИМХО
2004-05-13 22:30
2004.06.13
Установка Office.XP


14-1085278153
Думкин
2004-05-23 06:09
2004.06.13
С днем рождения! 23 мая


1-1086007539
zergush
2004-05-31 16:45
2004.06.13
Разноцветные строки в ListBox


14-1085167911
European
2004-05-21 23:31
2004.06.13
Учебник по VHDL