Форум программистов, компьютерный форум CyberForum.ru

Зачем нужные поразрядные операции. Книга Павловская, Щупак - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ проблемы с памятью.... http://www.cyberforum.ru/cpp-beginners/thread47753.html
с алгоритмом вроде все нормально но вот происходит такая вещи при определенном действии выдается сообщение которое на скриншоте.... потом высвечивается вот эта строка int Put_Reis(FILE *f_reis, MAP *new_marsh,char*tek_data,int num) { int i, j, reis_count,reis_max,chislo_int,god_int,mesyac_int; char chislo, god,mesyac,tmp,dat_update; LIST_REIS *reis=new LIST_REIS; ...
C++ Матрица.Поиск точки У меня есть матрица 25 х 80.Есть функция,которая принимает ссылку на матрицу и текущее расположение(координаты точки). Мне нужно найти данную точку(т.е. отдельный класс создан). Обзор видимости 5 клеток во всех направлениях у текущей точки.Не могу подробно объяснить,рисунок внизу. Мне нужно найти точку данного типа.Причем лучше алгоритм такой,чтобы найти ближайшую точку. У меня есть класс... http://www.cyberforum.ru/cpp-beginners/thread47713.html
C++ Перегрузка + для строк
есть задача перегрузить = и + таким образом чтобы: строка1=срока2+строка3 с = проблем нет. а вот при перегрузке + выдает ошибку при доступе к закрытым данным //STRING2.H #ifndef STRING2_H #define STRING2_H #include <iostream.h> class String
Как подключить к проекту новый файл с функцией C++
Есть работающий проект на C++ (dll) Хочу в Visual Studio 2008 создать в проекте отдельный файл и в этом файле создать свою функцию которую можно было бы вызывать из существующих файлов Я создал в проекте новый Пустой файл .cpp написал там свою функцию прописал в существующем файле проекта #include "noviy_fail.cpp" но при определении функции в новом фале выскакивают ошибки из существующих...
C++ Выход по ESC http://www.cyberforum.ru/cpp-beginners/thread47691.html
Приветствую вас уважаемые "чатлане"! .Пишет вам "пацак". Я начал с Borland C++ 3.1. Наверное все очень просто на самом деле, но как и у всех начинающих ...Есть инструкция - вывод символа на экран и в порт rs-232,которая зацикливается d бесконечным цикле.Внимание вопрос..- Подскажите, как сделать,чтобы программа завершалась только по нажатию клавиши ESC? void main (void) { ...
C++ C++ не могу в нём разобраться (заход 2) Спасибо что помогли мне я думаю что эти задания правильно решены. Извините что я вас загружаю этими задачами но просто я не понимаю этот язык C++. Помогите ещё задачи решить. 1. Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого (само другое число в качестве делителя не рассматривается). Найти все пары натуральных дружественных чисел,... подробнее

Показать сообщение отдельно
Biblio
2 / 2 / 0
Регистрация: 30.04.2009
Сообщений: 27
20.08.2009, 12:21  [ТС]     Зачем нужные поразрядные операции. Книга Павловская, Щупак
Спасибо всем огромное за комментарии. Если я правильно понимаю, вся загвоздка задачи в этой фразе: "Функция F должна принимать действительное значение, если выражение (Ац ИЛИ Вц) И (Ац ИЛИ Сц) не равно нулю, и целое в противном случае".
Я ее понимаю так:
Функция F должна быть равна действительному (вещественному, т.е. в нашем случае float числу), если выражение (Ац ИЛИ Вц) И (Ац ИЛИ Сц) НЕ РАВНО нулю, и F должна быть равна целому числу (в нашем случае int), если выражение (Ац ИЛИ Вц) И (Ац ИЛИ Сц) РАВНО нулю. При этом выражение (Ац ИЛИ Вц) И (Ац ИЛИ Сц), содержит поразрядные операции, т.е. фактически в нем вычисляется булево выражение (A&B)|(A&C) которое проверяется на равенство нулю.
Я переделала код, только теперь не знаю, как проверить, правильно ли он работает. Если выражение (Ац ИЛИ Вц) И (Ац ИЛИ Сц) считает нолики и единицы, то как мне проверить правильность работы программы? У меня это выражение всегда не равно нулю.
Плюс, у программы странное поведение при переходе через ноль. При значениях дельты 0.1, 0.2, 0.4 при переходе через ноль в значение функции попадает какой-то мусор. При других значениях дельты выражение f=x/c считается нормально, т.е. f= 0
Вот мой новый вариант:
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
#include <iostream>
using namespace std;
 
int main()
{
    float a = 1.2f, b = 2.3f, c = 3;//действительные числа
    float Xn, Xk, dX, f;//значения функции (начальное, конечное, дельта, результат)
    cout << "Vvedite Xn, Xk, dX: ";
    cin >> Xn >> Xk >> dX;
    if(Xk<=Xn)
    {
        cout << "Ntpravilno vvedeni dannie. Xk ne m/b < Xn\n";
        cout << "Vvedite Xn, Xk, dX: ";
        cin >> Xn >> Xk >> dX;
    }
    cout << "a = " << a << " b = " << b << " c = " << c << endl; 
    cout << "Xn = " << Xn << " Xk = " << Xk << " dX = " << dX << endl; 
    cout << "-----------------" << endl;
    for(float x = Xn; x <= Xk; x += dX)
    {
        //Вычисление функции
        if(x < 0 && b != 0)
        {   
            f = a*x*x+b;
            cout << "При х = " << x << "; f (x < 0 && b !=0) = " << f << endl;
        }
        else
        {
            if(x > 0 && b == 0)
            {
                if(x == c) 
                {
                    cout << "На ноль делить нельзя";
                    return 0;
                }
                else 
                {
                    f = (x-a)/(x-c);
                    cout << "При х = " << x << "; f (x > 0 && b == 0) = " << f << endl;
                }
            }
            else            
            {
                f = x/c;
                cout << "При х = " << x << "; f = " << f << endl;
            }
        }
        //Приведение ее к нужному значению в связи с условием.
        if(((int(a) | int(b)) & (int(a) | int(c))) != 0)
        {
            cout << "Неприведенное значение F = " << f << "   |\n";
            cout << "-----------------" << endl;
        }
        else
        {
            cout << "При х = " << x << " Приведенное значение F = " << int(f) << "   |\n";
            cout << "-----------------" << endl;
        }
 
    }
return 0;
}
Простите за дотошность. Просто хочется понять задачу.
Для
Цитата Сообщение от skvor Посмотреть сообщение
Кашмар!
В августе зачеты никто не ставит. Есть еще просто интерес
 
Текущее время: 07:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru