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

Проверьте правильность программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Масив D[m][n] http://www.cyberforum.ru/cpp-beginners/thread40193.html
В масиве D действительных чисел найти суму елементов суму индексов каких парна. Помогите пожалуйста. В течение 30 мин срочно надо.
C++ создать шахматную доску прошу помощи 1 Поле шахматної дошки визначаться парою натуральних чисел,кожне з яких не перевищує 8:перше число – номер вертикалі (при розрахунку зліва на право), друге – номер горизонталі (при... http://www.cyberforum.ru/cpp-beginners/thread40191.html
C++ Реализовать программу умножения полиномов
Подскажите плиз! нада прогу сдавать а я разобраться немогу(, задали: "Реализовать программу умножения полиномов", на языке С, подскажите или алгоритм какойто или с чего мне начать, ато раздуплится...
C++ Интеграл
Составить программу вычисления определенного интеграла функции f(x) на отрезке методом Симпсона.
C++ Удаление последнего введенного элемента из списка (стека) http://www.cyberforum.ru/cpp-beginners/thread40129.html
Напишите пожалуйста программу для удаления последнего введенного элемента из списка (стеку)
C++ ООП Дружественные Функции, Операторы. Собственно задание : Создать класс вещественных чисел. Определить оператор - , как функцию-член и + как дружественную функцию. проблемы вызывают операторы , непонимаю вообще как они работают.... подробнее

Показать сообщение отдельно
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
16.06.2009, 13:59
Цитата Сообщение от AltPeople Посмотреть сообщение
все что меньше 1 в двоичной системе = 0!
маленькая поправка - в компьютере и для целых чисел
В математике дроби переводяться в двоичный формат следующим образом:
1)Умножается дробь на 2;
2)Запоминается целая часть;
3)Обнуляем целую часть;
4)Повторяем пункты с 1 по 3, пока дробная часть не станет равной нулю или не получим двоичное число нужной точности.

Пример:
Число 0.125
1)0.125 х 2 = 0.250 (запомнили 0)
2)0.250 х 2 = 0.5 (запомнили 0)
3)0.5 х 2 = 1.0 (запомнили 1)
4)Дробная часть равна нулю - прекратили цикл. Выписываем полученные числа 001,
в итоге результат 0.001b
Обратный перевод: 0 х (1/2^1) + 0 x (1/2^2) + 0 x (1/2^3) = 0.125
Пример2
Число 0.3
1)0.3 х 2 = 0.6 (0)
2)0.6 х 2 = 1.2 (1, обнуляем целую часть)
3)0.2 х 2 = 0.4 (0)
4)0.4 х 2 = 0.8 (0)
5)0.8 х 2 = 1.6 (1)
6)0.6 х 2 = 1.2 (1)
7)0.2 х 2 = 0.4 (0)
8)0.4 х 2 = 0.8 (0)
9)0.8 х 2 = 1.6 (1)
Дальше видим, что цикл будет повторяться, поэтому прекратим дальнейшие вычисления, получили 0.010011001b
Проверка:
0 x (1/2^1) + 1 x (1/2^2) + 0 x (1/2^3) + 0 x (1/2^4) + 1 x (1/2^5) + 1 x (1/2^6) + 0 x (1/2^7) + 0 x (1/2^8) + 1 x (1/2^9) =
= 0.25 + 0.03125 + 0.015625 + 0.001953125 = 0.298828125(в принципе более менее точно)

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
//---------------------------------------------------------------------------
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
   double d = 0, num = 0;
   int bin[16] = {0};
   char ack;
 
 cout << "This program will convert your decimal number to binary number (16 bits)" << endl;
 while (true)
 {
   cout << "Enter the number: ";
   cin >> d;
   num =d - (int)d;
 
   for (int i = 0; i < 16; i++)
   {
      num *= 2;
      bin[i] = (int)num;
      num -= (int)num;
      if (num == 0)
      {
         bin[i+1] = '\0';
         break;
      }
      bin[i+1] = '\0';
   }
   cout << "Binary value of " << d << " is: 0,";
   for (int i = 0; i < 16; i++)
        cout << bin[i];\
   cout << "b" << endl;
   cout << endl << "Want to retry ? (y/n)";
   cin >> ack;
   if (ack != 'y')
      break;
 }
    system("pause");
   return 0;
}
//---------------------------------------------------------------------------
Добавлено через 57 минут 50 секунд
Ээ.. только что заметил, 28 и 31 строки забыл убрать они там лишние
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru