Forum » Programiranje » pomoč pri izdelavi vaje
pomoč pri izdelavi vaje
meh ::
Pozdravljeni
Pri izdelavi vaje sem naletel na oviro, katere rešitve zaenkrat še nisem našel. Pri avtomatskem testiranju mi je javilo napako:
nekje se je prozila izjema e: System.IndexOutOfRangeException: Index was outside the bounds of the array.
Ker sem sedaj nekaj stvari spremenil me zanima, če vidite v programu še kakšno napako preden jo spet pošljem na ocenjevanje. Nekatere teste za program sem tudi sam opravil in se mi zdi možno, da je sedaj ok ampak bi imel raje, da še vi pogledate, če kje najdete napako.
Besedilo naloge:
Implementirajte podatkovno strukturo „tabela”, kot ste jo spoznali na predavanjih.
Posamezni elementi tabele naj bodo znaki (podatkovni tip: char). V imenskem prostoru vaja2 zagotovite in implementirajte metode:
pripravi()
vrni()
vstavi()
Delovanje metod naj ustreza definiciji „tabele”, kot ste jo spoznali na predavanjih.
Za signaliziranje napake uporabite definirano konstanto ZNAK_NAPAKA, ki nosi vrednost ’\a’
(tj. „C”-jevska reprezentacija za kontrolni znak ASCII imenovan „zvonec” - ang.: „bell” -, ki nosi številsko vrednost 7)
. Pomeni, da kadar mora tabela po definiciji javiti napako, ustrezna metoda vrne vrednost konstante ZNAK_NAPAKA.
NALOGA:
Pri izdelavi vaje sem naletel na oviro, katere rešitve zaenkrat še nisem našel. Pri avtomatskem testiranju mi je javilo napako:
nekje se je prozila izjema e: System.IndexOutOfRangeException: Index was outside the bounds of the array.
Ker sem sedaj nekaj stvari spremenil me zanima, če vidite v programu še kakšno napako preden jo spet pošljem na ocenjevanje. Nekatere teste za program sem tudi sam opravil in se mi zdi možno, da je sedaj ok ampak bi imel raje, da še vi pogledate, če kje najdete napako.
Besedilo naloge:
Implementirajte podatkovno strukturo „tabela”, kot ste jo spoznali na predavanjih.
Posamezni elementi tabele naj bodo znaki (podatkovni tip: char). V imenskem prostoru vaja2 zagotovite in implementirajte metode:
pripravi()
vrni()
vstavi()
Delovanje metod naj ustreza definiciji „tabele”, kot ste jo spoznali na predavanjih.
Za signaliziranje napake uporabite definirano konstanto ZNAK_NAPAKA, ki nosi vrednost ’\a’
(tj. „C”-jevska reprezentacija za kontrolni znak ASCII imenovan „zvonec” - ang.: „bell” -, ki nosi številsko vrednost 7)
. Pomeni, da kadar mora tabela po definiciji javiti napako, ustrezna metoda vrne vrednost konstante ZNAK_NAPAKA.
NALOGA:
//definicija imenskega prostora(/podrocja) namespace vaja2 { //uporabljene knjižnice using System; //razredi public class Tabela { const char ZNAK_NAPAKA = '\a'; //proste metode v imenskem prostoru public static char[] pripravi(char[] arr) { return pripravi(arr, arr.Length); } //Pripravi tabelo na novo, nastavi vse indekse na vrednost "ZNAK_NAPAKA" public static char[] pripravi(char[] arr, int velikost) { //arr = new char[velikost]; velikost = arr.Length; for (int st = 0; st < velikost; st++)//zanka gre čez celotno tabelo { arr[st] = ZNAK_NAPAKA; //nastavitev vrednosti ZNAK_NAPAKA na indekse } return arr;//vrnemo tabelo } //vrne vrednost na indeksu public static char vrni(char[] arr, int indeks) { // char niSt = ZNAK_NAPAKA; if (indeks < 0 || indeks >= arr.Length)//preveri, če je indeks v domeni tabele { return ZNAK_NAPAKA; }//če ni vrne napako else { return arr[indeks];//drugače pa vrednost, ki je na indeksu } } //Metoda vstavi (char vrednost) na mesto (int indeks) public static char[] vstavi(char[] arr, int indeks, char vrednost) { if (indeks < 0 || indeks >= arr.Length)//preverjanje, če je indeks v domeni tabele { return arr; } else { arr[indeks] = vrednost;//če je tabela pravilna vstavi na željeni indeks izbrano vrednost. return arr; } } } public class Test { //glavna metoda public static void Main(string[] args) { //test pripravi() != null int velikost = 5; char[] arr0 = new char[velikost]; if (null == Tabela.pripravi(arr0)) Console.WriteLine("pripravi() vrne null"); //test vrni() prav vrne char[] arr1 = { 'x', 'd', 'b' }; if ('d' != Tabela.vrni(arr1, 1)) Console.WriteLine("vrni() ne vrne pravega elementa"); //test vstavi() != null if (null == Tabela.vstavi(arr0, 3, 'u')) Console.WriteLine("vstavi() vrne null");
meh ::
Naprimer, ko izpišem tabelo arr0:
Je izpis takšen:
0.
1.
2.
3.u
4.
Vsi indeksi so prazni, samo na 3jem mestu je znak 'u'.
Pa me zanima, če kdo ve kako bi moral narediti, da bi ta polja, ki so prazna bila označena z '/a' (ZNAK_NAPAKA)
for(int st=0;st<arr0.Lengt;st++) { Console.WriteLine("{0}", arr0[st]); }
Je izpis takšen:
0.
1.
2.
3.u
4.
Vsi indeksi so prazni, samo na 3jem mestu je znak 'u'.
Pa me zanima, če kdo ve kako bi moral narediti, da bi ta polja, ki so prazna bila označena z '/a' (ZNAK_NAPAKA)
Spura ::
Sej znaki \a so najbrz notri, samo v izpisu jih ne vidis, ker znak \a nima vizualne reprezentacije. Poleg tega je vseskupi narobe, ker od tebe zahteva, da naredis podatkovno strukturo, ti si pa samo static funkcije dal na class.
Zgodovina sprememb…
- spremenil: Spura ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java - DN] Naključna številaOddelek: Šola | 1355 (884) | nyler |
» | [C] - Spreminjanje programa s pointerjiOddelek: Programiranje | 1178 (930) | DaMachk |
» | [C++] Naloga seznamOddelek: Programiranje | 3287 (2562) | Matic1911 |
» | [c#] Vstavljanje vrednosti v tabeloOddelek: Programiranje | 1608 (1430) | Cvenemir |
» | C# (strani: 1 2 )Oddelek: Programiranje | 12046 (8881) | Ericssony |