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

Обыкновенные дроби - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что можно сделать при помощи Shell Extensions? http://www.cyberforum.ru/cpp-beginners/thread506274.html
Здравствуйте! Я хочу в своей программе создать такую ветку дисков и папок: http://www.relib.com/forums/Uploads/Images/b5c3ba4e-225c-4e5d-a27e-ee25.jpg Я создал CTreeCtrl и даже смог получить установленные на компьютере диски, но как мне получить доступ к Рабочему столу, Сетевому окружению и прочему? Т.е. сейчас у меня ничего кроме дисков и их содержимого показать не получается, а хотелось...
C++ Как воспроизводить звуковые файлы через API функции? какую структуру имеют файлы форматов wav,mp3 как воспроизвести эти файлы через API функции и без них (своими "ручками") http://www.cyberforum.ru/cpp-beginners/thread506269.html
Simple MAPI для отправки почты в приложении C++
Добрый день. Возникла необходимость отправлять e-mail в приложении, не нагружая пользователя запуском почтовика и необходимостью каждый раз заполнять адресные поля и т.д. Приложение пишется в VC++ (VS 2005) с использованием mfc. Пытаюсь использовать для этой цели библиотеку MAPI. Пишу следующий код: LHANDLE pSession; MapiRecipDesc *pRecipient; //Структура получателей. MapiMessage pMessage;...
C++ Поиск в Word
Сразу скажу - в классическом C++ не очень, в основном на C# и VB. Но вот стоит передо мною задача, а выполнить никак не могу. Потому и уповаю на вашу помощь. Задача така - нужно выполнять поиск в документе Word по заданному шаблону. Для этого пишу _bstr_t m_strTemplateFile; //Имя файла. ::Word::_ApplicationPtr ptr(L"Word.Application"); ::Word::_DocumentPtr pDoc; ::Word::DocumentsPtr pDocs =...
C++ int main () { int a=3,b=2,c; c=a+b; cout << "c=" << c; } Что не правильно? http://www.cyberforum.ru/cpp-beginners/thread506240.html
#include <iostream> using namespace std; int main () { int a=3,b=2,c; c=a+b; cout << "c=" << c; }в чем ошибка??!!!
C++ Как правильно выводить переменную типа double на экран? Помогите, плиз, как правильно выводить переменную типа double на экран ?? У меня выводится какое-то непонятное число 292057083 вместо примерно 51,хххх.. По-моему проблема в строчке printf ("Skal %u",Skal); Но что именно не так ? Код всей программы: #include <IOSTREAM.H> #include <STDIO.H> #include <CONIO.H> #include <MATH.H> #define pi 3.1415926 подробнее

Показать сообщение отдельно
palva
 Аватар для palva
2439 / 1661 / 208
Регистрация: 08.06.2007
Сообщений: 6,576
Записей в блоге: 4
07.11.2006, 02:30     Обыкновенные дроби
Обычно здесь советуют использовать разложение в цепную дробь. Вот я попробовал дробь из семи звеньев.
Код
#include <stdio.h>
typedef struct {
  __int64 num, denom;
} Tq;
#define N 7
void to_frac(double a, Tq *pq) {
  int i;
  int m;
  __int64 ii, temp[N];
  m = a < 0;
  if(m) a = -a;
  for(i=0; i < N; i++) {
    temp[i] = a;
    a = 1.0 / (a - temp[i]);
  }
  pq->denom = 0;
  pq->num = 1;
  for(i=N; i-- > 0;) {
    ii = temp[i] * pq->num + pq->denom;
    pq->denom = pq->num;
    pq->num = ii;
  }
  if(m) pq->num = -(pq->num);
}
int main() {
  Tq q;
  double a;
  a = -3.2435;
  to_frac(a, &q);
  printf("%lf", a);
  printf("%I64d / %I64d", q.num, q.denom);
  printf("%lf", (double)q.num / q.denom);
  return 0;  
}
//   -3.243500
//   -1372 / 423
//   -3.243499
Можете оценить точность. Если хотите сделать количество звеньев как параметр функции, то придется выделять память для массива temp переменного размера, а потом ее освобождать.
 
Текущее время: 06:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru