Forum » Programiranje » [C#] Input string was not in a correct format.
[C#] Input string was not in a correct format.
Cvenemir ::
Lp. Napisat morem program, ki prebere binarno število in ga pretvori v decimalni zapis. Ko ga zaženem in vpišem npr. 1010 mi javi napako, ki je omenjena v naslovu.
Help needed. Hvala.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Delo_z_binarnimi_števili
{
class Program
{
//Funkcija za pretvorbo iz binarne v desetiško obliko
static int binToDec(string vhodniNiz, int decZapis, int temp)
{
//Inicializacija polj
char[] poljeZnakov = new char[vhodniNiz.Length];
int[] poljeDecŠtevil= new int[vhodniNiz.Length];
//Zanka za pretvorbo iz binarnega v decimalni zapis
for(int i = vhodniNiz.Length-1;i==0;i--)
{
poljeZnakov[i] = vhodniNiz[i];
if(poljeZnakov[i] == 1)
{
temp = 1*(2^i);
poljeDecŠtevil[i] = temp;
}
else if(poljeZnakov[i] == 0)
{
temp = 0;
}
//Računanje končnega rezultata
for (int j = vhodniNiz.Length; j >= 0; j--)
{
decZapis = poljeDecŠtevil[j] + poljeDecŠtevil[j - 1];
}
}
return decZapis;
}
//Glavni program, s katerim preverimo delovanje funkcij
static void Main(string[] args)
{
string vhodniNiz = "";
int decŠtevilo = 0;
int binŠtevilo = 0;
int decZapis = 0;
int temp = 0;
char[] posamezenZnak=new char[vhodniNiz.Length];
//Izpis števila v desetiški obliki
Console.WriteLine("Vnesite število v binarni obliki.");
vhodniNiz = Console.ReadLine();
Console.WriteLine("Vnešeno število je v desetiški obliki zapisano kot {}", binToDec(vhodniNiz, decZapis, temp));
//Izpis števila v binarni obliki
Console.WriteLine("Vnesite število v desetiški obliki.");
decŠtevilo = int.Parse(Console.ReadLine());
Console.WriteLine("Vnešeno število je v binarni obliki zapisano kot {}", binŠtevilo);
}
}
}
Help needed. Hvala.
LeQuack ::
Malo si preveč zakompliciral stvar, pa nekaj napak je vmes. Za potence ne smeš upora biti ^ znak, ker ni namenjem temu. Uporabiš lahko vgrajeno funkcijo Math.Pow(x, y). Tudi ne rabiš toliko spremenljivk definirati, navsezadnje je dosti da daš parameter metodi samo vhodni niz.
Tukaj je poenostavljena verzija za pretvorbo iz binarne v decimalno obliko:
Tukaj je poenostavljena verzija za pretvorbo iz binarne v decimalno obliko:
// Funkcija za pretvorbo iz binarne v desetiško obliko
static long binToDec(string vhodniNiz)
{
long rezultat = 0;
// Zanka skozi binarni niz, zacnemo na levi strani
for (int i = 0; i < vhodniNiz.Length; ++i)
// Rezultatu vsakic pristejemo binarno vrednost (0 ali 1), množeno z 2 na potenco,
// ki je enaka (vhodniNiz.Length - 1) - i
rezultat += long.Parse(vhodniNiz[i].ToString()) * (long)Math.Pow(2, vhodniNiz.Length - 1 - i);
return rezultat;
}
//Glavni program, s katerim preverimo delovanje funkcij
static void Main(string[] args)
{
// Preberi stevilo v desetiski obliki
Console.Write("Vnesite število v binarni obliki: ");
string vhodniNizBinarni = Console.ReadLine();
Console.WriteLine("Vnešeno število je v desetiški obliki zapisano kot {0}", binToDec(vhodniNizBinarni));
// Pritisni katerokoli tipko za izhod
Console.ReadKey();
}
Quack !
Zgodovina sprememb…
- spremenil: LeQuack ()
LeQuack ::
Za pretvorbo iz decimalne v binarne obliko lahko uporabimo algoritem, na primer tale:
http://trunix.org/programlama/cpp/fred/...
Tule pa je še drug del programa, ki torej pretvori iz decimalne oblike v binarno:
http://trunix.org/programlama/cpp/fred/...
Tule pa je še drug del programa, ki torej pretvori iz decimalne oblike v binarno:
// Funkcija za pretvorbo iz destiške v binarno obliko
static string decToBin(long vhodnoStevilo)
{
string rezultat = "";
// Nadaljuj dokler vhodno stevilo ni enako nic
while (vhodnoStevilo > 0)
{
// Rezultatu dodamo spredaj 0 ali 1, kar ustreza ostanku pri deljenju z2
rezultat = (vhodnoStevilo % 2) + rezultat;
// Vhodno stevilo delimo z 2 in nadaljujemo
vhodnoStevilo /= 2;
}
return rezultat;
}
//Glavni program, s katerim preverimo delovanje funkcij
static void Main(string[] args)
{
// Preberi stevilo v desetiski obliki in ga pretvori v binarno
Console.Write("Vnesite število v desetiski obliki: ");
long vhodnoSteviloDecimalno = long.Parse(Console.ReadLine());
Console.WriteLine("Vnešeno število je v binarni obliki zapisano kot {0}", decToBin(vhodnoSteviloDecimalno));
// Pritisni katerokoli tipko za izhod
Console.ReadKey();
}
Quack !

gendale ::
seznam zanč moderatorjev in razlogov da so zanč
http://pastebin.com/QiWny5dV
gor je mavrik apple uporabniček (mali možgani in mali penis)
http://pastebin.com/QiWny5dV
gor je mavrik apple uporabniček (mali možgani in mali penis)
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | C# program za pretvorbo v desetiško število z rekurzijoOddelek: Programiranje | 1641 (1364) | MrStein |
| » | [C#] Domača naloga - osnoveOddelek: Programiranje | 2666 (1883) | 11tomi12 |
| » | Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )Oddelek: Programiranje | 11060 (6798) | technolog |
| » | [c#] Optional parameters must appear....Oddelek: Programiranje | 894 (801) | lambda |
| » | [C#] Operacija IN in ALI med dvema int številomaOddelek: Programiranje | 1324 (1137) | LeQuack |