Используя ELSEIF & SWITCH / FUNCTION на MATLAB, конвертируйте Age в символы - PullRequest
0 голосов
/ 07 апреля 2020

Я был дома один и изучал MATLAB. Я хочу создать скрипт, в котором:

  • просит пользователя ввести возраст в годах в виде числа от 20 до 59 (включительно):
  • проверяет, является ли данный возраст в диапазоне, если значение выходит за пределы диапазона, программа должна выйти с распечаткой сообщения об ошибке.
  • , если возраст находится в диапазоне, программа должна преобразовать значения в текстовый эквивалент (то есть с 21 до ” двадцать один »)

До сих пор я пытался разделить возраст на десятки и единицы, чтобы получить префикс и суффикс каждого числа, используя fix (Age / 10) и mod (Age) , 10). У меня есть основная часть этого, это почти там, однако я не могу получить желаемый результат. Может ли кто-нибудь помочь мне возиться с этим, пожалуйста? Спасибо

Age=input('How old are you? ')
if Age<20 
disp('You are too young ')

elseif Age>=20 & Age<=59
    fix(Age/10); 
    mod(Age,10);
switch fix(Age/10)
    case fix(Age/10)==2
           disp('twenty')
    case fix(Age/10)==3
           disp('thirty')
    case fix(Age/10)==4
           disp('forty')  
    case fix(Age/10)==5
           disp('fifty')
    otherwise
     end
switch mod(Age,10)
    case mod(Age,10)==1
         disp('-one')
    case mod(Age,10)==2
         disp('-two')  
    case mod(Age,10)==3
         disp('-three')
    case mod(Age,10)==4
         disp('-four')
    case mod(Age,10)==5
         disp('-five')
    case mod(Age,10)==6
         disp('-six')
    case mod(Age,10)==7
         disp('-seven')
    case mod(Age,10)==8
         disp('-eight')
    case mod(Age,10)==9
         disp('-nine')
    otherwise
      end
    elseif Age>59
    disp('You are too old ')
end

1 Ответ

1 голос
/ 07 апреля 2020

Код:

Age=input('How old are you? ')
if Age<20 
    disp('You are too young ')
elseif Age>=20 & Age<=59
    switch fix(Age/10)
        case 2
               fprintf('twenty')
        case 3
               fprintf('thirty')
        case 4
               fprintf('forty')  
        case 5
               fprintf('fifty')
        otherwise
         end
    switch mod(Age,10)
        case 1
             fprintf('-one')
        case 2
             fprintf('-two')  
        case 3
             fprintf('-three')
        case 4
             fprintf('-four')
        case 5
             fprintf('-five')
        case 6
             fprintf('-six')
        case 7
             fprintf('-seven')
        case 8
             fprintf('-eight')
        case 9
             fprintf('-nine')
        otherwise
          end
elseif Age>59
    disp('You are too old ')
end

Для операторов Switch в каждом случае вам просто нужно ввести значение, которому должно соответствовать выражение по ключевому слову switch.

Кроме того, используйте fprintf вместо disp, чтобы отобразить два слова в одной строке, т.е.

тридцать четыре

вместо

тридцать
-four

Это связано с тем, что disp автоматически форматирует каждый вывод в новую строку, а fprintf - нет и дает больший контроль над выводом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...