Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1085993631
Андрей
2004-05-31 12:53
2004.06.13
Переброс информации между программами


4-1084006630
SPeller
2004-05-08 12:57
2004.06.13
Формат ресурсов PE файлов


3-1085408899
DimonNew
2004-05-24 18:28
2004.06.13
BGrid с флажком


1-1086110483
T2
2004-06-01 21:21
2004.06.13
Варианты


14-1085808564
Andrey007
2004-05-29 09:29
2004.06.13
Работа в Cboss





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский