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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2010, 14:08   #1
PastoriXx
Пользователь
 
Регистрация: 20.12.2009
Сообщений: 40
Печаль Перевод числа в семеричную систему счисления

Здравствуйте, задача такая: "Перевести введенное число в семеричную с/с и выяснить входит ли второе введенное число в семеричное представление первого".

Код:
namespace С_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {//поменять тип с инта на соответствующий
 
 
            int N = (int)numericUpDown1.Value;
            int X = (int)numericUpDown2.Value;
            int j = 2;
            double[] m = new double[j];
            double Z;
            string n,x;
            
            Z = N;
            m[0] = N / 7;
 
            if (Z >= 7)
            {
                for (int i = 1; i < j; i++)
                {
                    m[i] = Z % 7;
                    Z = m[i];
                    if (Z < 7) break;
                        j++;
                }
                Z = j = 0;
                for (int i = m.Length; i > 0; i--)
                {
                    Z += m[j] * System.Math.Exp((i - 1) * System.Math.Log(10));
                    if (m[j] == 0) break;
                    j++;
                }
            }
            label6.Text ="" + Z;
 
            int k = 0;
            n = Convert.ToString(Z);
            x = Convert.ToString(X);
 
            k = n.IndexOf(x);
                if (k!=-1)
                    label4.Text = "да";
                else label4.Text = "нет";
 
        }
    }
}
Код работает только до 48. Дальше перевод в 7ю систему неправильный. Подскажите как это исправить.
PastoriXx вне форума Ответить с цитированием
Старый 08.05.2010, 12:50   #2
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

\\привет вот накидал 100% работающий вариант перевода числа в любую СС извини только на с++ ну думаю переделать не составит труда))

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

int main()
{
	setlocale(LC_ALL, "Russian");
	
	// пример организации ввода с ограничением
	int n;
	do {
		printf("Введите положительное число: ");
		scanf_s("%d", &n);
		fflush(stdin); // сброс нераспознаваемого "мусора"
	} while( n<0 );

	const int radix = 7; // основание СС тоже можно спросить у пользователя
	char buffer[]="00000000";
	int i=7; // позиция в буфере первой записываемой цифры

	do {
		int x = n % radix;
		n = n / radix;
		char z;
		if( x<10 )
			z='0'+x;
		else
			z='A'-10+x;
		//printf("%c", z );
		buffer[i]=z; // вместо вывода на экран, записываем в буфер в обратном порядке
		i--;
	} while (n>0);

	// только в конце выводим результат
	printf("\nЗапись в %d-чной системе счисления: %s\n", radix, buffer);

	_getch();
}
&выяснить входит ли второе введенное число в семеричное представление первого?
не понял суть вопроса напиши подробнее))
Alex_sim вне форума Ответить с цитированием
Старый 08.05.2010, 20:07   #3
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Спасибо бы кто сказал за труды , вот и помогай после этого людям
Alex_sim вне форума Ответить с цитированием
Старый 13.05.2010, 19:23   #4
PastoriXx
Пользователь
 
Регистрация: 20.12.2009
Сообщений: 40
По умолчанию

Спасибо большое конечно. Извини что раньше не смог поблагодарить.
Код уже переделал, скину в ближайшее время
PastoriXx вне форума Ответить с цитированием
Старый 13.05.2010, 19:23   #5
PastoriXx
Пользователь
 
Регистрация: 20.12.2009
Сообщений: 40
По умолчанию

z='A'-10+x; - что эта строчка делает?

Последний раз редактировалось PastoriXx; 14.05.2010 в 07:35.
PastoriXx вне форума Ответить с цитированием
Старый 14.05.2010, 12:58   #6
PastoriXx
Пользователь
 
Регистрация: 20.12.2009
Сообщений: 40
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Семестровая_задача_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            int N = (int)numericUpDown1.Value;
            int X = (int)numericUpDown2.Value;
            
            string[] m = new string[8];
            string z,Z,K;
            int i = 7,x,n;

            n = N * N;
            do
            {
                x = n % 7;
                n = n / 7;

                if (x < 7)
                    z = Convert.ToString(x);
                else
                    z = - 10 + Convert.ToString(x);
                
                m[i] = z;
                i--;
            } while (n > 0);

            Z = "";
            
            for(int j  = 0;j<=7;j++)
            {
               Z +=m[j];
            }
            int k = 0;
            label6.Text = Z;
            K = Convert.ToString(X);
            k = Z.IndexOf(K);

            if (k != -1)
                label4.Text = "да";
            else label4.Text = "нет";

        }
    }
}
PastoriXx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевод из 10-тичной в 11-ричную систему счисления metallldoctor Помощь студентам 0 11.03.2010 13:51
Перевод вещественного числа из 10 в 2 Систему счисления. [С++] Veselyn Помощь студентам 9 17.01.2010 00:39
перевод из 4-ной в 3-ную систему счисления Mike07 Помощь студентам 1 07.10.2007 18:53