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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2009, 11:39   #1
LiToRBoL
 
Аватар для LiToRBoL
 
Регистрация: 30.10.2008
Сообщений: 5
По умолчанию Арифметические операции в различных системах счисления (Си)

Определить подпрограммы сложения и умножения целых чисел, представленных в системах счисления с любым основанием от 2 до 10. Результат выполнения проверить на десятичных числах.
Задачу необходимо решить без использования строк.

10011=1*2^0+1*2^1+0*2^2+0*2^3+1*2^4



Код:
#include <stdio.h>
#include <math.h>
#include <conio.h>

int perevod(int a,int z)

{  int   d=0, s;  \\ d - число в десятичной системе счисления
   double n,  p;

          for (int i=0; i<n; i++)
         {
          s=a%pow10(i+1);\\ этот кусок 
          p=s/pow10(i)\\ не пашет))) но он должен выдовать разряд числа по идеи
                     d+=p*pow(z,n-i-1);
                 }

           return ; \\ хз чего должна возвращать функция

}
void main()
        {
    
    int a, z, i, n; \\ a - вводимое число, z - система счисления, n - количество цифер в числе
    int summa=0, proiz=1;
    
     
     for (i=1; i<3; i++)
         {
     printf ("\nVvedite chislo\n");
     scanf ("%d%n", &a, &n);



     printf ("\nVvedite osnovanie SS\n");
     scanf ("%d", &z);

     summa+=perevod(a,z);
     proiz*=perevod(a,z);
     }

     printf ("summa rovna %d\n", summa);
         printf ("proizvedenie rovno %d\n", proiz);

         }
Знаю что больше половины написанного бред, но я не волшебник я только учусь)))
Спасите плиз сроки сдачи горят, буде чрезмерно благодарен!!!

Последний раз редактировалось LiToRBoL; 06.01.2009 в 13:12.
LiToRBoL вне форума Ответить с цитированием
Старый 07.01.2009, 16:10   #2
LiToRBoL
 
Аватар для LiToRBoL
 
Регистрация: 30.10.2008
Сообщений: 5
По умолчанию

Народ помагите плиз кто шарит в этом! plz plz plz!
LiToRBoL вне форума Ответить с цитированием
Старый 07.01.2009, 16:35   #3
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
По умолчанию

И в правду бред.

Но ничего, разберемся.
Goblin вне форума Ответить с цитированием
Старый 07.01.2009, 16:38   #4
LiToRBoL
 
Аватар для LiToRBoL
 
Регистрация: 30.10.2008
Сообщений: 5
По умолчанию

Первый курс)))
LiToRBoL вне форума Ответить с цитированием
Старый 07.01.2009, 16:41   #5
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
По умолчанию

Стучи:

445435153 или dimadolzhenko@jabber.ru
Goblin вне форума Ответить с цитированием
Старый 08.01.2009, 15:13   #6
LiToRBoL
 
Аватар для LiToRBoL
 
Регистрация: 30.10.2008
Сообщений: 5
По умолчанию

Суть задачи в том чтобы в подпрамме перевести 2 числа из заданной системы счисления в 10 и тупо вывести их сумму и произведениею.

Последний раз редактировалось LiToRBoL; 08.01.2009 в 15:17.
LiToRBoL вне форума Ответить с цитированием
Старый 08.01.2009, 16:41   #7
Тупой
Форумчанин
 
Аватар для Тупой
 
Регистрация: 26.12.2008
Сообщений: 146
По умолчанию

По поводу этой функции:
Код:
int perevod(int a,int z)

{  int   d=0, s;  \\ d - число в десятичной системе счисления
   double n,  p;

          for (int i=0; i<n; i++)
         {
          s=a%pow10(i+1);\\ этот кусок 
          p=s/pow10(i)\\ не пашет))) но он должен выдовать разряд числа по идеи
                     d+=p*pow(z,n-i-1);
                 }

           return ; \\ хз чего должна возвращать функция

}
во первых, что такое n? Вы объявляете переменную, но ничего ей не присваиваете.
во вторых,что за функция pow10?
в третьих, по моему в C/C++ комменты ставятся прямыми слешами, а не обратными, как у Вас
"Hello, world!" - 17 errors 56 warnings
Тупой вне форума Ответить с цитированием
Старый 08.01.2009, 18:13   #8
LiToRBoL
 
Аватар для LiToRBoL
 
Регистрация: 30.10.2008
Сообщений: 5
По умолчанию

Да с n косяк,
pow10(n) это 10 в степени n.
А коменты всегда вроде как писались \\ или \* *\

Я не так изложил суть самой задачи и необходимый алгоритм.

Нужно организовать 2 подпрограммы: В одной сложение в другой перемножение, и результаты этих подпрограмм перевести в десятичную систему счисления.
LiToRBoL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операции со строками, вывод результата в 10 и 16 сис-ме счисления Sirega Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2008 16:36
Арифметические выражения spirit0k Общие вопросы C/C++ 0 26.10.2008 18:06
Арифметические операции Ассемблер BAV Помощь студентам 9 05.03.2008 00:21
Раскрутка сайта в поисковых системах Romanbl4 Свободное общение 13 31.08.2007 12:41