» »

C#

C#

«
1
2

Sportmania ::

Deklarirajte dvodimenzionalno tabelo PADAVINE 12 x 31 elementov. Elementi tabele naj bodo cela števila, v njej pa želimo hraniti podatke o količini padavin za posamezen dan v določenem mesecu.
a) Napišite metodo vnos za vnos podatkov v tabelo (podatke vnašamo oz. beremo preko tipkovnice, če ima mesec manj kot 31 dni je količina padavin za tisti dan enaka -1)
b) Napišite metodo izpisMeseca za izpis padavin za določen mesec – metoda naj ima dva parametra: ime tabele in številko meseca. Izpis naj ima obliko:

Količine padavin za mesec xx:
Dan Padavine
1 12
2 20
3 0
….




31 120

c) Napišite metodo prestej, ki vrne skupno število dni v letu, ko ni bilo padavin.
d) Napišite metodo povprecje, ki vrne povprečno dnevno količino padavin!
e) Predpostavi, da je tabela že napolnjena s podatki. Ugotovite in izpišite, v katerem mesecu je bila količina padavin največja?

BI lahko kdo pomagal rešit to nalogo?


Pa mogoče še tole:

I. Oglejte si spodnjo metodo!
(2 točki)

static int metoda(int n){
if (n==1)
return 1;
else
if (n>0)
return n+metoda(n-1);
else
return 0;
}


Kaj metoda vrne, če je vrednost parametra n enaka 5?

_______________________

Kakšen postopek je v matodi uporabljen in kaj je njegova značilnost?

___________________________________________________________________


keworkian ::

5 potem 4 potem 3 potem 2 potem 1
rekurzija, da se izvaja dokler ni pogoj uresnicen
Obscenities in B-Flat

Zgodovina sprememb…

Sportmania ::

Prvi del si napačno odgovoru, drug delno.

Rešitev je 15 nevem od kje?
Rekurzija je primer, ko metoda kliče sama sebe...

A lahko kdo pove zakaj če je n=5 rezultat 15?


xordie ::

5 + metoda(4)
5 + 4 + metoda(3)
5 + 4 + 3 + metoda(2)
5 + 4 + 3 + 2 + metoda(1)
5 + 4 + 3 + 2 + 1 = 15
x

Sportmania ::

Aha to je to HVALA


Sportmania ::

Vprašu bi še, če se lahko foreach uporablja za 2D tabelo in kako, če sploh?

Pa, če bi morda kdo znal tole:
a) Napišite program, ki ustvari datoteko Nova.txt in vanjo prepiše vsak drug stavek iz obstoječe datoteke Stara.txt. (3 točke)
b) Vsebino datoteke Stara.txt izpišite na ekran. (2 točki)
c) Napišite lastno funkcijo, ki dobi za parameter datoteko Nova.txt ter vrne število znakov v tej datoteki. (5 točk)

Kako bi mu povedu, da nej izpiše stavk od pike do pike?
//a)
            int pike = 0;
            StreamWriter pisi = File.CreateText("Nova.txt");
            StreamReader beri = File.OpenText("Stara.txt");
            string vsebina = beri.ReadLine();
            while (vsebina != null)
            {
                foreach (char c in vsebina)
                    if (c == '.')
                        pike++;
                if (pike % 2 == 0)
                    pisi.WriteLine(vsebina);
                vsebina = beri.ReadLine();
            }
            beri.Close();
            pisi.Close();

            //b)
            string ekran = File.ReadAllText("Stara.txt");
            Console.WriteLine(ekran);

            //c)
            static int znaki(string dat)
            {

            }


Zgodovina sprememb…

MrBrdo ::

Seveda lahko foreach uporabiš za 2D tabelo saj je to v bistvu 1D tabela 1D tabel... (namig: rabiš torej 2 gnezdena foreach-a).
Me pa zanima, a si res nisi pripravljen niti malo sam pogledat? Tole kar sprašuješ glede datotek je res osnovno, ne zdi se mi lepo ali odgovorno da pričakuješ da ti bojo slo-techovci reševali domače naloge medtem ko se tebi ne da niti napisat v google C# read write file... Sploh tale b) primer no, lepo te prosim...
MrBrdo

Sportmania ::

Mah ne fora je k dons sm že doskrat spremenu tole samo mi forum kar dolgo rabi, da osveži.
Tole nalogo sem sedaj rešu vendar ne vem kako bi izpisu vsak drugi stavek.

 static void Main(string[] args)
        {
            //a)
            int pike = 0;
            StreamWriter pisi = File.CreateText("Nova.txt");
            StreamReader beri = File.OpenText("Stara.txt");
            string vsebina = beri.ReadLine();
            while (vsebina != null)
            {
                foreach (char c in vsebina)
                    if (c == '.')
                        pike++;
                if (pike % 2 == 0)
                    pisi.WriteLine(vsebina);
                vsebina = beri.ReadLine();
            }
            beri.Close();
            pisi.Close();

            //b)
            string ekran = File.ReadAllText("Stara.txt");
            Console.WriteLine(ekran);

            //c)
            Console.WriteLine(znaki("Stara.txt"));
        }

        //c)
        static int znaki(string dat)
        {
            int znakov = 0;
            StreamReader beri = File.OpenText("Stara.txt");
            int znaki = beri.Read();
            while (znaki != -1)
            {
                znakov++;
                znaki = beri.Read();
            }
            return znakov;
        }


MrBrdo ::

beri znak po znaku, na zacetku daj eno spremenljivko izpisi na false, potem pa medtem ko beres, ce dobis piko obrni to spremenljivko izpisi (torej izpisi = !izpisi). dokler je izpisi == true izpisi tisti znak ki si ga prebral sicer pa samo preveri ce je pika (preverjas ne glede na stanje izpisi).

odvisno kaj je misljeno z vsakim drugim stavkom, ce je misljeno 1., 3., ... potem namesto da je izpisi na zacetku false naj bo true, ce pa je misljeno 2., 4., ... potem pa tako kot sem rekel.
MrBrdo

Zgodovina sprememb…

  • spremenilo: MrBrdo ()

Sportmania ::

Aha hvala bom poizkusil ;)


mkos13 ::

A bi mi lahko kdo tole prosim pomagu?
Napišite algoritem (pseudokoda) , narišite diagram poteka in napišite program, ki nariše številski trikotnik:


1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

Zgodovina sprememb…

  • spremenil: mkos13 ()

Sportmania ::

Napišite algoritem (pseudokoda) , narišite diagram poteka in napišite program, ki nariše številski trikotnik:


1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

Se mogoče komu tole sanja?


Zgodovina sprememb…

Spura ::

MrBrdo je izjavil:

Seveda lahko foreach uporabiš za 2D tabelo saj je to v bistvu 1D tabela 1D tabel... (namig: rabiš torej 2 gnezdena foreach-a).
Me pa zanima, a si res nisi pripravljen niti malo sam pogledat? Tole kar sprašuješ glede datotek je res osnovno, ne zdi se mi lepo ali odgovorno da pričakuješ da ti bojo slo-techovci reševali domače naloge medtem ko se tebi ne da niti napisat v google C# read write file... Sploh tale b) primer no, lepo te prosim...

2D tabela ni 1d tabela 1d tabel. V C# imas [,] dvodimenzionalno tabelo. Imas pa tudi [][] kar je staggered array, ki pa je 1d tabela 1d tabel.

Sportmania je izjavil:

Napišite algoritem (pseudokoda) , narišite diagram poteka in napišite program, ki nariše številski trikotnik:


1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

Se mogoče komu tole sanja?
A to rekurzivno?

Zgodovina sprememb…

  • spremenil: Spura ()

Sportmania ::

Ne to je treba nardit kot metodo, ki ima za parameter številko vrstic. V tem primeru je parameter 5.


DubleG ::

To so zelo lahke naloge, malo razmišljanja in kakšna zanka pa boš hitro konec.
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

mkos13 ::

int i, j;
Console.Write("Velikost vzorca (1 - 9): ");
int n = Convert.ToInt32(Console.ReadLine());
for (i = n; i > 0; i--)
{
for (j = n; j >= i; j--)
Console.Write(j);
Console.WriteLine();
}

Če vstavim 3 mi pride takole
3
32
321
dubit pa hočm
1 2 3
1 2
1
kaksna zamisel?
hvala!

MrBrdo ::

Spura je izjavil:

MrBrdo je izjavil:

Seveda lahko foreach uporabiš za 2D tabelo saj je to v bistvu 1D tabela 1D tabel... (namig: rabiš torej 2 gnezdena foreach-a).
Me pa zanima, a si res nisi pripravljen niti malo sam pogledat? Tole kar sprašuješ glede datotek je res osnovno, ne zdi se mi lepo ali odgovorno da pričakuješ da ti bojo slo-techovci reševali domače naloge medtem ko se tebi ne da niti napisat v google C# read write file... Sploh tale b) primer no, lepo te prosim...

2D tabela ni 1d tabela 1d tabel. V C# imas [,] dvodimenzionalno tabelo. Imas pa tudi [][] kar je staggered array, ki pa je 1d tabela 1d tabel.


Sej ni povedal kako jo je deklariral ;) Sicer nisem vedel za to. Na koncu se vseeno vse skupaj lahko prevede le v 1D tabelo 1D tabel ali navadno 1D tabelo in se racuna indeks, če so podtabele fiksne velikosti...
In kako greš potem čez to 2D tabelo ki jo ti omenjaš z foreach-om?

mkos13, Sportmania: vidva bosta morala začet v šolo/na predavanja hodit... ^_^
            int n = 5;
            do {
                for (int i = 1; i <= n; i++) Console.Write(i.ToString() + " ");
                Console.WriteLine();
            } while (--n > 0);

            int n = 5;
            for (int j = n; j > 0; j--) {
                for (int i = 1; i <= j; i++) Console.Write(i.ToString() + " ");
                Console.WriteLine();
            }

Evo da vaju ne bojo obtozili kopiranja :P
MrBrdo

Zgodovina sprememb…

  • spremenilo: MrBrdo ()

Sportmania ::

Hvala ti lepa ;)

Ma ne sej sva hodila samo zdej rešujeva te pole za maturo in je to konzolno programiranje, ki smo ga delal par let nazaj (vem ja vse se navezuje) ampak še vseen nism tak pro, da bi si zapomnu za nazaj, ko smo to že enkrat delal.
Samo zakaj si kle uporabu i.ToString(); ?

Aja a slučajn veš kako bi naredu funkcijo, ki ti pretvor parameter, ki ga podaš v celoštevilo?
Nekje sem zasledil, da se uporablja parse pa zgleda, da ne.



I. Za zanko while je značilno, da: (1 točka)

a) se pogoj preverja na koncu, stavki v telesu zanke se izvajajo, dokler pogoj ni izpolnjen;
b) pogoj, ki ga preverjamo, mora biti sestavljen;
c) se stavki v telesu zanke nikoli ne izvedejo, če na začetku zanke ni izpolnjen pogoj;
d) se pogoj preverja na začetku, stavki v telesu zanke se izvajajo, dokler je pogoj izpolnjen;
e) se pogoj preverja na začetku, stavki v telesu zanke pa se izvajajo, dokler pogoj ni izpolnjen.


A nista kle c pa d oba pravilna?


Thx


Zgodovina sprememb…

Ziga Dolhar ::

d) se pogoj preverja na začetku, stavki v telesu zanke se izvajajo, dokler je pogoj izpolnjen;
e) se pogoj preverja na začetku, stavki v telesu zanke pa se izvajajo, dokler pogoj ni izpolnjen.


Glede na to, da sta glede pogoja diametralno nasprotna, bosta težko oba pravilna.
https://dolhar.si/

Sportmania ::

Opa ni sm zgrešu ;)
Sorry
d)


Sportmania ::

Tole mi je uspelo ampak ni nobenega errorja nevem kaj bi lahko popravil, če lahko kdo prosim pomaga.
Napišite program, ki ustvari datoteko Nova.txt in vanjo prepiše vsak drug stavek iz obstoječe datoteke Stara.txt.
int pike = 0;
            bool izpis = false;
            StreamWriter pisi = File.CreateText("Nova.txt");
            StreamReader beri = File.OpenText("Stara.txt");
            int vsebina = beri.Read();
            while (vsebina != -1)
            {
                foreach (char c in Convert.ToString(vsebina))
                {
                    if (c == '.')
                    {
                        pike++;
                        if (pike % 2 == 0)
                        {
                            izpis = true;
                            if (izpis == true)
                            {
                                pisi.WriteLine();
                            }
                            else
                                break;
                        }
                    }
                }
            }
            pisi.Close();
            beri.Close();


mkos13 ::

                      L
                        e
                           p
                               
                                d
                                    a
                                       n
                                           !


Mene pa zanima kako bi naredu takle diaognalen izpis ne rata mi. Pa čist na izzi je vem, ker je v knjigi kuj spredaj ampak nevem neznam. Prosim nekoga, če lahko pomaga ali vsaj poda kako zamisel. Mislil sem nardit z 2D tabelo ampak ne gre.

Hvala!

Zgodovina sprememb…

  • spremenil: mkos13 ()

Nuke_H2 ::

imaš tabelo v kateri imaš napisan "L", "E", "P", " ", "D" ,"A","N","!";

potem se pa z dvema zankama sprehodiš čez to tabelo.

    for(int i=0; i<tabela.length; i++){
        for(j=i; j<=0; j--){
             System.out.print(" ");
        }
        System.out.print(tabela[i]+"\n"); 
    }

Tole sem napisal na pamet, sami mislim, da bi moralo delati.
Aja pa napisan je v javi... ampak mislim, da boš razumel.
Lp Nuke_H2

Spura ::

imaš tabelo v kateri imaš napisan "L", "E", "P", " ", "D" ,"A","N","!";

potem se pa z dvema zankama sprehodiš čez to tabelo.

    for(int i=0; i<tabela.length; i++){
        for(j=i; j<=0; j--){
             System.out.print(" ");
        }
        System.out.print(tabela[i]+"\n"); 
    }

Tole sem napisal na pamet, sami mislim, da bi moralo delati.
Aja pa napisan je v javi... ampak mislim, da boš razumel.
Lp Nuke_H2
Notranja zanka je cist nepotrebna (in tudi napacna).
Napacna je ker je pogoj notranje zanke v osnovi false. Poleg tega se notranje zanke tega tipa napise: for (j=0;j < i;j++)

Nepotrebna je pa zato ker lahko raje napises
    StringBuilder sb = new StringBuilder("");
    for(int i=0; i<tabela.length; i++){
        System.out.print(sb.toString());
        System.out.println(tabela[i]); 
        sb.append(" ");
    }

Zgodovina sprememb…

  • spremenil: Spura ()

mkos13 ::

Če lahko to eden v c# nardi, ker res ne vem.

DubleG ::

string a = "Lep dan!";
            int b = 0;            
            int s=0;
            for (int ii = 0; ii < a.Length; ii++)
            {
                Console.Write(a[ii].ToString());
                Console.Write(Environment.NewLine);
                b++;
                while(s!=b)
                {
                    Console.Write(" ");
                    s++;
                }
                s = 0;
            }
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

Sportmania ::

            int vsota = 0;
            int n = 15;
            while (n >= 5)
            {
                n--;
                if ((n % 3) == 0)
                {
                    vsota = vsota + n;
                }
            }
            Console.WriteLine(vsota);

--------------------------------------------------------------------------------------------

            int vs = 0;
            for (int n = 15; n >= 5; n--)
            {
                if ((n % 3) == 0)
                    vs = vs + n;
            }
            Console.WriteLine(vs);




Kaj bi mogu kle spremenit, da bi obe zanki postregli z enakim rezultatom?
Sedaj dobim 27 in 42.


mkos13 ::

Iskreno se zahvaljuje za prejšnje odgovore, morda kdo ve naslednjo nalogo.
Kako lahko pokličemo neko že definirano metodo Test, ki ima dva celoštevilska argumenta? Vse spremenljivke (a, b, sestej in stevec), ki nastopajo v odgovorih, so tipa int in so že definirane.

a) Test( a , a/b ) ;
b) Test[ a , b ] ;
c) Test{ a , b };
d) Test(a , sestej/stevec );
e) Test( a+b , a-b );

Zgodovina sprememb…

  • spremenil: mkos13 ()

DubleG ::

Dajta vidva resno malo knjigo v roko, ker pojma nimata niti pri ZELO ZELO osnovnih nalogah.
ZELO OSNOVNIH
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

Spura ::

Sportmania je izjavil:


int vsota = 0;
int n = 15;
while (n >= 5)
{
n--;
if ((n % 3) == 0)
{
vsota = vsota + n;
}
}
Console.WriteLine(vsota);

--------------------------------------------------------------------------------------------

int vs = 0;
for (int n = 15; n >= 5; n--)
{
if ((n % 3) == 0)
vs = vs + n;
}
Console.WriteLine(vs);




Kaj bi mogu kle spremenit, da bi obe zanki postregli z enakim rezultatom?
Sedaj dobim 27 in 42.

n-- prestavi na konec zanke. Ocitno ne razumes, kdaj se izvaja tretji stavek v for loop glavi.

Nuke_H2 ::


Notranja zanka je cist nepotrebna (in tudi napacna).
Napacna je ker je pogoj notranje zanke v osnovi false. Poleg tega se notranje zanke tega tipa napise: for (j=0;j < i;j++)

Nepotrebna je pa zato ker lahko raje napises
    StringBuilder sb = new StringBuilder("");
    for(int i=0; i<tabela.length; i++){
        System.out.print(sb.toString());
        System.out.println(tabela[i]); 
        sb.append(" ");
    }


Ja pogoj sm res narobe napisal. Imam pa pripomobo na to izjavo -> "Poleg tega se notranje zanke tega tipa napise: for (j=0;j < i;j++)". Ali obstaja kakšno pravilo? Čist komot bi lahko napisal -> for(j=i; j>=0; j--), ni nobene razlike med tema zankama.

Sportmania ::

Pa ne midva nisva prepričana ane sej se učiva sproti pa bereva knjigo. Res nevem, če vam je tok težko povedat samo črko pravilnega odgovora, ker ga pač nisva uspela najti pol vam ni treba tud kurčit naja.


Nuke_H2 ::

Sportmania je izjavil:

Pa ne midva nisva prepričana ane sej se učiva sproti pa bereva knjigo. Res nevem, če vam je tok težko povedat samo črko pravilnega odgovora, ker ga pač nisva uspela najti pol vam ni treba tud kurčit naja.


Bodi vesel, da ti usaj kdo pomaga... Nevem no mogoče ti tale link tut kej pomaga: Klik

MrBrdo ::

Sportmania je izjavil:


Samo zakaj si kle uporabu i.ToString(); ?

Aja a slučajn veš kako bi naredu funkcijo, ki ti pretvor parameter, ki ga podaš v celoštevilo?
Nekje sem zasledil, da se uporablja parse pa zgleda, da ne.

i.ToString() sem dal zato, ker sem dodal zraven se string (presledek se mi zdi). Načeloma naj bi združeval podatke istega tipa (torej v tem primeru dva stringa in ne integer + string). Morda dela tudi brez te pretvorbe, ne vem, ker C# bolj malo uporabljam.. Lahko probaš. Če dela, je ok, je pa bolj jasno če explicitno zahtevaš pretvorbo...

Za pretvorbo "parametra" (verjetno misliš string?) lahko uporabljaš class Convert. Npr. Convert.ToInt (ali pa ToInteger ne vem pamet). Mislim da mu lahko podaš tudi bazo (npr. 10 za desetiška števila). Lahko si bolj pogledaš ta razred, vsebuje kar veliko metod za pretvarjanje. Prav tako lahko narediš se mi zdi Convert.ToString(i, 2) recimo za izpis števila v dvojiškem sistemu (vrne string).
MrBrdo

Sportmania ::

Hvala MrBrdo za obrazložitev, ja dela tudi brez konverzije.

Napišite stavek, v katerem bi uporabili katerokoli metodo, s katero bi vrednost spremenljivke velikost, ki je tipa string, spremenili v celo število.
       static int spremeni(string velikost)
        {
            return velikost = (int)velikost;
        }



        static void Main(string[] args)
        {
            string velikost = "debil";
            Convert.ToInt32(velikost);


            int x = 5;
            Convert.ToString(x);
        }


Obratno se prav iz stringa v integer dela to pa žal ne. Nekaj sem bral, da se dela z parse samo ga sploh ne dobim samo pri obratnem se prav stringu drugače pa ne.


Sportmania ::

Sportmania je izjavil:

Tole mi je uspelo ampak ni nobenega errorja nevem kaj bi lahko popravil, če lahko kdo prosim pomaga.
Napišite program, ki ustvari datoteko Nova.txt in vanjo prepiše vsak drug stavek iz obstoječe datoteke Stara.txt.



A ve kdo kaj? 15 postov zgoraj je koda lepo prikazana.
int pike = 0;
bool izpis = false;
StreamWriter pisi = File.CreateText("Nova.txt");
StreamReader beri = File.OpenText("Stara.txt");
int vsebina = beri.Read();
while (vsebina != -1)
{
foreach (char c in Convert.ToString(vsebina))
{
if (c == '.')
{
pike++;
if (pike % 2 == 0)
{
izpis = true;
if (izpis == true)
{
pisi.WriteLine();
}
else
break;
}
}
}
}
pisi.Close();
beri.Close();


Zgodovina sprememb…

mkos13 ::

/*
        
         * Napišite funkcijo Vsota, ki vsoto enakoležnih elementov obeh tabel eno za drugo prepiše v tekstovno 
         * datoteko VSOTA.TXT, vsako vrstico tabele v svojo vrstico datoteke.
         * Upoštevajte naslednje deklaracije:
         * const n = 10;
         * int T1[n],T2[n];
         * int VecjaVsota(int T1[n],int T2[n]);
         * void Vsota(int T1[n],int T2[n]);
         */


        static void vsota(int[] T1, int[] T2)
        {
            StreamWriter pisi = File.CreateText("VSOTA.txt");
            for (int i = 0; i < T1.Length; i++)
            {
                pisi.WriteLine(T1[i]);
                pisi.WriteLine(T2[i]);
            }
            pisi.Close();
        }

        static int sestej(int[] T1, int[] T2)
        {
            int vsota1 = 0;
            int vsota2 = 0;
            for (int i = 0; i < T1.Length; i++)
            {
                vsota1 = vsota1 + T1[i];
                vsota2 = vsota2 + T2[i];
            }
            if (vsota1 > vsota2)
                return 1;
            if (vsota1 == vsota2)
                return 0;
            else
                return 2;
        }

        static void Main(string[] args)
        {
            int[] T1 = new int[5];
            int[] T2 = new int[5];
            Random r = new Random();
            for (int i = 0; i < 5; i++)
            {
                T1[i] = r.Next(-10, 10);
                T2[i] = r.Next(-10, 10);
            }
            Console.WriteLine(sestej(T1,T2));
            vsota(T1, T2);
        }
    }

Evo tole mi je uspel zdej pa nevem kaj naj bi pomenile te deklaracije, ki jih je potrebno upoštevat?

Zgodovina sprememb…

  • spremenil: mkos13 ()

Sportmania ::

Jz bi samo na hiter vprašu naredu sem eno nalogo iz struktur.
Pa me zanima na koncu je naloga:
h) ukaz za sprostitev pomnilnika, zasedenega z dinamično ustvarjenim primerkom strukture.

Pa sem prebral, da v C# za to skrbi Garbage Collector, ki sam puca obenem pa obstajajo tudi destruktorji nevem ali je tu mišljeno to pa kako je treba izvesti?
~DRZ()
{
}


Sportmania ::

Nč ni za vas vse sem uštimu ;), če lahko kdo kej odgovori od zgornjega bi lepo prosu.

Lp
HVALA!


Zgodovina sprememb…

mkos13 ::

Kaj gre tule narobe, da se tabela ne napolni prek metode inic ampak napiše, da je index prevelik.
static void inic(int[,] CELA)
        {
            Random r = new Random();
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 20; i++)
                {
                    CELA[i, j] = r.Next(-100, 101);
                }
            }
        }


        static void Main(string[] args)
        {
            
            int[,] CELA = new int[10, 20];
            inic(CELA);


        }

Mavrik ::

V obeh for zankah povečuješ spremenljivko i.
The truth is rarely pure and never simple.

Sportmania ::

Napišite metodo prestej, ki ugotovi in izpiše, kolikokrat se v tej tabeli pojavijo cela števila med 20 in 40 - parameter te metode je ime tabele - CELA.

static int postej(int[,] CELA)
        {
            int stevc=0;
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 20; j++)
                {
                    if(CELA[i,j]>=20&&CELA[i,j]<=40)
                    {
                        stevc++;
                    }   
                }
            }
            return stevc;
        }


Kaj gre pa tule narobe?
Pa evo še z voidom sem tud poizkusil pa ne gre:
static void prestej2(int[,] CELA)
        {
            int stevc = 0;
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 20; j++)
                {
                    if (CELA[i, j] >= 20 && CELA[i, j] <= 40)
                        stevc++;
                }
            }
            Console.WriteLine(stevc);
        }


Spura ::

Najbrz predecenca operatorjev v if pogoju. Ce nisi zihr v kakem vrstnem redu se racunajo izrazi, potem postavi oklepaje (jst jih tudi ce vem).

Zgodovina sprememb…

  • spremenil: Spura ()

Spura ::

Imam pa pripomobo na to izjavo -> "Poleg tega se notranje zanke tega tipa napise: for (j=0;j < i;j++)". Ali obstaja kakšno pravilo? Čist komot bi lahko napisal -> for(j=i; j>=0; j--), ni nobene razlike med tema zankama.

Semanticno ni razlike. Je pa razlika v razumevanju pri ljudeh. Psiholoske studije kazejo, da gre ljudjem sestevanje in pristevanje precej bolj od rok kot odstevanje. Tudi v tem primeru sem rabil dobro pogledat, da sm dojel, kaj se dogaja. Varianta z zmanjsevanjem indeksa se mi zdi tezje razumljiva in prej storis kako napako. Se ena stvar so pa kompajlerske optimizacije, ki so pogosto vezane na specificno obliko zanke in zanko na nek cuden nacin izvedes vcasih kompajlerju ne potegne, da lahko kaj optimizira. Zato se jaz drzim pravila, da v zanki vedno inkrementiram, da je zacetek pri 0 ali doloceni spremenljivki (i) in da uporabljam < namesto <=, ce se le da. Seveda je vcasih smiselno drugace zastavit. Coding convention pac. Zanke for(int i=0;i < array.length;i++) lahko zapisemo tudi kot for(int i=1;i <= array.length;i++) pa tega vseeno noben ne pocne.

Nuke_H2 ::


Semanticno ni razlike. Je pa razlika v razumevanju pri ljudeh. Psiholoske studije kazejo, da gre ljudjem sestevanje in pristevanje precej bolj od rok kot odstevanje. Tudi v tem primeru sem rabil dobro pogledat, da sm dojel, kaj se dogaja. Varianta z zmanjsevanjem indeksa se mi zdi tezje razumljiva in prej storis kako napako. Se ena stvar so pa kompajlerske optimizacije, ki so pogosto vezane na specificno obliko zanke in zanko na nek cuden nacin izvedes vcasih kompajlerju ne potegne, da lahko kaj optimizira. Zato se jaz drzim pravila, da v zanki vedno inkrementiram, da je zacetek pri 0 ali doloceni spremenljivki (i) in da uporabljam < namesto <=, ce se le da. Seveda je vcasih smiselno drugace zastavit. Coding convention pac. Zanke for(int i=0;i < array.length;i++) lahko zapisemo tudi kot for(int i=1;i <= array.length;i++) pa tega vseeno noben ne pocne.


No hvala za pojasnilo ;). Maš pa prov da je lažje prištevat kot odštevat ;)

Lp Nuke_H2

Sportmania ::

 int[,] TAB = new int[10, 10];
            Random r = new Random();
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    TAB[i, j] = r.Next(-100, 101);
                }
            }
            IzpisD(TAB);
            Pojavitev(TAB);
            Console.WriteLine(Vsota(TAB));
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    TAB[i, j] = TAB[i, j] + 1;
                }
            }
            IzpisD(TAB);



Zakaj mi tule ko prištejem vsakemu elementu +1 negativne kar spremeni v pozitivne.

NPR: prej je -99 prištejem 1 je pa 98.

LP HVALA


MrBrdo ::

dvomim da je problem v tej kodi ki si jo prilimal.. verjetno je problem v kakšni od funkcij ki jih kličeš
MrBrdo

Sportmania ::

Aha hvala.

            StreamReader beri = File.OpenText("Nova.txt");
            int stevc = 0;
            int koda;
            koda = beri.Read(); 
            while (koda != -1) 
            {
                koda = beri.Read();
                stevc++;
            }
            beri.Close();
            Console.WriteLine(stevc);


Kaj pa tule, ko moram izpisati št. znakov v beležnici vedno jih je nekaj 5 preveč od kje? Verjetno šteje tudi presledke pa vseeno ni dovolj?


Kami ::

New lines (\n), carriage returns (\r), tabs (\t)...

Sportmania ::

/*
         * Kreirajte tabelo celih števil z imenom tab in jo napolnite z naključnimi celimi števili med 65 in 91.

Napišite metodo, ki prešteje večkratnike danega števila (spremenljivka z imenom k) v tabeli in vrne rezultat štetja. Metodo pokličite dvakrat:
o	ob prvem klicu vrne število večkratnikov števila 3,
o	ob drugem klicu vrne število večkratnikov števila 5.

Napišite še metodo z imenom Crke, ki vsebino tabele pretvori v znake in jih po vrsti prepiše v tekstovno datoteko CRKE.TXT. 
 * */
        public static int Veckratniki (int [] tab, int k)
        {
            int vec = 0;
            for (int i = 0; i < tab.Length; i++)
            {
                if (tab[i] % k == 0)
                {
                    vec++;
                }
            }
            return vec;
        }
        static void Crke(int[] tab)
        {
            StreamWriter pisi = File.CreateText("CRKE.txt");
            for (int i = 0; i < 20; i++)
            {
                Convert.ToChar(tab[i]);
                pisi.WriteLine(tab[i]);
            }
            pisi.Close();
        }
        static void Main(string[] args)
        {
            Random r = new Random();
            int[] tab = new int[20];
            for (int i = 0; i < 5; i++)
            {
                tab[i] = r.Next(65, 92);
            }
            Console.WriteLine(Veckratniki(tab,20));
            Console.WriteLine(Veckratniki(tab,2));
            Crke(tab);
        }


Zakaj mi pri večkratnikih cel sistem zjebe, ko napišem recimo večkratniki števila 92, ko bi lahko bil največ eden pa jih kar najde 20 pa nevem povsem zgrešen je algoritem pa ne vidim kje?

Pri zapisu v datoteko pa mi sprva piše lepo potem pa samo začne nabijat 0 0 0 0.

HVALA!


«
1
2


Vredno ogleda ...

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

C# program za pretvorbo v desetiško število z rekurzijo

Oddelek: Programiranje
81365 (1088) MrStein
»

Visual C# problem

Oddelek: Programiranje
302902 (2074) mladec
»

[C#] Domača naloga - osnove

Oddelek: Programiranje
372340 (1557) 11tomi12
»

[c#] Majhen problemček

Oddelek: Programiranje
10912 (720) darkolord
»

branje iz datoteke c#

Oddelek: Programiranje
141554 (1283) darkolord

Več podobnih tem