С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
1

Программа выводит только false

05.12.2018, 15:26. Показов 632. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста сделать задание уж очень надо. Нужно чтобы программа проверяла правильность ИНН.

Вот собственно код
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication4
{ 
public class CheckINN
{
    public static bool IsINN(string value)
    {
        if (value.Length == 11)
        {
            if (value[0] != 'F')
                return false;
            else
                value = value.Remove(0, 1);
        }
 
        // должно быть 10 или 12 цифр
        if (!(value.Length == 10 || value.Length == 12))
            return false;
        else
        {
            try
            {
                return IsINN(long.Parse(value));
            }
            catch
            {
                return false;
            }
        }
    }
    public static bool IsINN(long value)
    {
        // должно быть 10 или 12 цифр
        if (value < 1000000000 || value >= 1000000000000)
            return false;
 
        int digits = (int)Math.Log10(value) + 1;
        if (!(digits == 10 || digits == 12))
            return false;
 
        // вычисляем контрольную сумму
        string s = value.ToString("D" + digits.ToString());
        int[] factors = digits == 10 ? arrMul10 : arrMul122;
 
    startCheck:
 
        long sum = 0;
        for (int i = 0; i < factors.Length; i++)
            sum += byte.Parse(s[i].ToString()) * factors[i];
        sum %= 11;
        sum %= 10;
        if (sum != byte.Parse(s[factors.Length].ToString()))
            return false;
        else if (digits == 12)
        {
            // используется маленький трюк:
            // запускается повторная проверка, начиная с метки startCheck,
            // но с другими коэффициентами, а чтобы исключить повторный вход 
            // в эту ветку, сбрасываем digits
            factors = arrMul121;
            digits = 0;
            goto startCheck;
        }
        else
            return true;
    }
   static void Main()
        {
            Console.WriteLine(IsINN(72468237623));
            Console.ReadKey();
        }
 
    #region Коффициенты для проверки ИНН (метод IsINN)
 
    static readonly int[] arrMul10 = { 2, 4, 10, 3, 5, 9, 4, 6, 8 };
    static readonly int[] arrMul121 = { 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 };
    static readonly int[] arrMul122 = { 3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 };
 
    #endregion Коффициенты для проверки ИНН (метод IsINN)
}
}
Может получится у кого нибудь сделать из этого кода полностью рабочий код
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2018, 15:26
Ответы с готовыми решениями:

Программа которая считывает текст из файла и выводит на экран предложения начинающиеся с тире, перед ним стоять только п
Я сделал, чтоб работало с одной строкой и выводит, но потом преподаватель попросил сделать на...

Написать программу которая выводит на экран TRUE или False
подскажите как написать программу на С# Написать программу которая выводит на экран TRUE или False...

Программа выводит только одно значение
Здравствуйте. Есть код #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; using...

Программа выводит только первое слово
Доброго времени и суток !!! Я хотел спросить : Я пишу простой код #include &lt;stdio.h&gt; int...

9
228 / 165 / 110
Регистрация: 09.11.2015
Сообщений: 454
05.12.2018, 20:00 2
Aleksey6898, Вам в другой тебе дали ответ, что код рабочий.
Передайте 6449013711 в метод и получите true

Добавлено через 1 минуту
и строки 38 и 39 лишние
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
05.12.2018, 21:20  [ТС] 3
она же не так должна работать

Добавлено через 1 минуту
мне надо чтобы программа сама предлагала ввести инн
0
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 21:40 4
Aleksey6898, Я же вам отвечал уже Программа не содержит статистического метода Main, подходящего для входа

Добавлено через 4 минуты
Aleksey6898, Вот полный текст программы:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using System;
 
namespace ConsoleApp1
{
 
    class Program
    {
        static void Main(string[] args)
        {
 
            Console.Write("Введите ИНН: ");
            string inn = Console.ReadLine();
            if (CheckINN.IsINN(inn)) Console.WriteLine("ИНН Верен");
            else Console.WriteLine("Неверный ИНН");
            Console.ReadKey();
        }
 
