No Image

Заданный символ является цифрой

СОДЕРЖАНИЕ
10 просмотров
05 мая 2020

Определить, является ли введенное слово идентификатором, т.е. начинается ли оно с английской буквы в любом регистре или знака подчеркивания и не содержит других символов, кроме букв английского алфавита (в любом регистре), цифр и знака подчеркивания.

При решении задачи следует проверить:

  1. Принадлежит ли первый символ слова множеству английских букв, или является символом подчеркивания?
  2. Принадлежат ли все остальные символы слова множеству английских букв или множеству символов цифр или являются символами подчеркивания?

Если хотя бы один символ не принадлежит указанным множествам, то делается вывод, что слово идентификатором не является. При этом дальнейшую проверку символов можно опустить.

Разные языки программирования включают различные возможности. Поэтому в программах ниже используются немного отличающиеся способы решения данной задачи.

В Паскале есть тип данных "множество" (set), которое легко задается. В данном случае множество ch содержит буквы в обоих регистрах и знак подчеркивания, а множество n – символы цифр.

Сначала проверяется первый символ на принадлежность множеству ch. Если он ему не принадлежит, то программа завершается на этом этапе.

Если первый символ прошел проверку, то проверяются все остальные символы, начиная со второго и до конца. Если очередной символ не принадлежит ни одному из двух множеств, то программа завершается.

Если все символы прошли проверку, то, значит, введенное слово – идентификатор.

#include
#include
main ( ) <
char s [ 100 ] ;
short i , f ;
scanf ( "%s" , s ) ;
f = 1 ;

Наш профессор попросил нас создать программу, чтобы определить, является ли введенный символ символом, цифрой или буквой. Есть ли способ превратить оператор if-else в оператор переключателя PURE. Мне было интересно, как.

Решение

Может быть так? Вы можете добавить отражение времени компиляции в качестве упражнения =)

Читайте также:  Windows 7 professional service pack 1 x64

UPD: добавить другие решения из комментариев

Другие решения

операторы switch используются для констант, а не для условий.
Так что, если вы действительно хотите использовать только коммутатор, то вы должны охватить все возможные варианты следующим образом:

Без break внутри кейса программа «провалится» по кейсам до первого, содержащего break , Это, однако, очень утомительно писать и не очень читабельно. Предпочтительным способом было бы использовать операторы if-else так:

отказ

Я полностью согласен с комментарием @ muXXmit2X, но просто для удовольствия я написал сценарий который генерирует проверку только на коммутатор (никогда не код, как это, это ужасно)

Иногда генераторы полезны в реальном мире, но будьте осторожны.

PS: Ваш профессор садист.

PPS: Вы должны познакомиться с общие стили кода и выберите тот, который вам нравится, очень трудно читать такой код, как ваш.

Вы можете избежать переключения случая и можете сделать это, как показано ниже

Напишите функцию boolean IsDigit(char c) (Java), function IsDigit(c:char):boolean (Pascal), bool IsDigit(unsigned char c) (C/C++), определяющую, является ли данный символ цифрой или нет.

Естественно, программа должна считывать данные, вызывать эту функцию и выдавать ответ.

Входные данные
Задан единственный символ c.

Выходные данные
Необходимо вывести строку yes, если символ является цифрой, и строку no в противном случае.

Примеры
входные данные
c
выходные данные
no
входные данные
2
выходные данные
yes

Комментировать
10 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock
detector