Forum » Programiranje » [C#] Klicanje metod
[C#] Klicanje metod
Cvenemir ::
Lp. Zanima me, kako naj v main podprogramu pokličem metode za pretvarjanje enot.
Poskusil sem tako:
vendar javi napako "The name pretvoriTemperaturo1 does not exist in current context".
Celotna koda je naslednja:
Poskusil sem tako:
//Izpis stopinj celzija Console.WriteLine("Vnesite število fahrenheitov: "); fahrenheit = double.Parse(Console.ReadLine()); pretvorbaTemperature1(stopinje); Console.WriteLine("Podano število fahrenheitov je {0}°C. ");
vendar javi napako "The name pretvoriTemperaturo1 does not exist in current context".
Celotna koda je naslednja:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace R4_pretvornik { //Definiramo razred public class pretvornik { //Definiramo objekte razreda public double stopinje; public double fahrenheit; public double litri; public double galoni; public double kilometri; public double milje; //Objektom priredimo začetne vrednosti public pretvornik() { stopinje = 0; fahrenheit = 0; litri = 0; galoni = 0; kilometri = 0; milje = 0; } /// <summary> /// Metoda pretvori fahrenheite v °C /// </summary> /// <param name="stopinje">Izhod: temperatura v °C</param> /// <param name="fahrenheit">Vhod: temperatura v F</param> public double pretvorbaTemperature1(double stopinje, double fahrenheit) { stopinje = (5 / 9) * (fahrenheit - 32); return stopinje; } /// <summary> /// Metoda pretvori °C v F /// </summary> /// <param name="stopinje">Vhod: temperatura v °C</param> /// <param name="fahrenheit">Izhod: temperatura v F</param> public double pretvorbaTemperature2(double stopinje, double fahrenheit) { fahrenheit = (9 / 5) * stopinje + 32; return fahrenheit; } /// <summary> /// Metoda pretvori litre v galone /// </summary> /// <param name="litri">Izhod: količina v litrih</param> /// <param name="galoni">Vhod: količina v galonih</param> public double tekocina1(double litri, double galoni) { litri = galoni * 3.79; return litri; } /// <summary> /// Metoda pretvori galone v litre /// </summary> /// <param name="litri">Vhod: količina v litrih</param> /// <param name="galoni">Izhod: količina v galonih</param> public double tekocina2(double litri, double galoni) { galoni = litri / 3.79; return galoni; } /// <summary> /// Metoda pretvori milje v kilometre /// </summary> /// <param name="kilometri">Izhod: razdalja v kilometrih</param> /// <param name="milje">Vhod: razdalja v miljah</param> public double razdalja1(double kilometri, double milje) { kilometri = milje * 1.61; return kilometri; } /// <summary> /// Metoda pretvori kilometre v milje /// </summary> /// <param name="kilometri">Vhod: razdalja v kilometrih</param> /// <param name="milje">Izhod: razdalja v miljah</param> public double razdalja1(double kilometri, double milje) { milje = kilometri * 0.62; return milje; } } class Program { static void Main(string[] args) { pretvornik pretvori = new pretvornik(); double stopinje, fahrenheit, galoni, litri, kilometri, milje; //Izpis stopinj celzija Console.WriteLine("Vnesite število fahrenheitov: "); fahrenheit = double.Parse(Console.ReadLine()); pretvorbaTemperature1(stopinje); Console.WriteLine("Podano število fahrenheitov je {0}°C. "); //Izpis fahrenheitov Console.WriteLine("Vnesite število stopinj celzija: "); stopinje = double.Parse(Console.ReadLine()); Console.WriteLine("Podano število stopinj je {0}F. "); //Izpis galonov Console.WriteLine("Vnesite število litrov: "); litri = double.Parse(Console.ReadLine()); Console.WriteLine("Podano število litrov je {0} galonov. "); //Izpis litrov Console.WriteLine("Vnesite število galonov: "); galoni = double.Parse(Console.ReadLine()); Console.WriteLine("Podano število galonov je {0} litrov. "); //Izpis kilometrov Console.WriteLine("Vnesite število milj: "); milje = double.Parse(Console.ReadLine()); Console.WriteLine("Podano število milj je {0} kilometrov. "); //Izpis milj Console.WriteLine("Vnesite število kilometrov: "); kilometri = double.Parse(Console.ReadLine()); Console.WriteLine("Podano število kilometrov je {0} milj. "); } } }
- spremenil: Cvenemir ()
Recordman ::
V življenju nisem spisal vrstice C# kode, se mi pa zdi, da imaš napako v imenu funkcije/metode/česarkoliže.
pretvoriTemperaturo1 ne obstaja, obstaja pa pretvoriTemperature1
pretvoriTemperaturo1 ne obstaja, obstaja pa pretvoriTemperature1
Zgodovina sprememb…
- spremenil: Recordman ()
Mavrik ::
Ker je "pretvorbaTemperature1" metoda razreda "pretvornik", jo moreš klicati na "pretvornik" objektu, ki si ga ustvaril. Torej:
pretvori.pretvorbaTemprature1(...)
The truth is rarely pure and never simple.
Cvenemir ::
Sem malo poravil kodo, da je bolj pregledno. Zdaj me pa zanima, kako podam argument za izpis v main podprogramu, ker mi vedno izpiše rezultat 0.
Poskusil sem takole:
In še celotna koda:
Poskusil sem takole:
double stopinjeRezultat = pretvori.temperatura1(pretvori.stopinje, pretvori.fahrenheit); Console.WriteLine("Temperatura v stopinjah je: {0}°C", stopinjeRezultat);
In še celotna koda:
//Uroš Podrekar, E1059816, ITK-VS1 //Opis programa: V programu bomo definirali nekaj metod za pretvorbo //med osnovnimi merskimi enotami za razdaljo, količino tekočine in temperaturo. //V glavnem podprogramu bomo preverili delovanje posameznih metod. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace R4_pretvornik { //Definiramo razred public class pretvornik { //Definiramo objekte razreda public double stopinje; public double fahrenheit; public double litri; public double galoni; public double kilometri; public double milje; //Objektom priredimo začetne vrednosti public pretvornik() { stopinje = 0; fahrenheit = 0; litri = 0; galoni = 0; kilometri = 0; milje = 0; } /// <summary> /// Metoda pretvori fahrenheite v °C /// </summary> /// <param name="stopinje">Izhod: temperatura v °C</param> /// <param name="fahrenheit">Vhod: temperatura v F</param> public double temperatura1(double stopinje, double fahrenheit) { Console.WriteLine("Vnesite temperaturo v fahrenheitih: "); fahrenheit = double.Parse(Console.ReadLine()); stopinje = (5 / 9) * (fahrenheit - 32); return stopinje; } /// <summary> /// Metoda pretvori °C v F /// </summary> /// <param name="stopinje">Vhod: temperatura v °C</param> /// <param name="fahrenheit">Izhod: temperatura v F</param> public double temperatura2(double stopinje, double fahrenheit) { Console.WriteLine("\nVnesite temperaturo v °C: "); stopinje = double.Parse(Console.ReadLine()); fahrenheit = (9 / 5) * stopinje + 32; return fahrenheit; } /// <summary> /// Metoda pretvori litre v galone /// </summary> /// <param name="litri">Izhod: količina v litrih</param> /// <param name="galoni">Vhod: količina v galonih</param> public double tekocina1(double litri, double galoni) { Console.WriteLine("\nVnesite količino v galonih: "); galoni = double.Parse(Console.ReadLine()); litri = galoni * 3.79; return litri; } /// <summary> /// Metoda pretvori galone v litre /// </summary> /// <param name="litri">Vhod: količina v litrih</param> /// <param name="galoni">Izhod: količina v galonih</param> public double tekocina2(double litri, double galoni) { Console.WriteLine("\nVnesite količino v litrih: "); litri = double.Parse(Console.ReadLine()); galoni = litri / 3.79; return galoni; } /// <summary> /// Metoda pretvori milje v kilometre /// </summary> /// <param name="kilometri">Izhod: razdalja v kilometrih</param> /// <param name="milje">Vhod: razdalja v miljah</param> public double razdalja1(double kilometri, double milje) { Console.WriteLine("\nVnesite razdaljo v miljah: "); milje = double.Parse(Console.ReadLine()); kilometri = milje * 1.61; return kilometri; } /// <summary> /// Metoda pretvori kilometre v milje /// </summary> /// <param name="kilometri">Vhod: razdalja v kilometrih</param> /// <param name="milje">Izhod: razdalja v miljah</param> public double razdalja2(double kilometri, double milje) { Console.WriteLine("\nVnesite razdaljo v kilometrih: "); kilometri = double.Parse(Console.ReadLine()); milje = kilometri * 0.62; return milje; } } class Program { static void Main(string[] args) { pretvornik pretvori = new pretvornik(); double stopinjeRezultat = pretvori.temperatura1(pretvori.stopinje, pretvori.fahrenheit); Console.WriteLine("Temperatura v stopinjah je: {0}°C", stopinjeRezultat); pretvori.temperatura2(pretvori.stopinje, pretvori.fahrenheit); Console.WriteLine("Temperatura v fahrenheitih je: {0}F"); pretvori.tekocina1(pretvori.litri, pretvori.galoni); Console.WriteLine("Temperatura v litrih je: {0}l"); pretvori.tekocina2(pretvori.litri, pretvori.galoni); Console.WriteLine("Temperatura v galonih je: {0} gal"); pretvori.razdalja1(pretvori.kilometri, pretvori.milje); Console.WriteLine("Razdalja v kilometrih je: {0} km"); pretvori.razdalja1(pretvori.kilometri, pretvori.milje); Console.WriteLine("Razdalja v miljah je: {0} milj"); Console.ReadKey(); } } }
Mavrik ::
Seveda ti da 0, če pa kot parametra funkciji podaš 0 ;)
The truth is rarely pure and never simple.
Cvenemir ::
Ja pri vsakem izpisu posebej hočem preračunat eno enoto, vendar visual studio pravi da
sta potrebna dva argumenta :)
sta potrebna dva argumenta :)
Cvenemir ::
Sedaj sem popravil kodo. Vse izračuna pravilno, edino za stopinje mi še vedno izpiše 0.
//Uroš Podrekar, E1059816, ITK-VS1 //Opis programa: V programu bomo definirali nekaj metod za pretvorbo //med osnovnimi merskimi enotami za razdaljo, količino tekočine in temperaturo. //V glavnem podprogramu bomo preverili delovanje posameznih metod. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace R4_pretvornik { //Definiramo razred public class pretvornik { //Definiramo objekte razreda public double stopinje; public double fahrenheit; public double litri; public double galoni; public double kilometri; public double milje; //Objektom priredimo začetne vrednosti //public pretvornik() //{ // stopinje = 0; // fahrenheit = 0; // litri = 0; // galoni = 0; // kilometri = 0; // milje = 0; //} /// <summary> /// Metoda pretvori fahrenheite v °C /// </summary> /// <param name="stopinje">Izhod: temperatura v °C</param> /// <param name="fahrenheit">Vhod: temperatura v F</param> public double temperatura1() { Console.WriteLine("Vnesite temperaturo v fahrenheitih: "); double fahrenheit = double.Parse(Console.ReadLine()); double stopinje = (5 / 9) * (fahrenheit - 32); return stopinje; } /// <summary> /// Metoda pretvori °C v F /// </summary> /// <param name="stopinje">Vhod: temperatura v °C</param> /// <param name="fahrenheit">Izhod: temperatura v F</param> public double temperatura2() { Console.WriteLine("\nVnesite temperaturo v °C: "); double stopinje = double.Parse(Console.ReadLine()); double fahrenheit = (9 / 5) * stopinje + 32; return fahrenheit; } /// <summary> /// Metoda pretvori litre v galone /// </summary> /// <param name="litri">Izhod: količina v litrih</param> /// <param name="galoni">Vhod: količina v galonih</param> public double tekocina1() { Console.WriteLine("\nVnesite količino v galonih: "); double galoni = double.Parse(Console.ReadLine()); double litri = galoni * 3.79; return litri; } /// <summary> /// Metoda pretvori galone v litre /// </summary> /// <param name="litri">Vhod: količina v litrih</param> /// <param name="galoni">Izhod: količina v galonih</param> public double tekocina2() { Console.WriteLine("\nVnesite količino v litrih: "); double litri = double.Parse(Console.ReadLine()); double galoni = litri / 3.79; return galoni; } /// <summary> /// Metoda pretvori milje v kilometre /// </summary> /// <param name="kilometri">Izhod: razdalja v kilometrih</param> /// <param name="milje">Vhod: razdalja v miljah</param> public double razdalja1() { Console.WriteLine("\nVnesite razdaljo v miljah: "); double milje = double.Parse(Console.ReadLine()); double kilometri = milje * 1.61; return kilometri; } /// <summary> /// Metoda pretvori kilometre v milje /// </summary> /// <param name="kilometri">Vhod: razdalja v kilometrih</param> /// <param name="milje">Izhod: razdalja v miljah</param> public double razdalja2() { Console.WriteLine("\nVnesite razdaljo v kilometrih: "); double kilometri = double.Parse(Console.ReadLine()); double milje = kilometri * 0.62; return milje; } } class Program { static void Main(string[] args) { pretvornik pretvori = new pretvornik(); double stopinjeRezultat = pretvori.temperatura1(); Console.WriteLine("Temperatura v stopinjah je: {0}°C", stopinjeRezultat); double fahrenheitRezultat = pretvori.temperatura2(); Console.WriteLine("Temperatura v fahrenheitih je: {0}F", fahrenheitRezultat); double litriRezultat = pretvori.tekocina1(); Console.WriteLine("Temperatura v litrih je: {0}l", litriRezultat); double galoniRezultat = pretvori.tekocina2(); Console.WriteLine("Temperatura v galonih je: {0} gal", galoniRezultat); double kmRezultat = pretvori.razdalja1(); Console.WriteLine("Razdalja v kilometrih je: {0} km", kmRezultat); double miljeRezultat = pretvori.razdalja2(); Console.WriteLine("Razdalja v miljah je: {0} milj", miljeRezultat); Console.ReadKey(); } } }
amacar ::
Tak daj:
public double temperatura1() { Console.WriteLine("Vnesite temperaturo v fahrenheitih: "); double fahrenheit = double.Parse(Console.ReadLine()); double stopinje = 5 * (fahrenheit - 32)/9; return stopinje; }
BHawk ::
Ko deliš moraš deliti z double tipom. Ker drugače vrne deljenje z int tipom int rezultat. 5 / 9 je rezultat 0, ker deliš 2 int števili. Probaj 5.0 / 9.0
Spura ::
public class pretvornik { //Definiramo objekte razreda public double stopinje; public double fahrenheit; public double litri; public double galoni; public double kilometri; public double milje; //Objektom priredimo začetne vrednosti public pretvornik() { stopinje = 0; fahrenheit = 0; litri = 0; galoni = 0; kilometri = 0; milje = 0; }
Zakaj imas definirane te spremenljivke, ki jih nikoli ne uporabljas?
Zakaj so public? Zakaj je class name z malo crko? Zakaj so imena metod z malo?
public double temperatura1(double stopinje, double fahrenheit) { Console.WriteLine("Vnesite temperaturo v fahrenheitih: "); fahrenheit = double.Parse(Console.ReadLine()); stopinje = (5 / 9) * (fahrenheit - 32); return stopinje; }
5 / 9 = 0
/// <summary> /// Metoda pretvori °C v F /// </summary> /// <param name="stopinje">Vhod: temperatura v °C</param> /// <param name="fahrenheit">Izhod: temperatura v F</param> public double temperatura2(double stopinje, double fahrenheit) { Console.WriteLine("\nVnesite temperaturo v °C: "); stopinje = double.Parse(Console.ReadLine()); fahrenheit = (9 / 5) * stopinje + 32; return fahrenheit; }
9 / 5 = 1, ker nimas oklepajev se potem to pomnozi s stopinjami in potem pristeje 32.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PROSIM POMOČ! (programiranjeOddelek: Pomoč in nasveti | 964 (679) | comgen |
» | [c#] Ustvarjanje objekta v drugem razreduOddelek: Programiranje | 1649 (1594) | Cvenemir |
» | Sode ter Lihe(C Sharp)Oddelek: Programiranje | 1662 (1460) | detroit |
» | [C#] Preprost računOddelek: Programiranje | 1161 (885) | darkkk |
» | [C#] Reševanje domačih nalogOddelek: Programiranje | 3262 (2766) | krastača |