Практика программирования (Бейсик, Си, Паскаль)


Задачи,советы и ответы - часть 19


END

FUNCTION NumToStr$(m%)

IF m%=0 THEN NumToStr$=numl$(0): EXIT FUNCTION

IF m%<0 THEN m%=-m%: ResS-''мииус " : 'Учет знака имела

dig100%=m%\100 : 'Выделение сотен

Res$=Res$+num3$(dig!00%) :' Приклеили обозначение сотен

m%=m%-100*diglOO% : ' Удаление обработанных сотен

IF m%=0 THEN NumToStr$=Res$: EXIT FUNCTION

IF m%<20 THEN NumToStr$-Res$-t-numl$ (m%) : EXIT FUNCTION diglO%=m%\10 :

' Выделение десятков, если

dig10>=20 R@s$=R.es$-l-num2$ (diglO%-2) :' Приклеили обозначение десятков

diglS-^m* MOD 10

КЕМ Если в числе присутствуют ненулевые разряды единиц

IF digl%<>0 THEN Res$=Res$+numl$(digll)

NumToStr$=Res$ END FUNCTION

Программа 2_11.с

/* Формирование словесного описания числа */

#include <stdio.h>

#include <conio.h>

#include <string.h>

char *num_to_str(long m) ;

main() {

long n;

clrscr() ; m:

printf("ХпВведите целое число : ");

scanf("%ld",&n);

printf("\n%ld = %s",n,num_to_str(n));

goto m;

getch(); }

char *num_to_str(long m)

/* Преобразование числа в словесное описание */ {

char *numl[]={"ноль","один","два","три",

"четыре","пять","шесть","семь","восемь","девять",

"десять","одиннадцать","двенадцать",

"тринадцать","четырнадцать",

"пятнадцать","шестнадцать","семнадцать", "восемнадцать",

"девятнадцать " }';

char *num2[]=1

"двадцать ","тридцать ","сорок ",

"пятьдесят ","шестьдесят ",

"семьдесят ","восемьдесят ","девяносто "};

char *num3[]=("",

"сто ","двести ","триста ","четыреста ",

"пятьсот ", "шестьсот ","семьсот "/'восемьсот "/'девятьсот "} ;

static char Result[50]="";




- Начало -  - Назад -  - Вперед -