Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pomocy]Kalkulator binarny


-Janos-

Rekomendowane odpowiedzi

Opublikowano

Czyli tak chodzi o to by kalkulator przeliczał kod binarny np 11111110 na wynik dziesiętny czyli na 254 oraz z liczb dziesiętnych na binarne.

 

menu początkowe było takie

 

a)binarne na dziesiętne

b)dziesiętne na binarne

 

 

 

 

potem menu

ad (a)

Podaj liczbę binarną

 

ad(B)

podaj liczbę dziesiętną

 

 

i na koniec po wyświetleniu wyniku aby trzeba było nacisnąć ENTER aby przejść dalej

 

i menu końcowe

 

Chcesz wyjść T/N

if chose == "N" exit

if chose == "T" go to Start

 

czy jakoś tak proszę o pomoc (głównie chodzi mi o funkcje na przeliczanie tego )

Opublikowano

(10) do binarnego jest odrobinę 'tricky', więc szukaj sample'a w google.

Natomiast konwersja stringa binarnego do liczby (10) można szybko za pomocą strtol:

http://www.cplusplus...cstdlib/strtol/

Oczywiście musisz się upewnić, że konwertowana liczba będzie miała mniej niż 32 bity ( wielkość long int w najpopularniejszych implementacjach )

Ta sygnatura jest pusta.

Opublikowano

mam takie coś

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 Kalkulator
{
   public partial class Form1 : Form
   {
    public Form1()
    {
	    InitializeComponent();
    }
    private void label1_Click(object sender, EventArgs e)
    {
    }
    private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {
	    //w te ramke wpisuje liczbe binarną np 1111
    }
    private void button1_Click(object sender, EventArgs e)
    {
	    //Ttu klikam aby przeliczyło z binarnej na dziesiętną
}
    private void Form1_Load(object sender, EventArgs e)
    {

    }
    private void maskedTextBox2_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {
	    // tu wpisuje liczbę dziesiętną np 255
    }
    private void button2_Click(object sender, EventArgs e)
    {
	    //Ttu klikam aby przeliczyło z dziesiętnej na binarną
    }
    private void textBox1_TextChanged(object sender, EventArgs e)
    {
	    //tu ma dać wynik w formie liczby dziesiętnej np 255
    }
    private void textBox2_TextChanged(object sender, EventArgs e)
    {
	    // tu ma dać wynik w formie liczby binarnej np 11111
    }
    }
   }
}

 

Jest to Virtual C# jak zrobić

 

aby

to

#include<iostream>
using namespace std;
int b2d(int a);
void main()
{
int a;
cout<<"Enter a binary number and its number of digits to find the decimal: ";
cin>>a;
cout<<"In decimal, "<<a<<"="<<b2d(a)<<endl;
}
int b2d(int a){
int tot=0;
int two=1;
for(int i=0;i<3;i++){
two=two*2;
for(a;a>0;a=a/10){
a=a%10;
}
tot=tot+(a*two);
}
return tot;
}

 

i to

 

#include <iostream.h>
void binary(int);
void main(void) {
int number;
cout << "Please enter a positive integer: ";
cin >> number;
if (number < 0)
cout << "That is not a positive integer.\n";
else {
cout << number << " converted to binary is: ";
binary(number);
cout << endl;
}
}
void binary(int number) {
int remainder;
if(number <= 1) {
cout << number;
return;
}
remainder = number%2;
binary(number >> 1);
cout << remainder;
}

 

 

wkleić żeby działało ???

Opublikowano

(10) do binarnego jest odrobinę 'tricky', więc szukaj sample'a w google.

Natomiast konwersja stringa binarnego do liczby (10) można szybko za pomocą strtol:

http://www.cplusplus...cstdlib/strtol/

Oczywiście musisz się upewnić, że konwertowana liczba będzie miała mniej niż 32 bity ( wielkość long int w najpopularniejszych implementacjach )

 

 

Jak to wykorzystać??

Weteran
Opublikowano

Masz wszystko w samplu...

Coś takiego:

 

#include <iostream>
#include <stdlib.h>
int main()
{
char numBin[] = "1010"; //10
long numDec = strtol(numBin,NULL, 2);//3 parametr to system liczbowy

std::cout<<"DEC: "<<numDec<<"\nBIN: "<<numBin;
}

 

@Edit Co do poprzedniego postu

 

Nie za dużo wymagasz? Gotowca nie dostaniesz.

Poza tym nie ma czegoś takiego jak Virtual c#.

 

Ten sam sample co podałem wcześnie, tyle że w c#

