Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2011, 23:29   #1
ПаЗитиФкА
 
Регистрация: 17.11.2011
Сообщений: 6
По умолчанию задача на подпрограммы и системы счисления

Помогите, пожалуйста, с задачей.
Десятичное целое положительное число m переводится в двоичную систему счисления, разряды в этой записи переставляются в обратном порядке, и снова производится перевод в десятичную систему счисления. Напечатать в виде таблицы все полученные значения для m=512,513,514,...,1023.
Начало таблицы имеет вид 512 1000000000 0000000001 1
Перевод чисел из одной системы счисления в другую организовать в подпрограмме. Задача должна быть решена без использования символьных данных.
Заранее большое спасибо!
ПаЗитиФкА вне форума Ответить с цитированием
Старый 17.11.2011, 23:31   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

во фриланс без наработок ...
тут не бюро кодеров на благотворительной основе...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 17.11.2011, 23:40   #3
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Раз ты язык не указываешь, можно я на хаскеле напишу? ) Порадуешь преподов экзотикой.
Son Of Pain вне форума Ответить с цитированием
Старый 18.11.2011, 01:17   #4
ПаЗитиФкА
 
Регистрация: 17.11.2011
Сообщений: 6
По умолчанию

ой, с++ язык...
я тут пыталась что-то написать, сама не очень понимаю что...
Код:
#include <stdio.h>
#include <limits.h>
#include <conio.h>
#include <ctype.h>
#include <iostream>
#include <iomanip>

 int perevod(int *a)
 {
        int i=0, j=0, b;
        int m[100];
        while (b!=0)
        {
            if (b%2==1)
                 {m[i]=1;}
            else 
                 {m[i]=0;};
         b=b/2;
         ++i; ++j;
        }; 
        return m[i];
    };
    
     
       int stepen (int c, int k){     /*возведение в степень */
    int c1=1;    
    for (int i=0; i < k;++i) {   
        c1=c1*c;    /*Считаем степень */
        }
        return c1;    
}


int desyat (){  
     int z[100],n,p,i=0,k=0,c[100],o=0;
     p=n;
     while (p!=0) {    
           z[i]=p % 10;
           p=p/10;
           i++;
           k++;    /* Считаем количество цифр в числе*/
     }
     
     for (i=0;i < k;++i) {    
         if (z[i]==1){   
            c[i]=1*stepen(2,i);    
         }
         if (z[i]==0){    
              c[i]=0;
         }
     }
     for (i=0;i < k;++i) {  
        o=o+c[i];    /* сумма элементов */
     }   
         
     return 0;    /* Возвращаем нулевое значение*/
};
     main ()
{
    int k,a[1000];
    int b,c;
    int i=0, j=0;
      b=512;
    for (i=0; i<=511; i++)
     { a[i]=b;
     b++;
          
        }
    }
ПаЗитиФкА вне форума Ответить с цитированием
Старый 18.11.2011, 02:06   #5
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

А, ну плюсокодца нам никогда не жалко )

Код:
#include <conio.h>
#include <algorithm>
#include <iterator>
#include <vector>
#include <iostream>
#include <numeric>
using namespace std;
typedef vector<unsigned int> vect;

vect DecToBin(unsigned int val)
{
	vect res;
	do res.push_back(val%2);
	while (val/=2);
	return res;
}

unsigned int BinToDec(vect& val)
{
	return accumulate(val.begin(), val.end(), 0, [](unsigned int v1, unsigned int v2) { return 2*v1+v2; });
}

int main()
{
	for (int i=512; i<1024; ++i)
	{
		cout<<i<<"     ";
		vect val=DecToBin(i);
		copy(val.rbegin(), val.rend(), ostream_iterator<unsigned int>(cout));
		cout<<"     ";
		copy(val.begin(), val.end(), ostream_iterator<unsigned int>(cout));
		cout<<"     "<<BinToDec(val)<<endl;
		if (!(i%22)) getch();
	}
	getch();
}
Для компиляции понадобится visual studio 2010, или gcc 4.5, или любой другой компилятор, который уже научился понимать лямбды )
Son Of Pain вне форума Ответить с цитированием
Старый 18.11.2011, 11:14   #6
ПаЗитиФкА
 
Регистрация: 17.11.2011
Сообщений: 6
По умолчанию

глупый вопрос можно?
а лямбды - это....?
просто я в с++ вообще почти ноль
и в коде понимаю только первые семь строчек...(((
может можно как-то мою "программу" исправить?
ПаЗитиФкА вне форума Ответить с цитированием
Старый 28.11.2011, 23:25   #7
ПаЗитиФкА
 
Регистрация: 17.11.2011
Сообщений: 6
По умолчанию

проверьте, пожалуйста, кому не сложно
компилятор 8 ошибок выдает
Код:
#include <stdio.h>
#include <limits.h>
#include <conio.h>
#include <ctype.h>
#include <iostream>
#include <iomanip>

int perevod (int a, int *m, int *n) // перевод в двоичную
      { int i=0;
     int  m[100]={0};
       n=0;
       while (a!=0)
       { if (a % 2 == 1)
       m[i]=1 ;
       else  m[i]=0;
       a=a/2;
       i++;
       n++ ;
       };
       
    }
       
  int podprogramma (int *m, int *n) // перевод в десятичную
  {
        int k=1, x=0, p;
        p=n;
        for (int i=0, i<p, i++)
      {
        k=m[i]*pow(2;(n-1));
        x=x+k;
        n--;
      };
      return x;
    } ;
    
    int main
    { 
    int z, x;
    for (c=512, c<1023, c++)
    {
        z=perevod (a, m, n);
        x=podprogramma (m,n);
        cout << z;
        for (i=n,i<>0, i--)
        cout << m[i] << " ";
        for (i=0,i<n,i++)
        cout << m[i] << " ";
        cout << x << endl;
     }
     getch ();
    
}
ПаЗитиФкА вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на системы счисления heaton Паскаль, Turbo Pascal, PascalABC.NET 0 15.01.2011 17:22
Задача на С++. Файлы, системы счисления. 15student89 Помощь студентам 6 08.01.2010 20:35
Задача на С++ [Системы счисления] Рустам Помощь студентам 9 29.11.2008 15:30
Задача на С++ [Системы счисления] Рустам Общие вопросы C/C++ 1 28.11.2008 23:18