Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
.NET 4.x

Проверить правильность написания блок-схемы к имеющемуся коду

02.09.2018, 08:02. Показов 1679. Ответов 3

Студворк — интернет-сервис помощи студентам
Я каждую процедуру не писал отдельно, как это принято, а объединил все процедуры в одну общую блок-схему, выделив каждую отдельную процедуру отдельным цветом. Так что на это не обращайте внимания
Меня интересует правильно ли я обозначил сами блоки (ромбы, прямоугольники, итд) относительно кода, и правильно ли я поставил переходы между блоками (стрелки).

Кликните здесь для просмотра всего текста
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
using System;
using System.Linq;
using System.Text.RegularExpressions;
 
namespace CplxCalc
{
    public class Complex : IEquatable<Complex>
    {
        private int A { get; set; }
        private int B { get; set; }
 
        public Complex()
        {
            A = 0;
            B = 0;
        }
        //int a действительная часть - int b мнимая часть 
        //Параметрический конструктор
        public Complex(int a, int b)
        {
            A = a;
            B = b;
        }
 
        public Complex(string a, string b)
        {
            A = int.Parse(a);
            B = int.Parse(b);
        }
        //Перегрузки бинарных операторов сложение вычитание умножение деление
        public static Complex operator +(Complex first, Complex second)
        {
            return new Complex(first.A + second.A, first.B + second.B);
        }
 
        public static Complex operator -(Complex first, Complex second)
        {
            return new Complex(first.A - second.A, first.B - second.B);
        }
 
        public static Complex operator *(Complex first, Complex second)
        {
            return new Complex(first.B * second.B - first.A * second.A,
                first.B * second.A + second.B * first.A);
        }
 
        public static Complex operator /(Complex first, Complex second)
        {
            var newA = (first.B * second.B + first.A * second.A) /
                       (int)(Math.Pow(second.B, 2) + Math.Pow(second.B, 2));
            var newB = (second.B * first.A - first.B * second.A) /
                       (int)(Math.Pow(second.B, 2) + Math.Pow(second.A, 2));
            return new Complex(newA, newB);
        }
        //Метод сравнения комплексных чисел
        public static bool operator ==(Complex a, Complex b)
        {
            if (ReferenceEquals(null, a) || ReferenceEquals(null, b)) return false;
            return a.Equals(b);
        }
 
        public static bool operator !=(Complex a, Complex b)
        {
            return !(a == b);
        }
 
        //Метод получения хеш-суммы текущего объекта
        public override int GetHashCode()
        {
            unchecked
            {
                return (A.GetHashCode() * 397) ^ B.GetHashCode();
            }
        }
 
        //Перегруженный метод для вывода в строку.
        public override string ToString()
        {
            return $"({B};{A})";
        }
 
        public void WriteToConsole()
        {
            var imagePart =
                A > 0 ?
                    " + " + A :
                    " - " + (-A);
            Console.WriteLine(B + imagePart);
        }
 
        public static Complex GetComplexFromUserInput()
        {
            Console.WriteLine("Введите числа X и Y для нового комплексного числа в формате (+\\-)X(+\\-)Y. По окончанию ввода нажмите Enter");
 
            //Получение строки от пользователя
            string readStrAsCplx = Console.ReadLine();
            //Строка проверяется на null
            if (readStrAsCplx == null) return new Complex();
 
            //Удаление двойных проблелов из ввода пользователя
            readStrAsCplx = readStrAsCplx.Replace("++", "+");
            readStrAsCplx = readStrAsCplx.Replace("--", "-");
            readStrAsCplx = readStrAsCplx.Replace("+-", "-");
            readStrAsCplx = readStrAsCplx.Replace("-+", "-");
            //Удаление на всякий случай всех пробелов
            readStrAsCplx = readStrAsCplx.Replace(" ", "");
 
            //С помощью функции Regex.Split расщепление строки на символы + и - и сразу на группы символов +(число) и -(число)
            //Группы чисел, те, которые выпадают со знаками ((+\-)X;(+\-)Y)
            string[] valGroups = Regex.Split(readStrAsCplx, @"((\-|\+)*\d+)");
 
            //Осмотр всех групп и удаление всего лишнего - удаление пустых элементов и удаление символов - и +. 
            //Остаются только группы -(число) и +(число) - проверка их и отправка в конструктор Complex, 
            //который в int.Parse уже сам разбирается где отрицательное число, а где положительное.
            string[] result = valGroups.Where(gs => new[] { "+", "-" }.Contains(gs) == false && !string.IsNullOrEmpty(gs)).ToArray();
 
            //Проверка на то, что пользователь ввёл два числа
            //Числа для комплексного числа должно быть 2 (+\-)X и (+\-)Y
            if (result.Length != 2) 
            {
                Console.WriteLine("Введены некорректные данные для формирования комплексного числа.");
                return new Complex();
            }
 
            //Создание комплексного числа
            return new Complex(result.First(), result.Last());
        }
 
