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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2008, 16:00   #1
SASS
Новичок
Джуниор
 
Регистрация: 09.12.2008
Сообщений: 2
По умолчанию Системы исчисления - восьмеричная, десятиричная

Добрай день!
Помогите пожалуйста справиться с задачей! Нужно модифицировать или переписать код, для программы которая переводит целые и дробные восьмеричные числа туда и обратно а так-же выполняет с ними арифметические действия - сложение, вычитание, умножение и деление.
Программа которая делает все это уже есть, но она корректно работает только с целыми числами. Нужно её модифицировать чтобы она работала и с целыми и с дробными числами!
Код имеющейся программы(работающей!):
Код:
#include <stdio.h>
#include<iostream.h>
#include <math.h>
#include <string.h>
#include <CONIO.H>
#include "exit.cpp"

#define N 100

void Vosmeri4nVDesati4n();
void Desati4nVVosmeri4n();
int ABC();


int main()
{
	int choice;
	do
	{   clrscr();
		gotoxy(20,1); printf("Izvekne:");
		gotoxy(20,2); printf("1. Perevesti iz vosmeri4noj v desati4nuju");
		gotoxy(20,3); printf("2. Perevesti iz desati4noj v vosmeri4nuju");
		gotoxy(20,4); printf("3. A + | - | /");
		gotoxy(20,5); printf("4. Exit\n\n");
		scanf("%d",&choice);
		switch(choice)
		{

		case 1:
			Vosmeri4nVDesati4n();
			break;
		case 2:
			Desati4nVVosmeri4n();
			break;
		case 3:
			ABC();
			break;
		case 4:
			Grap();
			break;
		}
	}while(choice);

	return choice;

}



 int ABC()
 { clrscr();
 char x, zim[2];
 int Fir, Sec, Rez;
 int i, r, n, s=0, s2=0, first, second, bin1, bin;
 clrscr();

 Rez=0;
 gotoxy(20,1);cout<<"Vvedite pervoje vosmeri4noje 4islo \n";
 scanf("%d", &bin1);
 first=bin1;
  for (i=0; first!=0; i++)
   {
    r=first%10;
    s=s+r*(int)pow(8,i);
    first=first/10;
   }

  Fir=s;

 gotoxy(20,3);cout<<" Vvedite vtoroje vosmeri4noje 4islo \n";
 scanf("%d",&bin);
 second=bin;
  for (i=0;second!=0;i++)
   {
    r=second%10;
    s2=s2+r*(int)pow(8,i);
    second=second/10;
   }

 Sec=s2;
 gotoxy(20,5);cout<<"Kakoje dejstvije proizvesti? + - / * \n";
 gotoxy(20,6);scanf("%s", zim);
 x=zim[0];

 if (x=='+')
  {
   Rez=Fir+Sec;
       }

  else
  if (x=='-')
  {
   Rez=Fir-Sec;
     }

 if (x=='*')
  {
   Rez=Fir*Sec;
     }

 if (x=='/')
  {
   Rez=Fir/Sec;
     }

 int bin3[100],j;
	n=Rez;
	gotoxy(20,7);printf("Rezultat v vosmeri4noj sisteme: ",n);
	for(i=0;n!=0;i++)
	{
		bin3[i]=n%8;
		n=n/8;
	}
	i--;
	for(;i>=0;i--)
		printf("%d",bin3[i]);
	printf("\n");
	gotoxy(20,8);getch();
	return(0); }


void Vosmeri4nVDesati4n()
{       clrscr();
        FILE *out;
	int oct,n,r,s=0,i;
	gotoxy(20,1); printf("Vvedite vosmeri4noje 4islo: ");
	scanf("%d",&oct);
	n=oct;
	for(i=0;n!=0;i++)
	{
		r=n%10;
		s=s+r*(int)pow(8,i);
		n=n/10;
	}
	gotoxy(20,2);printf("Vosmeri4nogo 4isla %d desati4nij rezultat: %d\n",oct,s);
	{
	out=fopen("log.txt","a");
	fprintf(out,"\n Zna4enije vosmeri4nogo 4isla %d: desati4nij %d",oct,s);
	fclose(out);
	}
 gotoxy(20,3);getch();
}


void Desati4nVVosmeri4n()
{       FILE *out;
        int k,s;
        clrscr();
	int n,r[10],i;
	gotoxy(20,1); printf("Vvedite desati4noje 4islo: ");
	scanf("%d",&n);
	gotoxy(20,2);printf("Desati4nogo 4isla %d vosmeri4noje zna4enije: ",n);
        k=n;
	for(i=0;n!=0;i++)
	{
		r[i]=n%8;
		n=n/8;
	}
	i--;
        s=i;
	for(;i>=0;i--)
		printf("%d",r[i]);
	printf("\n");

	out=fopen("log.txt","a");
	fprintf(out,"\nDesati4nogo 4isla %d vosmeri4noje zna4enije : ",k);
        i=s;
        for(;i>=0;i--)
        fprintf(out,"%d",r[i]);	
	fclose(out);

	gotoxy(20,3);getch();
}
Модератор: используйте тег CODE

Последний раз редактировалось MaTBeu; 09.12.2008 в 19:25.
SASS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из одной системы исчисления в другую. Svop Помощь студентам 7 20.12.2010 19:00
перевод системы исчисления (16 ->10) adwaer Помощь студентам 5 15.06.2008 20:29
Составить библиотечный модуль,который вычисляет умножение в 16-тиричной систему исчисления в паскале LLlM31b3 Помощь студентам 2 19.04.2008 19:08
Преобразования систем исчисления Altera Общие вопросы Delphi 5 21.02.2008 08:43
16-я система исчисления:вопрос Mustang Общие вопросы Delphi 4 23.09.2007 17:57