Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Калькулятор на Си, нид хелп 
:(
    Опции темы
Coach90
Дата 13.12.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.12.2007

Репутация: нет
Всего: нет



Люди нужна помощь.
Надо написать помочь написать калькулятор.
Калькулятор должен уметь складывать, вычитать, делить, умножать, а также переводить из одной системы счисления в другую. Я смог написать код отдельно для математических операций и отдельно для перевода из систем счисления. Вроде соеденил все заработало, но преподователю нужно чтобы было кое что иное. Он хочет, как я понимаю, сначала мы вводим например 5+3 потом программа спрашивает в какой системе счисления дать ответ, потом мы соответсвенно выбираем систему и программа выводит результат в выбранной системе счисления. В моем коде преподователю не понравилось то что программа не разбита на маленькие функции, он я так понимаю, просит чтобы там была функция ввода, вывода, перевода из систем счисления, и соответсвенно функция самих математических операций.
Вот мой код:

Мат.операции:
Код:

Код

int main (void)
{
    float a, b;
    char oper;
    printf ("BBeguTe BbIPA}|{EHue:\n");
    scanf ("%f %c %f", &a, &oper, &b);

if (b == 0)
printf ("Ha 0 geJIuTb HeJIb39\n");
else if ( oper == '+')
    printf ("%.2f\n", a + b);
else if ( oper == '-')
        printf ("%.2f\n", a - b);
else if ( oper == '*')
        printf ("%.2f\n", a * b);
else if ( oper == '/')
        printf ("%.2f\n", a / b);

getch();

return 0;
}



Перевод из систем счисления:
Код:
Код


int main (void)
{
const char basedigits[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' };
int convertednumber[64];
long int numbertoconvert;
int nextdigit, base, index = 0;
//получить число и основание.
printf ("Number to be converted? ");
scanf ("%ld", &numbertoconvert);
printf ("Base? ");
scanf ("%i", &base);

do {
     convertednumber[index] = numbertoconvert % base;
     ++index;
     numbertoconvert = numbertoconvert / base;
     }
while ( numbertoconvert != 0 );

printf("Converted number = ");
for (--index; index >= 0; --index ) {
     nextdigit = convertednumber[index];
     printf ("%c", basedigits[nextdigit]);
}
printf ("\n");
getch();
return 0;

}



Очень прошу помочь, если все получится с меня "пиво", как говорится))
PM MAIL ICQ   Вверх
FallenAngel
Дата 16.12.2007, 17:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Держи
Код

#include<stdio.h>
#include<conio.h>

void input(float &a, float &b, char &oper);
float plus(float, float);
float minus(float, float);
float increase(float, float);
float division(float, float);
void translate(float);
void output (const char [16], int, int[64]);

int main (void)
{
    float a=0, b=0, c=0;
    char oper;

input(a, b, oper);
if ( oper == '+')
    c=plus(a,b);
if ( oper == '-')
    c=minus(a,b);
if ( oper == '*')
    c=increase(a,b);
if ( oper == '/')
    if(b==0)
      printf ("Ha 0 geJIuTb HeJIb39\n");
    else
      c=division(a,b);

translate(c);
getch();

return 0;

}

void input(float &a, float &b, char &oper)
   {
    printf ("BBeguTe BbIPA}|{EHue:\n");
    scanf ("%f%c%f", &a, &oper, &b);
   }

float plus(float a, float b)
{
 float c;
 c=a+b;
 return c;
}

float minus(float a, float b)
{
 float c;
 c=a-b;
 return c;
}

float increase(float a, float b)
{
 float c;
 c=a*b;
 return c;
}

float division(float a, float b)
{
 float c;
 c=a/b;
 return c;
}


void translate(float c)
{
const char basedigits[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' };
int convertednumber[64];
long int numbertoconvert;
 numbertoconvert=(long int)c;
int base, index = 0;
printf ("Base? ");
scanf ("%i", &base);

do {
     convertednumber[index] = numbertoconvert % base;
     ++index;
     numbertoconvert = numbertoconvert / base;
     }
while ( numbertoconvert != 0 );

     output(basedigits, index, convertednumber);
printf ("\n");
getch();
}

void output(const char basedigits[16], int index, int convertednumber[64])
{
     int nextdigit;
     printf("Converted number = ");
     for (--index; index >= 0; --index )
     {
      nextdigit = convertednumber[index];
      printf ("%c", basedigits[nextdigit]);
     }
}

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0401 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.