using System;
class Program
{
   static void Main()
   {
    string numBin = "1010";//10
    int numDec = Convert.ToInt32(numBin, 2); // drugi parametr to system lcizbowy
    Console.WriteLine("DEC: " + numDec + "\nBIN: " + numBin);
    Console.ReadKey();
   }
}

Opublikowano

jak zrobić z tego gotową funkcję do liczenia a najlepiej tak aby dało rade podpiąć pod Microsoft Visual C# w okienku windowsowym (może być jakiś tut)

 

 

@ EDIT

 

Ogarnięte umiem skorzystać z kodu się nim pobawię a nadal nie wiem jak podpiąć pod Microsoft Visual C# w okienku windowsowym

 

@ EDIT 2

 

Jeszce jak w drugą stronę by było ??

 

@ EDIT 3

 

Zrobiłem coś takiego

#include <iostream>
#include <stdlib.h>
using namespace std;
double Binarny (int a)
{
return char numBin[] = a; //10
long numDec = strtol(numBin,NULL, 2);//3 parametr to system liczbowy
cout<<"DEC: "<<numDec<<"\nBIN: "<<numBin;
}
double przelicznik (int menu, int a)
{
switch(menu)
{
 case 1;
  return Binarny (a);
  break;
}

}
int main()
{
int menu;
 int a;
 cout<<"Podaj liczbę binarną: ";
 cin>> a;
 cout<< "1) Binarny "<<endl;
  cin>> menu;
  cout<< przelicznik(a, menu) << endl;
}
{

 system ("pause");
 return 0;
}

zależy mi na menu ponieważ będzie tam jeszcze przeliczanie z dziesiętnego na binarny ( mogę prosić o funkcje ?? )

Weteran
Opublikowano

Co i jak w c# już ci podałem w poprzednim poście.

 

private void button1_Click(object sender, EventArgs e) //Z twego kodu
{
//Tu klikam aby przeliczyło z binarnej na dziesiętną
LiczbaDecymalna = Convert.ToInt32(maskedTextBox1.Text, 2);
}

Czy coś takiego.

 

W drugą stronę:

 

private void button1_Click(object sender, EventArgs e)
{
LiczbaBinarna = Convert.ToInt32(maskedTextBox1.Text, 10);
}

 

Gdy użytkownik wpisze niewłaściwie znaki zostanie wyrzucony wyjątek, którego warto obsłużyć.

Opublikowano

mam takie coś i nie chce mi działać wiem że coś źle robię ale nie wiem co nie ogarniam za bardzo c#

 

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;
class Kalkulator
{
   private int maskedTextBox2;
   static void Main()
   {
    string numBin = "1010";//10
    int numDec = Convert.ToInt32(numBin, 2); // drugi parametr to system lcizbowy
    Console.WriteLine("DEC: " + numDec + "\nBIN: " + numBin);
    Console.ReadKey();
   }
   private void maskedTextBox2_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
   {
   }
   private void Dziesietne_Click(object sender, EventArgs e)
   {
    maskedTextBox2 = Convert.ToInt32(maskedTextBox3.Text, 10);
   }
   private void maskedTextBox3_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
   {
   }
}

namespace WindowsFormsApplication1
{
   public partial class Kalkulator : Form
   {
    public Kalkulator()
    {
	    InitializeComponent();
    }
    private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {
    }
    private void Binarne_Click(object sender, EventArgs e)
    {
	    maskedTextBox1 = Convert.ToInt32(maskedTextBox4.Text, 2);
    }
    private void maskedTextBox4_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {
    }
   }
}

Opublikowano

Co to ma być za syf? :D Cały ten kod nadaje się jedynie do usunięcia. Widać, że kompletnie nie ogarniasz, na początek stwórz sobie aplikację konsolową.

mjut.png
Opublikowano

nie i h*** :D zaraz pokaże czysty kod może ktoś pomoże uzupełnić a nie tu ki ktoś k**** napierdala że do usunięcia i może powiedz co zmienić a nie mi tu usuwać każesz ??

 

sry za bulwersa

 

a i może z tego kodu da sie coś zrobić jak co to C++

 

#include <iostream>
#include <stdlib.h>
using namespace std;
double Binarny (int a)
{
return char numBin[] = a; //10
long numDec = strtol(numBin,NULL, 2);//3 parametr to system liczbowy
cout<<"DEC: "<<numDec<<"\nBIN: "<<numBin;
}
double przelicznik (int menu, int a)
{
switch(menu)
{
 case 1;
  return Binarny (a);
  break;
}
}
int main()
{
int menu;
 int a;
 cout<<"Podaj liczbę binarną: ";
 cin>> a;
 cout<< "1) Binarny "<<endl;
  cin>> menu;
  cout<< przelicznik(a, menu) << endl;
}
{
 system ("pause");
 return 0;
}

Opublikowano

Zrobiłem coś takiego ale wywala mi kilka błędów może ktoś zobaczyć i wyjaśnić co jest nie tak ??

 

#include <iostream>
#include <stdlib.h>
#include "StdAfx.h"
using namespace std;
int main()
{
int liczba = 0;
cout << "podaj liczbe binarną: ";
cin >> liczba;
}
{
 char* p =new char numBin[liczba];
 long numDec = strtol(numBin,NULL, 2);
 cout<<"DEC: "<< numDec <<"\nBIN: "<<numBin;
}
 {
   system ("pause");
   return 0;
 }

Opublikowano

@UP

Np. to, że ciało funkcji main kończy się po linijce "cin>>liczba;".

Smutek to skutek chęci w kontekście skutku

raczej niefrasobliwej wzglądu o treści zgryźliwej

ma postać walca co jeździ nam po palcach.

Opublikowano

odrobinkę zmieniłem kod czy ktoś by mógł go poprawić ??

 

 

#include <iostream>
#include <stdlib.h>

int main()
{
int liczba = 0;
std::cout << "podaj liczbe binarną: ";
std::cin >> liczba;
}
{
 char numBin [liczba];
 long numDec = strtol(numBin,NULL, 2);
 std::cout<<"DEC: "<< numDec <<"\nBIN: "<<numBin;

    system ("pause");
    return 0;
  }

Opublikowano

Niby zmieniłem ale jakoś h****o bo nie podaje wyniku tylko jakiś p*******y pasek .... oto kod

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int liczba = 0;
std::cout << "podaj liczbe binarna: ";
std::cin >> liczba;


 char* numBin = new char  [liczba];
 long numDec = strtol(numBin,NULL, 2);
 std::cout<<"DEC: "<< numDec <<"\nBIN: "<<numBin;

    system ("pause");
    return 0;
  }

 

Proszę o poprawienie ...

Opublikowano

Po co robisz te gwiazdki w wyrazach wulgarnych jak jakiś debil?

 

1. Po co piszesz std:: jak na początku użyłeś using namespace std?

2. Wiesz co to są tablice? Źle deklarujesz zmienne.

3. Masz brzydki kod. W C::B możesz użyć Source Code Formatter pod zakładką plugins.

4. Po co zerujesz zmienną, jak i tak wrzucasz do niej zawartość strumienia?

Smutek to skutek chęci w kontekście skutku

raczej niefrasobliwej wzglądu o treści zgryźliwej

ma postać walca co jeździ nam po palcach.

Opublikowano

#include <iostream>
#include <string>
int bin2dec(std::string bin)
{
int b, k, m, n;
int len, sum = 0;

len = bin.length() - 1;
for(k = 0; k <= len; k++)
{
 n = (bin[k] - '0');
 if ((n > 1) || (n < 0))
 {
	 std::cout << "\n\n ERROR! BINARY has only 1 and 0!\n";
	 return (0);
 }
 for(b = 1, m = len; m > k; m--)
 {
	 b *= 2;
 }
 sum = sum + n * b;
}
return(sum);
}
int main()
{
std::string liczba;
std::cout << "podaj liczbe binarna: ";
std::cin >> liczba;
std::cout<<"DEC: "<< bin2dec(liczba);
return 0;
}

lekko przerobiony kod z pierwszego wyniku za google...

 

 

Wiesz co to są tablice? Źle deklarujesz zmienne.

tak się składa, że dobrze deklaruje

 

Po co zerujesz zmienną, jak i tak wrzucasz do niej zawartość strumienia?

bo ma taki fetysz ;x. Wszystkiego się czepiasz panie idealny, a nie potrafisz nic pomóc

Opublikowano

Źle deklaruje zmienne. Jak to poprawi to wszystko będzie działać. Co to za pomoc, jak mu podasz gotowy kod, którego nie zrozumie?

Smutek to skutek chęci w kontekście skutku

raczej niefrasobliwej wzglądu o treści zgryźliwej

ma postać walca co jeździ nam po palcach.

Opublikowano
Co to za pomoc, jak mu podasz gotowy kod, którego nie zrozumie?

prosze, już jesteś spełniony?

tego też pewnie nie rozumie, ale ważne, że ty się cieszysz

int main()
{
char* numBin = new char [64];
std::cout << "podaj liczbe binarna: ";
std::cin >> numBin;


long numDec = strtol(numBin,NULL, 2);
std::cout<<"DEC: "<< numDec <<"\nBIN: "<<numBin << "\n";

		 system ("pause");
		 return 0;
	 }

 

z tamtego przynajmniej się będzie mógł nauczyć jak to działa

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...