Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
17 / 17 / 5
Регистрация: 27.11.2011
Сообщений: 141

Программа пишет прописью числа, помогите доделать ввод числа с клавиатуры

22.12.2011, 15:53. Показов 2916. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа пишет прописью числа, помогите доделать ввод числа с клавиатуры.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication19
{
    class Program : NumByWords
    {
        public static void Main(string[] args)
        {
            Console.WriteLine(NumPhrase(12345, false));
            Console.ReadKey();
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
namespace ConsoleApplication19
{
    public class NumByWords
    {
        private static string EndDek1(byte Dek, bool IsMale)
        {
            if ((Dek > 2) || (Dek == 0)) return "";
            else if (Dek == 1)
            {
                if (IsMale) return "ин"; else return "ин";
            }
            else
            {
                if (IsMale) return "а"; else return "а";
            }
        }
 
        public static string NumPhrase(ulong Value, bool IsMale)
        {
            if (Value == 0UL) return "Ноль";
            string[] Dek1 = { "", " од", " дв", " три", " четыре", " пять", " шесть", " семь", " восемь", " девять", " десять", " одиннадцать", " двенадцать", " тринадцать", " четырнадцать", " пятнадцать", " шестнадцать", " семнадцать", " восемнадцать", " девятнадцать" };
            string[] Dek2 = { "", "", " двадцать", " тридцать", " сорок", " пятьдесят", " шестьдесят", " семьдесят", " восемьдесят", " девяносто" };
            string[] Dek3 = { "", " сто", " двести", " триста", " четыреста", " пятьсот", " шестьсот", " семьсот", " восемьсот", " девятьсот" };
            string[] Th = { "", "", " тысяч", " миллион", " миллиард", " триллион", " квадрилион", " квинтилион" };
            string str = "";
            for (byte th = 1; Value > 0; th++)
            {
                ushort gr = (ushort)(Value % 1000);
                Value = (Value - gr) / 1000; if (gr > 0)
                {
                    byte d3 = (byte)((gr - gr % 100) / 100); byte d1 = (byte)(gr % 10); byte d2 = (byte)((gr - d3 * 100 - d1) / 10);
                    if (d2 == 1)
                        d1 += (byte)10; bool ismale = (th > 2) || ((th == 1) && IsMale); str = Dek3[d3] + Dek2[d2] + Dek1[d1] + EndDek1(d1, ismale) + Th[th] + EndTh(th, d1) + str;
                }
            }
            str = str.Substring(1, 1).ToUpper() + str.Substring(2); return str;
        }
        private static string EndTh(byte ThNum, byte Dek)
        {
            bool In234 = ((Dek >= 2) && (Dek <= 4));
            bool More4 = ((Dek > 4) || (Dek == 0));
            if (((ThNum > 2) && In234) || ((ThNum == 2) && (Dek == 1))) return "а";
            else if ((ThNum > 2) && More4) return "ов";
            else if ((ThNum == 2) && In234) return "и";
            else return "";
        }
    }
}
Добавлено через 16 часов 56 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication19
{
    class vvod
    {
        Int64 res;
        public double Insert(string name_k)
        {
            bool ok = false;
            Console.WriteLine("Введите, пожалуйста, число " + name_k);
            do
            {
                string vvodimoe = Console.ReadLine();
                ok = Int64.TryParse(vvodimoe, out res);
                if (!ok)
                {
                    Console.WriteLine("Введенные Вами данные не являются числом; повторите ввод числа " + name_k);
                }
                else
                {
                    ok = true;
                }
            } while (!ok);
 
            return res;
        }
 
    }
}
это класс для ввода, начинаю его прикрычивать
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication19
{
    class Program : NumByWords
    {
        public static void Main(string[] args)
        {
            int number = vvod.Insert("Введите число");
            Console.WriteLine(NumPhrase(12345, false));
            Console.ReadKey();
        }
    }
}
вылетает ошибка :Для нестатического поля, метода или свойства требуется ссылка на объект

не пойму где и в чём проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2011, 15:53
Ответы с готовыми решениями:

Ввод числа прописью до 1000000
Нашел тут программу с прописью чисел до 3000, как её дополнить до 1000000? uses Crt; type nazw = array of String; const ed :...

Программа пишет все числа до числа n, а надо n чисел положительных и нечетных
Дано имя файла и целое число N (&gt; 1). Создать файл целых чисел с данным именем и записать в него N первых положительных нечетных чисел (1,...

Доделать программу "числа прописью" - расширить диапазон чисел
Вот у меня есть программа для написания чисел прописью,но она работает только с числами до 1000 не включительно. Как сделать так,чтобы она...

2
 Аватар для FtarG
138 / 138 / 42
Регистрация: 02.11.2010
Сообщений: 316
22.12.2011, 16:25
Проблема в том, что Вы используете объект не статического класса vvod. Компилятор просит либо создать объект класса, либо сделать его статическим:
C#
1
static class vvod
или
C#
1
2
vvod a = new vvod();
int number = a.Insert("Введите число");
1
17 / 17 / 5
Регистрация: 27.11.2011
Сообщений: 141
22.12.2011, 17:47  [ТС]
тогда пишет что нельзя объявлять члены экземпляра в статическом классе

Добавлено через 13 минут
сделал, всм спасибо за советы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.12.2011, 17:47
Помогаю со студенческими работами здесь

Пользователь вводит с клавиатуры целые числа. Чтобы закончить ввод – необходимо ввести 0. Вывести негативные числа.
Пользователь вводит с клавиатуры целые числа. Чтобы закончить ввод – необходимо ввести 0. Вывести негативные числа. Неполучаетса вывод...

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

Программа, выводящая прописью чётные числа массива.
В синтаксисе ошибок нет. При вводе кол-ва элементов выдаёт: &quot;Необработанное исключение в &quot;0x5561d2f3 (msvcr100d.dll)&quot; в...

Программа, которая организует ввод с клавиатуры одномерного массива и удаляет из массива все числа пропорциональные 5
1).Дан массив целых чисел (i:=1 to n); После каждого четного числа нужно вставить в массив &quot;0&quot;. 2).Программа, которая...

Ввод числа с клавиатуры
нужно ввести с клавиатуры число(будущее количество эл-в маллива). число от 1 до 30, те: 1)если сначала нажали 0 - недопустимо(потом могут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru