Показать сообщение отдельно
Старый 07.06.2010, 01:53   #1 (permalink)
Милен
Новичок
 
Регистрация: 07.06.2010
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите составить блок-схему

кто может сделать блок схему к этой проге:
Код:

Program chisla_propisyu;
uses crt;
function convert(Num: string): string;
const
s100: array[0..9] of string = ('', 'сто', 'двести', 'триста', 'четыреста',
'пятьсот', 'шестьсот', 'семьсот', 'восемьсот',
'девятьсот');
s10: array[0..9] of string = ('', '', 'двадцать', 'тридцать', 'сорок',
'пятьдесят', 'шестьдесят', 'семьдесят',
'восемьдесят', 'девяносто');
s11: array[0..9] of string = ('десять', 'одиннадцать', 'двенадцать', 'тринадцать',
'четырнадцать', 'пятнадцать', 'шестнадцать',
'семнадцать', 'восемнадцать', 'девятнадцать');
s1: array[0..9, 0..1] of string = (('', ''), ('один', 'одна'), ('два', 'две'),
('три', 'три'), ('четыре', 'четыре'),
('пять', 'пять'), ('шесть', 'шесть'),
('семь', 'семь'),('восемь', 'восемь'),
('девять', 'девять'));
s1000: array[0..4, 0..2] of string = (('','',''),
('миллиардов', 'миллиард', 'миллиарда'),
('миллионов', 'миллион', 'миллиона'),
('тысяч', 'тысяча', 'тысячи'),
('', '', ''));
var r: string; i: integer;
procedure ins(sr: string);
begin
if sr <> '' then r := r + ' ' + sr; end;
function chtoint(ch: char): byte;
var result_ch: byte;
begin chtoint := 0;
if (ch >= '0') and (ch <= '9') then chtoint := ord(ch) - ord('0')
else chtoint := 0; end;
begin
for i:=1 to Length(num) do if not (num[i] in ['0'..'9']) then begin
convert := 'Ошибка! переданная строка не является числом!';
Exit; end;
r := '';
for i := 1 to 15 - length(num) do insert('0', num, 1);
for i := 0 to 4 do begin
if copy(num, i * 3 + 1, 3) = '000' then continue;
ins(s100[chtoint(num[i * 3 + 1])]);
if num[i * 3 + 2] = '1' then begin ins(s11[chtoint(num[i * 3 + 3])]);
ins(s1000[i, 0]);
continue; end;
ins(s10[chtoint(num[i * 3 + 2])]);
if i = 3 then ins(s1[chtoint(num[i * 3 + 3]), 1]) else ins(s1[chtoint(num[i * 3 + 3]), 0]);
case num[i * 3 + 3] of '0', '5', '6', '7', '8', '9': ins(s1000[i, 0]);
'1': ins(s1000[i, 1]);
'2', '3', '4': ins(s1000[i, 2]); end; end;
if r <> '' then if r[1] = ' ' then delete(r, 1, 1);
Convert := r; end;
var s: string;
begin WriteLn;
Write('Введите число: ');
Readln(s);
if length(s)>13 then
Writeln('Извините, но программа понимает только числа до 13 знаков')
else
WriteLn(convert(s));
end.
плизз...
Милен вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070