Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Matlab by viper ( 15 years ago )
clear all;
clc;

data = {
 { 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шеснадцать', 'семнадцать', 'восемнадцать', 'девятнадцать' },
 { 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять' },
 { 'десять', 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семдесят', 'восемьдесят', 'девяносто' },
 { 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот' }
};

pos = 2;
arr = {};
flag = 0;
number = num2str(input('Введите число: '));

while length(number) ~= 0
 if pos == 5
  arr(end + 1) = 'тысяч';
  data{2}{1} = 'одна';
  data{2}{2} = 'две';
  pos = 2;
  flag = 1;
 end

 if length(number) > 1 && pos == 2
  val = str2num(number(end-1:end));
  if val > 10 && val < 20
   arr(end + 1) = data{1}{val - 10};
   number = number(1:end - 2);
   pos = pos + 2;
   flag = 0;
   continue;
  end
 end
 
 val = str2num(number(end));
 if val ~= 0
  if flag == 1
   if val == 1
    arr(end) = 'тысяча';
   elseif val >= 2 && val <= 4
    arr(end) = 'тысячи';
   end
  end
  arr(end + 1) = data{pos}{val};  
 end
 
 flag = 0;
 number(end) = [];
 pos = pos + 1;
end

num_str = [];
for i = arr(end:-1:1)
 num_str = [num_str i{1} [' '] ];
end

disp(num_str);

 

Revise this Paste

Your Name: Code Language: