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

Переделать функцию с помощью шаблонов - C++

Восстановить пароль Регистрация
 
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
24.03.2014, 16:05     Переделать функцию с помощью шаблонов #1
оформить в виде шаблона функции,использующие эти шаблоны для типов int, float, double.
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
#include "stdafx.h"
#include <stdio.h>   
#include <conio.h>   
#include <math.h>   
  
void dvoich(int num) {
    int mod;
    long c = 0, p=1;
    while (num > 0) {
        mod = num % 2;
        num = (num - mod) / 2;
        c += mod * p;
        p *= 10;
    }
    printf("\nDvoichnoe chislo: %ld", c);
}  
void main()   
{
    int a;  
    printf("Vvedite desyatichnoe chislo:");  
    scanf("%d",&a);  
     dvoich(a);  
    getch();  
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
24.03.2014, 16:17     Переделать функцию с помощью шаблонов #2
Bakinowski Wlad, самое интересное это как вы себе представляете перевод дробного числа в двоичное представление?
Очень много возни.
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
24.03.2014, 16:48  [ТС]     Переделать функцию с помощью шаблонов #3
SatanaXIII, я не виноват, такое задание, которое не могу сделать!

Добавлено через 26 минут
ни у кого нет мыслей как сделать?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
24.03.2014, 16:58     Переделать функцию с помощью шаблонов #4
Цитата Сообщение от Bakinowski Wlad Посмотреть сообщение
ни у кого нет мыслей как сделать?
ну для целых так же как и у Вас, для вещественных придется писать отдельную специализацию.


Двоичное представление объекта в памяти
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
#include <iostream>
#include <string>
#include <climits>
 
template < typename T >
std::string foo ( const T & obj )
{
   const char * pObject = reinterpret_cast < const char * > ( &obj ) ;
   const char * pObjectEnd = pObject + sizeof ( obj ) ;
   std::string result ;
   for ( ; pObject != pObjectEnd ; ++pObject ) {
      for ( int shift = 0 , shiftEnd = CHAR_BIT ; shift != shiftEnd ; ++shift ) {
         result.push_back ( ( ( *pObject >> ( shiftEnd - shift - 1 ) ) & 1 ) ? '1' : '0' ) ;
      }
   }
   return result ;
}
 
 
class A {
   int x ;
   int f ;
public:
   A ( ) : x ( -1 ) , f ( 0 ) {
   }
} ;
 
 
int main()
{
    int a = 254 ;
    short int b = 256 ;
    double x = 44.65 ;
    std::cout << foo ( a ) << std::endl ;
    std::cout << foo ( b ) << std::endl ;
    std::cout << foo ( x ) << std::endl ;
    std::cout << foo ( A() ) << std::endl ;
}
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
24.03.2014, 17:00  [ТС]     Переделать функцию с помощью шаблонов #5
Croessmah, можете вкратце рассказать, как для вещественных?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
24.03.2014, 17:04     Переделать функцию с помощью шаблонов #6
Лекция. Представление вещественных чисел
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2014, 17:08     Переделать функцию с помощью шаблонов
Еще ссылки по теме:

Как переделать через функцию?( C++
C++ Переделать кусок программы в функцию
Переделать код с помощью шаблонных функций C++

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

Или воспользуйтесь поиском по форуму:
Bakinowski Wlad
1 / 1 / 0
Регистрация: 08.10.2013
Сообщений: 155
24.03.2014, 17:08  [ТС]     Переделать функцию с помощью шаблонов #7
Croessmah, спасибо!
Yandex
Объявления
24.03.2014, 17:08     Переделать функцию с помощью шаблонов
Ответ Создать тему
Опции темы

Текущее время: 22:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru