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

Почему if не хочет отрабатывать?

04.04.2022, 16:57. Показов 633. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
using System;
 
namespace ConsoleApp2
{
    internal class Program
    {
        private static void ConsoleColorChanger()
        {
            // Задаём цвет консоли
            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;
            // Обновляем консоль
            Console.Clear();
        }
        static void Main(string[] args)
        {
            ConsoleColorChanger();
            // Инициализация полей
            int _X0 = -10; // Начальное значение
            int _XN = 100; // Конечное значение
            int _dX = 20; // Шаг по простраственной сетке
            int _dx = 2; // Шаг по значениям сетки
 
            // Инициализация массива простраственной сетки
            int[] X = new int[_XN / _dX];
 
            // Инициализация массивов результатов
            double[] z1 = new double[X.Length];
            double[] z2 = new double[z1.Length];
 
            // Цикл разбиения узлов сетки
            X[0] = _X0;
            for (int i = 1; i < (_XN / _dX); i++)
            {
                X[i] = X[i - 1] + _dx;
            }
 
            // Заголовок и шапка таблицы
            Console.WriteLine("X\tz1\tz2");
 
            // Основной цикл обсчета функций z1 и z2
            for (int i = 0; i < X.Length; i++)
            {
                Console.Write(X[i] + "\t"); // Вывод x
 
                z1[i] = Math.Round(Math.Cos((double)X[i]) + Math.Cos((double)(2 * X[i])) + Math.Cos((double)(6 * X[i])) + Math.Cos((double)(7 * X[i])), 2);
                Console.Write(z1[i] + "\t"); // Вывод z1
 
                z2[i] = Math.Round(Math.Pow(Math.Cos((double)X[i]), 2) + Math.Pow(Math.Cos((double)X[i]), 4), 2);
                Console.Write(z2[i] + "\n"); // Вывод z2
 
                if (z1[i] == z2[i])
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Нашлось пересечение в точке: (" + X[i] + ", " + z1[i] + ")");
                    Console.ForegroundColor = ConsoleColor.Black;
                }
            }
            Console.ReadKey();
        }
 
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2022, 16:57
Ответы с готовыми решениями:

Почему может не отрабатывать API BitrixMobile в мобильном приложении Битрикса?
Добрый день! Господа, вопрос адресован к тем разработчикам, которые работали с очередным чудом от Битрикса - BitrixMobile. Создал...

Глючит страшно курсор: хочет сам все выделяет, хочет удаляет часть текста, хочет прыгает где ему вздумаеться
Подскажите как быть...глючит страшно курсор: хочет сам все выделяет, хочет удаляет часть текста, хочет прыгает где ему вздумаеться(у меня...

Ajax не дает скрипту отрабатывать
Пожалуйста, помогите. Чувствую, что решение на поверхности, но туплю. Проблема такая. Нужен сайт с простыми опросами. Установлен wordpress...

4
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
04.04.2022, 17:23
Цитата Сообщение от topovsky3 Посмотреть сообщение
Почему if не хочет отрабатывать?
А почему он должен отработать? Все элементы z1 и z2 у вас не совпадают, судя по выводу таблицы.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
04.04.2022, 17:27
Цитата Сообщение от topovsky3 Посмотреть сообщение
Почему if не хочет отрабатывать?
Странный вопрос.
Потому, что условие не выполняется.

Поставьте точку останова на нём и смотрите в отладчике какие значения у z1[i] и z2[i].
Так же имейте ввиду, что прямое сравнение double значений полученных разными методами может давать неверный результат из-за ошибок округления при вычислениях.
Допустим, в double нельзя точно представить десятичное значение 0.2.
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
04.04.2022, 17:45
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Поставьте точку останова на нём и смотрите в отладчике какие значения у z1[i] и z2[i].
Там даже точка останова не нужна. Они на экран выводятся перед условием.
1
 Аватар для roach1967
983 / 463 / 233
Регистрация: 27.06.2014
Сообщений: 1,033
04.04.2022, 21:05
topovsky3, попробуйте изменить так:
C#
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
            // Основной цикл обсчета функций z1 и z2
            double min = double.MaxValue;
            int idx = -1;
            for (int i = 0; i < X.Length; i++)
            {
                Console.Write(X[i] + "\t"); // Вывод x
 
                z1[i] = Math.Round(Math.Cos(X[i]) + Math.Cos(2 * X[i]) + Math.Cos(6 * X[i]) + Math.Cos(7 * X[i]), 2);
                Console.Write(z1[i] + "\t"); // Вывод z1
 
                z2[i] = Math.Round(Math.Pow(Math.Cos(X[i]), 2) + Math.Pow(Math.Cos(X[i]), 4), 2);
                Console.Write(z2[i] + "\n"); // Вывод z2
 
                if (Math.Abs(z1[i] - z2[i]) < min)
                {
                    min = Math.Abs(z1[i] - z2[i]);
                    idx = i;
                }
            }
            if (idx > 0)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"Максимальное сближение в точке: ({X[idx]}, {z1[idx]}, {z2[idx]})");
                Console.ForegroundColor = ConsoleColor.Black;
            }
            Console.ReadKey();
Результат:
Code
1
2
3
4
5
6
7
X       z1      z2
-10     -0.75   1.2
-8      -0.89   0.02
-6      1.28    1.77
-4      -1.34   0.61
-2      -0.09   0.2
Максимальное сближение в точке: (-2, -0.09, 0.2)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2022, 21:05
Помогаю со студенческими работами здесь

не хочет работать,почему?
CALCULATED proc near mov ax,B mul D div E mov X2,ax mov ax,A sub ax,C add ax,X2

Почему Яндекс не хочет…
Я чайник, сделал сайт http://sttars.narod.ru/ прошло больше 3-х недель и Янд ни как не проиндексирует. Делал с помощью Namo, пытался...

При добавлении WM_PAINT перестаёт отрабатывать ToolTips
Друзья, не могу понять :-( Вот пишу для примера так void CreateHint(HWND hwnd, char* strTT) { HWND hwndTT; TOOLINFO...

Возможность для 2**I отрабатывать в виде вызова mypow(2, I)
Привет всем. В книге Страуструпа, есть такая задачка: По сложности стоит (*1.5), т.е не сложная. Но я что то не могу её решить, кроме...

Почему не хочет брать переменную?
Здравствуйте, я новичок и мне нужна ваша помощь. Есть код: public static int nn = 22; public static int a; public static...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru