» »

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:
//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:
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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java - DN] Naključna števila

Oddelek: Šola
121355 (884) nyler
»

[C] - Spreminjanje programa s pointerji

Oddelek: Programiranje
61178 (930) DaMachk
»

[C++] Naloga seznam

Oddelek: Programiranje
223287 (2562) Matic1911
»

[c#] Vstavljanje vrednosti v tabelo

Oddelek: Programiranje
111608 (1430) Cvenemir
»

C# (strani: 1 2 )

Oddelek: Programiranje
9712046 (8881) Ericssony

Več podobnih tem