Forum » Programiranje » [C#] Reševanje domačih nalog
[C#] Reševanje domačih nalog
krastača ::
Pri nalog:
7. Napiši program, ki prebere realno število, v metodi Negiraj pa ga spremeni v njegovo negirano vrednost. Program naj izpiše prvotno in novo vrednost. Uporabi ref.
Po vrednostnem načinu je naloga normalno rešljiva kot jo želi naloga - je pa brez ref
Če pa nalogo delam po ref pa ne morem izpisati prvotne verzije vpisanega števila
A je namen naloge, da te zmede?
7. Napiši program, ki prebere realno število, v metodi Negiraj pa ga spremeni v njegovo negirano vrednost. Program naj izpiše prvotno in novo vrednost. Uporabi ref.
Po vrednostnem načinu je naloga normalno rešljiva kot jo želi naloga - je pa brez ref
static double Negiraj(double n) { return n < 0 ? n : -n; } static void Main(string[] args) { Console.Write("Vpiši poljubno realno število: "); double st = double.Parse(Console.ReadLine()); Console.WriteLine(); Negiraj(st); Console.WriteLine("Vpisano število {0} bi po negiranju bilo {1}!", st, Negiraj(st)); Console.ReadKey(true);
Če pa nalogo delam po ref pa ne morem izpisati prvotne verzije vpisanega števila
static void Negiraj(ref double x) { x = x < 0 ? x : -x; } static void Main(string[] args) { Console.Write("Vpiši poljubno realno število: "); double st = double.Parse(Console.ReadLine()); Console.WriteLine(); Negiraj(ref st); Console.WriteLine("Negativna vrednost vpisanega števila bi bila {0}!", st); Console.ReadKey(true); }
A je namen naloge, da te zmede?
- spremenil: Mavrik ()
keworkian ::
Rajš pust fax ker nisi sposobna programirat in razmišljat s svojo glavo in uporabljat dokumentacije na MSDN.
Obscenities in B-Flat
Zgodovina sprememb…
- spremenil: keworkian ()
LeQuack ::
Prvi primer je napaka pri vračanju vrednosti, vedno vrneš -n, tako da ne rabiš pogoja, če je n manjši od 0. PA metodo Negiraj lahko kličeš samo enkrat namesto dvakrat.
Če parametru dodaš ref, pomeni da se ob klicu metode uporabi originalna spremenljivka, ki je bila podana v parametru, kar je sicer za kompleksne objekte že privzeto, medtem ko za enostavne, kot so števila, ni.
static double Negiraj(double n) { // Minus v plus in obratno return -n; } static void Main(string[] args) { Console.Write("Vpiši poljubno realno število: "); double st = double.Parse(Console.ReadLine()); Console.WriteLine(); Console.WriteLine("Vpisano število {0} bi po negiranju bilo {1}!", st, Negiraj(st)); Console.ReadKey(true); }
Če parametru dodaš ref, pomeni da se ob klicu metode uporabi originalna spremenljivka, ki je bila podana v parametru, kar je sicer za kompleksne objekte že privzeto, medtem ko za enostavne, kot so števila, ni.
// Uporabi ref in sprmeni originalni parameter static void Negiraj(ref double n) { // Minus v plus in obratno n = -n; } static void Main(string[] args) { Console.Write("Vpiši poljubno realno število: "); double st = double.Parse(Console.ReadLine()); Console.WriteLine(); Console.WriteLine("Vpisano število pred negiranjem {0}!", st); Negiraj(ref st); Console.WriteLine("Vpisano število po negiranju {0}!", st); Console.ReadKey(true); }
Quack !
Ziga Dolhar ::
krastača, ni potrebno odpirati novih tem za vsak problem. Ena tema (tale) zadostuje. Ostale bodo zaklenjene.
https://dolhar.si/
krastača ::
Ja samo v tem primeru se spet lahko bunite da naslov ne štima glede na nalogo ki se v nadaljevanju posta?
LeQuack hvala za razlago! Glede Ref se zavedam da se prvotna spremenljivka uporabi saj zato mi ni jasno zakaj zahteva prvotno vrednost spremenljivke če pa želi na koncu da uporabimo ref način - to pomeni da mu ne morem dati začetne spremenljivke v nalogi
LeQuack hvala za razlago! Glede Ref se zavedam da se prvotna spremenljivka uporabi saj zato mi ni jasno zakaj zahteva prvotno vrednost spremenljivke če pa želi na koncu da uporabimo ref način - to pomeni da mu ne morem dati začetne spremenljivke v nalogi
Zgodovina sprememb…
- spremenilo: krastača ()
Spura ::
Glede Ref se zavedam da se prvotna spremenljivka uporabi saj zato mi ni jasno zakaj zahteva prvotno vrednost spremenljivke če pa želi na koncu da uporabimo ref način - to pomeni da mu ne morem dati začetne spremenljivke v nalogi
Ni res da mu ne mores dat, problem je resljiv z eno dodatno trivialno vrstico, ce malo pomislis.
Sicer pa ne razumem zakaj folk zajebavajo z ref, to se tako redko uporablja.
krastača ::
vem, naloga je taka - sorry
Spura a bi mi lahko razložil - ko sem generila tabelo in bo uporabnik vpisal števila. Kako določim da želim največje število polja ter ga moram nato z vsemi števila v polju deliti?
Spura a bi mi lahko razložil - ko sem generila tabelo in bo uporabnik vpisal števila. Kako določim da želim največje število polja ter ga moram nato z vsemi števila v polju deliti?
Zgodovina sprememb…
- spremenilo: krastača ()
LeQuack ::
vem, naloga je taka - sorry
Spura a bi mi lahko razložil - ko sem generila tabelo in bo uporabnik vpisal števila. Kako določim da želim največje število polja ter ga moram nato z vsemi števila v polju deliti?
Nekako tako:
static void Main(string[] args) { int[] p = new int[5]; for (int i = 0; i < p.Length; i++) { Console.Write("Vpiši {0}. število: ", i + 1); p[i] = int.Parse(Console.ReadLine()); } // Poisci najvecje stevilo int Maximum = p.Max(); // Iteracija skozi celo tabelo in deljenje for (int i = 0; i < p.Length; i++) Console.WriteLine("Rezultat deljenja s p[{0}] = {1}", i, (float)Maximum / p[i]); Console.ReadKey(true); }
Quack !
Zgodovina sprememb…
- spremenil: LeQuack ()
Marat ::
Ziga Dolhar je izjavil:
krastača, ni potrebno odpirati novih tem za vsak problem. Ena tema (tale) zadostuje. Ostale bodo zaklenjene.
še boljše bi bilo če bi naredil sticky temo z naslovom "[C#]šolske naloge" kjer bi folk postavljal vprašanja glede teh nalog.
MrBrdo ::
Rajš pust fax ker nisi sposobna programirat in razmišljat s svojo glavo in uporabljat dokumentacije na MSDN.
Glede na št. vprašanj je res že malo hm vse skupaj... Ali ne hodi na predavanja ali so pa res slaba.
MrBrdo
gendale ::
jst verjamem, da je pač mal trda v glavo za programiranje
sem že videl ljudi, ki jim določena stvar ni in ni šla v glavo, čeprav niso bili niti bedaki niti lenuhi
sem že videl ljudi, ki jim določena stvar ni in ni šla v glavo, čeprav niso bili niti bedaki niti lenuhi
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)
Senitel ::
Čist tko... Če naloga hoče, da se spremenljivko meče not po referenci, potem zagotovo noče, da vračaš vrednost z returnom!
krastača ::
A mi lahko nekdo pogleda kodo programa in mi pove v čem delam napako, da se mi ne vrže rezultaltala - je polje/metoda naloga
Je prva taka naloga in nevem še čisto pravilno klicanje polj ven in metod.
static int Max(int[] p) { int max = p[0]; for (int i = 1; i < p.GetLength(0); i++) { if (p[i] > max) max = p[i]; } return max; } static void Main(string[] args) { int[] p = new int[10]; for (int i = 0; i < p.GetLength(0); i++) { Console.Write("Vpiši {0}. celo število: ", i); p[i] = int.Parse(Console.ReadLine()); } int max = Max(); Console.WriteLine(max); Console.ReadKey(true); }
Je prva taka naloga in nevem še čisto pravilno klicanje polj ven in metod.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | c# seminarskaOddelek: Programiranje | 2645 (2318) | tuned |
» | [c#] Ustvarjanje objekta v drugem razreduOddelek: Programiranje | 1653 (1598) | Cvenemir |
» | c sharp LinkedList - NalogaOddelek: Programiranje | 1846 (1797) | Msatir |
» | [C#] Input string was not in a correct format.Oddelek: Programiranje | 1081 (1018) | Cvenemir |
⊘ | [C#]naloga iz metod!Oddelek: Programiranje | 1655 (1488) | Ziga Dolhar |