        bool IEquatable<Complex>.Equals(Complex other)
        {
            throw new NotImplementedException();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите первое комплексное число");
            Complex myInfo = Complex.GetComplexFromUserInput();
            Console.WriteLine("Введите второе комплексное число");
            Complex myInfo2 = Complex.GetComplexFromUserInput();
            Console.WriteLine("Введите третье комплексное число");
            Complex myInfo3 = Complex.GetComplexFromUserInput();
 
            Complex result1 = myInfo2 + myInfo3;
            Complex result2 = myInfo3 - myInfo2;
            Complex result3 = myInfo * myInfo2;
            Complex result4 = myInfo / myInfo3;
 
            Console.WriteLine("Проверка комплексных чисел на равенство");
            Console.WriteLine("Комплексные числа " + myInfo + " и " + myInfo2 + " " + (myInfo == myInfo2 ? "" : "не") + " равны");
 
            Console.Write("Первая пара комплексных чисел: ");
            myInfo.WriteToConsole();
            Console.Write("Вторая пара комплексных чисел: ");
            myInfo2.WriteToConsole();
            Console.Write("Третья
Миниатюры
Проверить правильность написания блок-схемы к имеющемуся коду  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2018, 08:02
Ответы с готовыми решениями:

Проверить правильность составления блок-схемы
Здравствуйте, учусь составлять блок-схемы. Проверьте, пожалуйста правильно ли у меня получилось. Может надо было более детально всё...

Проверить правильность написания кода
Приветствую всех.Взялся изучать шарп.Ребят правильно ли я прокоментировал этот код? (Заранее спасибо):

Вычисление значений функций. Проверить правильность написания кода
Правильно ли написана программа ? Запишите и выполните программу на вычисления значений функций. Число х вводите с клавиатуры. ...

3
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
03.09.2018, 03:21
Лучший ответ Сообщение было отмечено xamelione25 как решение

Решение

xamelione25, У преподавателя дым из ушей пойдёт)))))
Да, вероятно, что там не нужен GetHashCode - так как эта перегрузка срабатывает не всегда. Попробуй поставить точку остановки внутри этого блока (F9) и нажми (F5) - скорее всего там не будет прохода вообще.

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
public override int GetHashCode()
        {
            unchecked
            {
                return (A.GetHashCode() * 397) ^ B.GetHashCode();//ВОТ ТУТ НАЖМИ (F9) - поставь точку остановки и нажми (F5)
            }
        }
1
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
03.09.2018, 03:25  [ТС]
Umatkot_Primtep,
Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
так как эта перегрузка срабатывает не всегда
Так может быть её вообще убрать?

Цитата Сообщение от Umatkot_Primtep Посмотреть сообщение
Попробуй поставить точку остановки внутри этого блока (F9) и нажми (F5) - скорее всего там не будет прохода вообще.
Я "не прохода" вообще не заметил никаких разниц я не увидел
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
03.09.2018, 03:28
xamelione25, Убери лучше, лишних вопросов не будет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2018, 03:28
Помогаю со студенческими работами здесь

Блок-схемы к коду
Нужны блоксхемы к следующим задачам: 1) using System; using System.Collections.Generic; using System.Text; namespace...

Программа автоматизированного построения блок-схемы по коду
Добрый вечер. Интересует такая программа. Подскажите пожалуйста, кто такую знает название программы. Если такой не найдется. То есть мысли...

Не могли бы вы проверить правильность построения блок схемы?
делаю блок схему, но не знаю правильно или нет, будьте добры подскажите те кто разбирается в этом? #include &lt;iostream&gt; using...

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

Проверить правильность написания сочетаний «жи», «ши», «ча», «ща»
Последовательностью слов задана строка. Проверить правильность написания сочетаний «жи», «ши», «ча», «ща», «чу» и «щу». Если надо, то...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru