Nizi v C#: Naloge in kviz

Nizi v C#: Naloge in kviz

Avtor: Mateja Smerdel

PRVA NALOGA

Navodilo naloge

Napiši funkcijo, ki od uporabnika zahteva vnos niza, nato pa niz popravi tako, da ob vsaki pojavitvi samoglasnika v nizu, nizu poleg obstoječega samoglasnika doda še en poljuben samoglasnik.

Postopek reševanja

Uporabniku najprej izpišemo sporočilo, naj vnese niz. Nato vnesen niz s pomočjo ukaza Console.Readline() iz zaslona preberemo in ga shranimo v spremenljivko tipa string . Definiramo še eno spremenljivko tipa string , v katero shranimo vse samoglasnike. Ustvarimo še generator naključnih števil, katerega bomo potrebovali v nadaljevanju. Potrebovali bomo še eno spremenljivko tipa string , v katero bomo shranjevali niz za izpis.

Nato se s for zanko sprehodimo skozi niz in s pomočjo metode IndexOf preverjamo, ali se tekoči znak niza nahaja v nizu samoglasniki, katerega smo definirali na začetku. V primeru da je število, ki ga vrne ukaz samoglasniki.IndexOf(niz[i]) različno od -1, potem je tekoči znak samoglasnik zato izpisu dodamo tekoči znak niza ter za njim še en naključno zgeneriran samoglasnik. Pri generiranju si pomagamo z generatorjem naključnih števil Random . Tega smo ustvarili že na začetku. Naključno zgeneriramo neko število v razponu dolžine niza samoglasnikov, nato pa iz tega niza vzamemo znak, ki se nahaja na mestu, katerega smo dobili z generiranjem.

V nasprotnem primeru, torej če tekoči znak niza ni samoglasnik, pa tega le dodamo izpisu. Niz na koncu s pomočjo metode Console.WriteLine na zaslon tudi izpišemo.

Koda programa v C#

 Console.Write("Vpiši niz: ");
            string niz = Console.ReadLine();

            string samoglasniki = "aAeEiIoOuU";
            int dolzina=samoglasniki.Length;
            string izpisi = "";

            Random nakljucna = new Random();

            for (int i = 0; i < niz.Length; i++)
            {
                if (samoglasniki.IndexOf(niz[i]) !=-1)
                {
                    int indeks = nakljucna.Next(0, dolzina - 1);
                    char naklj = samoglasniki[indeks];
                    izpisi = izpisi+niz[i]+naklj;
                }
                else
                    izpisi+=niz[i];
            }
            Console.WriteLine(izpisi);
            Console.ReadLine(); 

Rešitev

(resenaNaloga1.bmp)
Slika1: Rešitev 1.naloge

DRUGA NALOGA

Navodilo naloge

Napišite program, ki od uporabnika zahteva vnos niza, nato pa izpiše niz v katerem so vsi samoglasniki nadomeščeni z znakom *.

Postopek reševanja

Najprej na zaslon izpišemo ukaz za vnos niza. Niz iz zaslona preberemo s pomočjo metode Console.ReadLine in ga shranimo v spremenljivko tipa string . Definiramo še dve novi spremenljivki tipa string , v prvo shranimo vse samoglasnike, drugi pa na začetku določimo vrednost praznega niza.

Nato se s for zanko sprehodimo čez dolžino niza in s pomočjo metode IndexOf preverjamo, ali je tekoči znak samoglasnik ali ne. V primeru da ni samoglasnik, potem znak kar dodamo nizu, v primeru da je pa namesto tekočega znaka izpisu dodamo znak * . Na koncu s pomočjo metode Console.WriteLine popravljen niz na zaslon izpišemo.

Koda programa v C#  static void Main(string[] args)
        {
            Console.Write("Vnesi niz: ");
            string niz = Console.ReadLine();
            string samoglasniki="aAeEiIoOuU";
            string izpis="";
            for (int i = 0; i < niz.Length; i++)
            {
                if (samoglasniki.IndexOf(niz[i]) == -1)
                    izpis += niz[i];
                else
                    izpis += "*";
            }
            Console.WriteLine(izpis);
            Console.ReadLine();
        } 

Rešitev

(resenaNaloga2.bmp)
Slika1: Rešitev 2.naloge

DODATNE NALOGE

1. Naloga

Napiši program, ki prebere niz iz zaslona, nato pa prešteje kolikokrat se v nizu pojavi kakšen samoglasnik in na koncu to izpiše. Če se določen samoglasnik v nizu ni pojavil, ga pri izpisu ne navajamo.

2. Naloga

Napiši program,k i zahteva vnos dveh nizov, nato pa izpiše le tiste črke,ki so se pojavile tako v prvem kot v drugem nizu.

3. Naloga

Napiši program ki izračuna dolžino niza, brez uporabe funkcije Length.

4. Naloga

Napiši program, ki iz zaslona prebere dva niza, nato pa najprej izpiše tistega, ki je po abecednem vrstnem redu drugi, potem pa še tistega, ki je prvi.

5. Naloga

Napiši program, ki prebere niz in prešteje koliko samoglasnikov je v njem. Nato izpiše število samoglasnikov v nizu ter samoglasnike iz niza (če se en samoglasnik ponovi večkrat, ga izpiše le enkrat).

KVIZNA VPRAŠANJA

1. Kako pravilno deklariramo spremenljivko, če želimo v njej hraniti niz?

String niz;
string niz;
int niz;
char niz;

Odgovor je pravilen.

Naprej

Odgovor je napačen. Poskusi ponovno.

Ponovno

2. Kako pretvorimo iz niza v decimalno število?

int.Parse(niz);
double.Parse();
double.Parse(niz);
int.Parse();

Odgovor je pravilen.

Naprej

Odgovor je napačen. Poskusi ponovno.

Ponovno

3. Kako bi ugotovili dolžino niza mateja?

"mateja".Len;
"mateja".Length();
"mateja".Length;
Len("mateja");

Odgovor je pravilen.

Naprej

Odgovor je napačen. Poskusi ponovno.

Ponovno

4. V C# napišemo spodnjo kodo. Kaj se nam izpiše?

 static void Main(string[] args)
        {
            string niz = "Zunaj sije sonček.";
            Console.WriteLine(niz.Substring(6,4));
            Console.Read();
        } 

noben odgovor ni pravilen
sije sonček
sije
sonček

Odgovor je pravilen.

Naprej

Odgovor je napačen. Poskusi ponovno.
0%
0%