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

Реализация аффиного шифра - "программа не содержит статического метода Main, подходящего для точки входа"

30.05.2017, 10:04. Показов 1097. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Помогите пофиксить код. Не понимаю, в чем проблем с этим Main методом.
Текст ошибки: "программа не содержит статического метода Main, подходящего для точки входа."
Вот весь код:
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
using System;
using System.Linq;
 
namespace ExercisesProject.Exercises
{
    class AffineCipher
    {
        static void Main(string[] args);
 
        private static char[] Alphabet;
 
   
        public static void Run()
        {
            Console.WriteLine("AffineCipher");
            Console.WriteLine();
 
            Alphabet =
                Enumerable.Range('A', 26)
                .Concat(Enumerable.Range('a', 26))
                .Concat(Enumerable.Range(' ', 1))
                .Concat((new int[] { '?', '!', '.', ':', '-', '_', '(', ')' }))
                .Select(x => (char)x)
                .ToArray();
 
            string clearText = "Hello World! :)";
            Console.WriteLine("Original Text: " + clearText);
            Console.WriteLine();
 
            string cipherText = Cipher(clearText, 5, 7);
            Console.WriteLine("Ciphered Text: {0}", cipherText);
 
            string decipherText = Decipher(cipherText, 5, 7);
            Console.WriteLine("Deciphered Text: {0}", decipherText);
 
            Console.ReadKey();
        }
 
        static int HCF(int a, int b)
        {
            return b == 0 ? a : HCF(b, a % b);
        }
 
        static bool AreRelativelyPrimes(int m, int n)
        {
            return HCF(m, n) == 1;
        }
 
        private static bool AssertAB(int a, int b)
        {
            bool result = false;
 
            string message = string.Empty;
 
            // a and b must be in the interval 1 <= a <= Alphabet.Length
            if (a < 1 || a > Alphabet.Length)
            {
                message = string.Format("'a' must be in the interval [1,{0}]", Alphabet.Length);
            }
 
            else if (b < 1 || b > Alphabet.Length)
            {
                message = string.Format("'b' must be in the interval [1,{0}]", Alphabet.Length);
            }
 
            else if (!AreRelativelyPrimes(a, Alphabet.Length))
            {
                message = string.Format("'a' must be relatively prime to {0}", Alphabet.Length);
            }
            else
            {
                result = true;
            }
 
            Console.WriteLine(message);
 
            return result;
        }
 
        private static string Cipher(string clearText, int a, int b)
        {
            if (!AssertAB(a, b)) return clearText;
 
            string result = string.Empty;
 
            int m = Alphabet.Length;
 
            foreach (char pChar in clearText)
            {
                int p = Array.IndexOf(Alphabet, pChar);
 
                int c = a * p + b % m;
                int cIdx = c % Alphabet.Length;
                char cChar = Alphabet[cIdx];
 
                result += cChar;
            }
 
            return result;
        }
 
        private static int GetMultiplicativeInverse(int a)
        {
            int result = 1;
 
            for (int i = 1; i <= Alphabet.Length; i++)
            {
                if ((a * i) % (Alphabet.Length) == 1)
                {
                    result = i;
                }
            }
 
            return result;
        }
 
        private static string Decipher(string cipherText, int a, int b)
        {
            if (!AssertAB(a, b)) return cipherText;
 
            string result = string.Empty;
 
            foreach (var cChar in cipherText)
            {
                int c = Array.IndexOf(Alphabet, cChar);
 
                int aInverse = GetMultiplicativeInverse(a);
                int pIdx = aInverse * (c - b) % Alphabet.Length;
                if (pIdx < 0)
                {
                    pIdx += Alphabet.Length;
                }
                char pChar = Alphabet[pIdx];
 
                result += pChar;
            }
 
            return result;
        }
    }
}
Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2017, 10:04
Ответы с готовыми решениями:

Программа не содержит статического метода “Main”, подходящего для точки входа
Program.cs: using System; using System.Collections.Generic; using System.Text; namespace...

Программа не содержит статического метода main подходящего для точки входа
using System; using System.Collections.Generic; using System.Text; namespace 111 { ...

Программа не содержит статического метода main подходящего для точки входа
Вчера оба проекта нормально компилировались, а сегодня выдает ошибку &quot;Программа не содержит...

Программа не содержит статического метода main подходящего для точки входа
Помогите дорогие друзья! при компиляции выскакивает вот такая ошибка, помогите найти в чем...

Программа не содержит статического метода main подходящего для точки входа
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

4
112 / 99 / 68
Регистрация: 21.04.2014
Сообщений: 1,403
30.05.2017, 10:12 2
Лучший ответ Сообщение было отмечено max123241 как решение

Решение

max123241, просто Main должен выглядеть вот так:
C#
1
2
3
static void Main(string[] args)
{
}
С него начинается программа. А в вашем случае у него нет тела.
0
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
30.05.2017, 10:19 3
max123241, а текст ошибки Вам ничего не говорит???
1
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 17
30.05.2017, 10:24  [ТС] 4
Спасибо, теперь компилится. Но в последствии после запуска - программа сразу же закрывается...
0
Злой самаритянин
182 / 182 / 94
Регистрация: 24.04.2014
Сообщений: 686
30.05.2017, 10:29 5
C#
1
2
3
4
static void Main(string[] args)
{
    Run();
}
max123241, у тебя, похоже, не ни малейшего представления о том, что такое программирование. Начни читать хоть что-нибудь, пройди курс, по C# их полно бесплатных
0
30.05.2017, 10:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2017, 10:29
Помогаю со студенческими работами здесь

CS5001. Программа не содержит статического метода «Main», подходящего для точки входа?
using System; using System.Collections.Generic; using System.Collections.Immutable; using...

CS5001. Программа не содержит статического метода «Main», подходящего для точки входа?
Реализация алгоритма SHA-2 на C#. Выдаёт ошибку CS5001. С чем связано? namespace Sha256 { ...

CS5001. Программа не содержит статического метода «Main», подходящего для точки входа. Что делать?
Я покопался в интернете, но на данный случай ничего не нашел using System; using...

Программа не содержит статического метода "Main", подходящего для точки входа
Я уже десять раз перелопатил код, но я не понимаю что и куда Прошу вашей помощи using System; ...

Программа не содержит статического метода "Main", подходящего для точки входа
Подскажите пожалуйста, что с этим делать? using System; namespace ConsoleApp34 { class...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru