Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
19 / 15 / 7
Регистрация: 27.02.2012
Сообщений: 742
1

Типы данных

15.04.2015, 18:43. Просмотров 374. Ответов 14
Метки нет (Все метки)

C++
1
2
3
__int64 Z = pow(a,x);
    long double Y = 9/Z;
cout<<Y //Y = 0
Как вывести подробней?

Добавлено через 6 минут
И при Y%Z не канает, вещественное на целочисленное не делится, есть альтернативы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2015, 18:43
Ответы с готовыми решениями:

Типы данных: есть ли универсальный тип, который может заменить все типы данных в Си?
Добрый вечер! Был бы очень признателен, если бы Вы помогли бы мне понять нижеследующие вопросы:...

Типы данных: чем отличается тип данных int от float?
Всем привет! Помогите пожалуйста, чем отличается тип данных int от float?

Чтение недопустимых данных, динамические массивы, типы данных
Добрый день, реализую метод интерполяции сплайнами на С++, при подсчете одного из коэффициентов...

Типы данных
Ребят, можете мне помочь написать простенькую прогу на c++ где использовались бы все типы...

14
13462 / 7127 / 1710
Регистрация: 30.01.2014
Сообщений: 11,899
15.04.2015, 18:58 2
Цитата Сообщение от Satansoft Посмотреть сообщение
Как вывести подробней?
Что именно нужно вывести? Знаки после запятой?
0
19 / 15 / 7
Регистрация: 27.02.2012
Сообщений: 742
15.04.2015, 19:01  [ТС] 3
Цитата Сообщение от DrOffset Посмотреть сообщение
Что именно нужно вывести? Знаки после запятой?
Да, для наглядности. Но куда более важно, что Вещественное надо разделить с остатком на целочисленное, а компилятор ругаеццо..

Не по теме:

да даже кальк мелкомягких в рабской винде флоат на инт делит блеа

0
13462 / 7127 / 1710
Регистрация: 30.01.2014
Сообщений: 11,899
15.04.2015, 19:05 4
Satansoft,
C++
1
2
3
__int64 Z = pow(a,x);
    long double Y = 9./Z;
cout << Y ;
Если оба операнда у деления целочисленные, то и результат будет целочисленный. Для того, чтобы получить вещественный результат, то нужно, чтобы хотя бы один операнд тоже был вещественым.
1
243 / 163 / 133
Регистрация: 30.09.2012
Сообщений: 690
15.04.2015, 19:05 5
C++
1
long double Y = 9./Z;
Точку надо поставить, чтобы предотвратить преобразование в int
1
DrOffset
15.04.2015, 19:07
  #6

Не по теме:

Цитата Сообщение от Satansoft Посмотреть сообщение
да даже кальк мелкомягких в рабской винде флоат на инт делит блеа
Да, но ты же делишь int на int :)

0
19 / 15 / 7
Регистрация: 27.02.2012
Сообщений: 742
15.04.2015, 19:26  [ТС] 7
Вопрос невнимальности решили, но остаток от деления вещественного на целочисленное по прежнему необходим.

C++
1
2
long double Z = b/pow(a,x); // a = 6, b = 9, x = 8, p = 11
    //long double Y =  Z%p;
0
13462 / 7127 / 1710
Регистрация: 30.01.2014
Сообщений: 11,899
15.04.2015, 19:31 8
Satansoft, http://www.cplusplus.com/reference/cmath/fmod/
0
19 / 15 / 7
Регистрация: 27.02.2012
Сообщений: 742
15.04.2015, 19:35  [ТС] 9
DrOffset,
знаю про него, но предпочел по-колхански
C++
1
long double Y =  Z-Z/p;
теперь бы ещё округлить в большую сторону до целой части, избавившись от дробной.
0
13462 / 7127 / 1710
Регистрация: 30.01.2014
Сообщений: 11,899
15.04.2015, 19:48 10
Цитата Сообщение от Satansoft Посмотреть сообщение
теперь бы ещё округлить в большую сторону
http://www.cplusplus.com/reference/cmath/ceil/
1
19 / 15 / 7
Регистрация: 27.02.2012
Сообщений: 742
15.04.2015, 20:04  [ТС] 11
DrOffset, не годится, функция 4,871243297169223095149021074947e-7 превращает в 13.
0
13462 / 7127 / 1710
Регистрация: 30.01.2014
Сообщений: 11,899
15.04.2015, 20:25 12
Satansoft, как это у тебя получилось, интересно?
0
19 / 15 / 7
Регистрация: 27.02.2012
Сообщений: 742
15.04.2015, 20:29  [ТС] 13
DrOffset, всё действо...

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
#include <iostream>
#include <math.h>
#include <conio.h>
 
using namespace std;
__int64 MyPow(__int64 n,__int64 m)
{
   __int64 res=1;
   for(__int64 i=1;i<=m;i++)
      res*=n;
   return res;
}
 
int main ()
{
   int M = 5;
   int p = 11;
   int g = 2;
   int x = 8;
   int k = 9;
 
   __int64 y = MyPow(g,x)%p;
 
   __int64 a = MyPow(g,k)%p;
 
   long double b = (MyPow(y,k)*M)%p;
 
   long double Z = b/pow(a,x); // a = 6, b = 9, x = 8, p = 11
   long double Y = ceil(Z/p);
   cout<<Z<<endl;
   cout<<Y;
 
   cout<<y<<endl;
   cout<<"a = "<<a<<endl;
   cout<<"b = "<<b<<endl;
 
   cout<<"Decrypt = "<<Y<<endl;
   _getch();
 
   return 0;
}
0
Миниатюры
Типы данных  
13462 / 7127 / 1710
Регистрация: 30.01.2014
Сообщений: 11,899
15.04.2015, 20:34 14
Satansoft, мне кажется тебе хватит на сегодня программировать
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
#include <iostream>
#include <math.h>
#include <conio.h>
 
using namespace std;
__int64 MyPow(__int64 n, __int64 m)
{
    __int64 res = 1;
    for (__int64 i = 1; i <= m; i++)
        res *= n;
    return res;
}
 
int main()
{
    int M = 5;
    int p = 11;
    int g = 2;
    int x = 8;
    int k = 9;
 
    __int64 y = MyPow(g, x) % p;
 
    __int64 a = MyPow(g, k) % p;
 
    long double b = (MyPow(y, k)*M) % p;
 
    long double Z = b / pow(a, x); // a = 6, b = 9, x = 8, p = 11
    long double Y = ceil(Z / p);
    cout << Z << endl;
    cout << Y << endl; //<<---- ТУТ
 
    cout << y << endl;
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
 
    cout << "Decrypt = " << Y << endl;
    _getch();
 
    return 0;
}
1
19 / 15 / 7
Регистрация: 27.02.2012
Сообщений: 742
15.04.2015, 20:42  [ТС] 15
Цитата Сообщение от DrOffset Посмотреть сообщение
мне кажется тебе хватит на сегодня программировать
Ну слиплось... Меня больше всего веселит, что это всего-то каркас метода шифрования, который затем модифицируется, а вся загвоздка в реализации этой формулы:
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2015, 20:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

типы данных
уважаемые программисты, как отвести типу char 2 байта? пишу шахматы, 6 фигур, хочу, чтобы каждый...

Типы Данных
Извиняюсь, за тупой вопрос, но какой самый большой целочисленный тип данных доступный в компиляторе...

Типы данных
Перекопал везде и всюду, может где-то и есть обьяснение по поводу типов данных. Какая разница...

Типы данных C++
Помогите пожалуйста. Нужно, чтобы при вводе переменной неизвестного типа данных (который не...

типы данных
Подскажите как средствами С++ получить доступ к отдельным байтам стандартных типов данных, только...

Типы данных
Какого типа мне нужна переменная, чтобы принимала во такое число: 100000000000000 (15 цифр) ???


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.