        public class CheckINN
        {
            public static bool IsINN(string value)
            {
                if (value.Length == 11)
                {
                    if (value[0] != 'F')
                        return false;
                    else
                        value = value.Remove(0, 1);
                }
 
                // должно быть 10 или 12 цифр
                if (!(value.Length == 10 || value.Length == 12))
                    return false;
                else
                {
                    try
                    {
                        return IsINN(long.Parse(value));
                    }
                    catch
                    {
                        return false;
                    }
                }
            }
            public static bool IsINN(long value)
            {
                // должно быть 10 или 12 цифр
                if (value < 1000000000 || value >= 1000000000000)
                    return false;
 
                int digits = (int)Math.Log10(value) + 1;
                if (!(digits == 10 || digits == 12))
                    return false;
 
                // вычисляем контрольную сумму
                string s = value.ToString("D" + digits.ToString());
                int[] factors = digits == 10 ? arrMul10 : arrMul122;
 
            startCheck:
 
                long sum = 0;
                for (int i = 0; i < factors.Length; i++)
                    sum += byte.Parse(s[i].ToString()) * factors[i];
                sum %= 11;
                sum %= 10;
                if (sum != byte.Parse(s[factors.Length].ToString()))
                    return false;
                else if (digits == 12)
                {
                    // используется маленький трюк:
                    // запускается повторная проверка, начиная с метки startCheck,
                    // но с другими коэффициентами, а чтобы исключить повторный вход 
                    // в эту ветку, сбрасываем digits
                    factors = arrMul121;
                    digits = 0;
                    goto startCheck;
                }
                else
                    return true;
            }
          
            #region Коффициенты для проверки ИНН (метод IsINN)
 
            static readonly int[] arrMul10 = { 2, 4, 10, 3, 5, 9, 4, 6, 8 };
            static readonly int[] arrMul121 = { 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 };
            static readonly int[] arrMul122 = { 3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8 };
 
            #endregion Коффициенты для проверки ИНН (метод IsINN)
        }
    }
}
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
05.12.2018, 22:02  [ТС] 5
а что ответили то? я так и не понял

Добавлено через 1 минуту
у вас есть предложения как можно улучшить эту программу? Просто я не знаю уже как делать дальше
Может вы поможете...
То что она выводит true или false я думаю препод при сдаче курсовой не оценит

Кстати тема курсовой "Разработка ПО для контроля передачи ИНН". У меня низкий уровень языка C#. У нас не it специальность но по программе есть изучение этого языка один семестр и дальше не планирую изучать программирование, поэтому прошу помощи
0
228 / 165 / 110
Регистрация: 09.11.2015
Сообщений: 454
05.12.2018, 22:04 6
Aleksey6898, Вы запускали код из предыдущего сообщения?
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
05.12.2018, 22:07  [ТС] 7
Да, true выводит
0
228 / 165 / 110
Регистрация: 09.11.2015
Сообщений: 454
05.12.2018, 22:10 8
Aleksey6898, не мое сообщение, а товарища PoPsa85
0
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 22:10 9
Aleksey6898, Там где написано полный текст программы. Специально для вас сделал, Что бы выводило на Русском языке. Скопируйте код и запустите.
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
05.12.2018, 22:19  [ТС] 10
Этот код рабочий. Как думаете к теме курсовой этот код подойдет или преподаватель еще что то потребует?
0
05.12.2018, 22:19
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2018, 22:19
Помогаю со студенческими работами здесь

Программа выводит только целые корни уравнения
Добрый вечер, вот решил напистаь программку, которая считает квадратные уравнения, но при выводе...

Программа выводит только целую часть числа
//Найти среднее арифметическое среди // простых чисел, расположенных после минимального значения....

Программа выводит только последнего студента, но не всех
День добрый! Помоги разобраться. Написал прогу на паскале для ввода данных студентов и вывода....

Программа выводит только первую строку текста
// yourcat.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot;...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru