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

Объединить ветки оператора выбора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Интегрирование методом левых прямоугольников http://www.cyberforum.ru/cpp-beginners/thread1220387.html
Доброго времени суток, дорогие программисты. В универе дали задание, а я С++ не особо шарю, помогите пожалуйста выполнить) Задание: "В прикладной программе проводится функция f(x)=cos(x), пределы...
C++ Получить таблицу значений функции Получить таблицу значений функции y=th(x) при x, изменяющемся от -1 до 1 с шагом 0.1. Вычисление значений функции оформить в виде функции. Результаты представить в виде таблицы. Функция... http://www.cyberforum.ru/cpp-beginners/thread1220381.html
Прием, передача и сравнение последовательности Баркера C++
Подскажите пожалуйста.Пишу программу клиент-сервер. Клиент передает м-последовательность или последовательность Баркера, сервер ее принимает и проверяет правильная ли последовательность пришла, для...
Найти слово, начинающееся буквой "а" и оканчивающееся буквой "я" C++
дана строка. найти какое-нибудь слово, начинающееся буквой а и оканчивающееся буквой я. если таких слов нет, то сообщить об этом
C++ Подсчитать сколько различных букв использовано при написании строки http://www.cyberforum.ru/cpp-beginners/thread1220354.html
Задана строка. Подсчитать сколько различных букв использовано при написании строки.( строка:мама.результат работы программы-2 буквы)
C++ Функция вывода с использованием класса Предположим, у меня есть класс прямоугольника Window; И я реализовал в нем функцию вывода void Window::print (std::string& s) {...} Которая работает Преположим, я создал Window w1; Но я хочу,... подробнее

Показать сообщение отдельно
Mexico92
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 44

Объединить ветки оператора выбора - C++

01.07.2014, 12:08. Просмотров 197. Ответов 0
Метки (Все метки)

Ребят, нужна помощь. Последние две ветки необходимо объединить в одну, начиная с c<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
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
#include "stdafx.h"
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
using namespace std;
 
 
static union{
    float mant; 
    unsigned int bz; //целое беззнаковое
    } chislo;
 
void bin(unsigned int a) //код в двоичной системе
{   char b[32];
    for (int i = 0; i < 32; i++){
        b[i] = a % 2;
        a = a / 2;}
    for (int i = 0; i < 32; i++)
        printf("%1d", b[31 - i]);}
 
int main(){
    setlocale(LC_ALL, "Russian");
    unsigned int a, b;
    int c;
    char d[32];
    float input;
    cout << "Введите число: ";
    cin>>input;
    chislo.mant=input;
 
    a = chislo.bz;  //целое число без знака
    cout <<"Машинный код числа: ";
    bin(a); //Вывод числа в двоичном коде
    cout << endl;
    b = a;
    //сдвиг до порядка
    a <<= 1;
    a >>= 24;
    cout<<"Порядок в двоичном коде: ";
    bin(a); // вывод порядка в двоичном виде
    cout << endl;
 
    c = a;
    c = c - 127;//перевод порядка в десятичный вид
    cout<<"Порядок в десятичном виде: ";
    cout << c;//вывод порядка в десятичном виде
    cout << endl;
 
    b <<= 9;
    b >>= 9;
    cout<<"Мантисса: ";
    bin(b); //вывод мантиссы в двоичном коде
    cout << endl;
 
    b = b | 040000000;
    cout<<"Мантисса с 1: ";
    bin(b);// Вывод мантиссы с единицей
    cout << endl;
    // Перевод в массив числа в двоичном коде
 
    int k = 23 - c;
    int k1 = 32 - k;
    b <<= k1;
    b >>= k1;
    cout<<"Целая часть: ";
    cout << int(input);
 
    cout << endl;
 
 
 
    cout<<"Дробное число: ";
    bin(b);
    cout << endl;
    /*cout << "Число в десятичном виде: 0,";
        for (int i = 0; i < 30; i++){
        b = b * 10;
        unsigned int z = b;
        z >>= 23 - c;
        cout <<z;
        b <<= 32 - (20 - c);
        b >>= 32 - (20 - c);}
        */
 
   if (c<0)
    {
        cout<<"Число в десятичном виде: 0,";
        
        unsigned long long int b=chislo.bz;
        b<<=41;
        b>>=41;
        b=b|040000000;//Добавление единицы 
    
        for (int i=0; i<30; i++)
        {
        b=b*10;
        unsigned long long int Dec=b;
        Dec>>=23-c;
 
        cout<<Dec;
        b<<=41+c;
        b>>=41+c;
        }
    }
    else
        {
        cout<<"Число в десятичном виде: ";
        
        unsigned int b=chislo.bz;
        b<<=9;
        b>>=9;
        b=b|040000000;//Добавление единицы 
 
        unsigned int Dec=b; // Выделение целой части
        Dec>>=23-c;
        cout<<Dec;
        cout<<".";
        b<<=(9+c);
        b>>=(9+c);
        
        for(int i=c; i<30; i++)   // Выделение дробной части
        {
        b=b*10;
        unsigned int Dec=b;
        Dec>>=23-c;
        cout<<Dec;
        b<<=(9+c);
        b>>=(9+c);
        }
        } 
    _getch();
}
Добавлено через 3 часа 2 минуты
//можно удалить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru