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 | 1477 (1200) | MrStein |
» | [C#] Domača naloga - osnoveOddelek: Programiranje | 2497 (1714) | 11tomi12 |
» | Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )Oddelek: Programiranje | 10389 (6127) | technolog |
» | [c#] Optional parameters must appear....Oddelek: Programiranje | 780 (687) | lambda |
» | [C#] Operacija IN in ALI med dvema int številomaOddelek: Programiranje | 1169 (982) | LeQuack |