Kezdőoldal » Számítástechnika » Programozás » C# a tömbök esetében lenne...

C# a tömbök esetében lenne egy kérdésem (kezdő vagyok)?

Figyelt kérdés

Íme egy tömb példa:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

Random r = new Random();

int[] tomb = new int[5]; // 5 számot ír ki, 5 elemből áll

for (int a = 0; a < 5; ++a)

{

tomb[a] = r.Next(50); // random szám max 50-ig

}

for (int a = 0; a < 5; ++a)

{

Console.Write(tomb[a] + " ");

}

Console.ReadKey();

}

}

}


Nem értem, hogy a for(int-nél amiket megadunk azok micsodák? :O Miért van ott ez hogy for (int a = 0; a < 5; ++a) ? Nem értem a logikáját... New Randomnál világos nagyjából, hogy 5 szám lesz, de nem teljesen világos az egész, valaki szakzsargon nélkül érthetően elmagyarázná légyszíves !



2014. nov. 16. 11:55
1 2
 1/17 Tengor ***** válasza:

for(kif1; kif2; kif3) {}

Ez a for alakja, ahol:

kif1 az valamilyen inicializálás, kezdő érték adás. Pl.: i=0;

kif2 az valamilyen feltétel. Amíg ez a feltétel igaz, addig fog futni a ciklus, addig ismétlődik. Pl.: a<5

kif3 mondja meg, hogy mi történjen minden ciklus végén. Pl.: ++a, vagyi növeljük meg az a értékét 1-gyel.

Tehát a te ciklusod az a értékét 0-től kezdi növelni mindig 1-gyel, amíg az a kisebb 5-nél.

2014. nov. 16. 12:09
Hasznos számodra ez a válasz?
 2/17 A kérdező kommentje:

DE ha én lefuttatom a programot kiad 5 számot 1-50-ig random módon. Nem világos! :S

Azt értem, hogy elvileg az for(int a=0; akkor elvileg 0 a kezdőértéke? de akkor miért ír ki 0-50ig random egy számot, ha a kifejezés 2ben a<5 ? akkor nem max 5 lehetne a szám? ++a esetén nem növelnie kéne? áhh nem értem az egészet...

2014. nov. 16. 12:18
 3/17 Tengor ***** válasza:

A random számokat az r.Next(50) hozza létre 0 és 50 között.

A ciklusban az a csak arra való, hogy a tömböd 0., 1.... 4. elemére hivatkozzon. Először azért, hogy a véletlenszámot beleírja, aztán, hogy onnan kiolvassa.

2014. nov. 16. 12:23
Hasznos számodra ez a válasz?
 4/17 A kérdező kommentje:

"A random számokat az r.Next(50) hozza létre 0 és 50 között."

Ezt értem.


"A ciklusban az a csak arra való, hogy a tömböd 0., 1.... 4. elemére hivatkozzon. Először azért, hogy a véletlenszámot beleírja, aztán, hogy onnan kiolvassa."


melyik a 0. 1... 4. elem? full nem értem hogy mi az oka, hogy a programom 0-50ig generál 5 számot... áhhh nem értem... A swits, case, if, ezeket simán megértettem, de nem értem ezt... andom r = new Random();

int[] tomb = new int[5]; ezt értem itt, 5 számot generál.... jön a for(int.....) ahol semmit nem értek, hogy ez mi a franc, aztán:


tomb[a] = r.Next(50); itt megint értem, hogy itt adjuk meg hogy 50 számból válogat... de nem értem ezt a foros dolgot abszolult.

2014. nov. 16. 12:32
 5/17 anonim ***** válasza:

Random r = new Random();

Mivel a C# egy objektumorientalt nyelv ezert objektumokbol epul fel minden...

itt peldanyositod a Random osztalyt, letrehozol belole egy objektumot es azt hozzarendeled a Random osztalyra mutato r objektumvaltozohoz, mert ugye az ertekadas jobbrol balra tortenik.

Ez az r valtozo most tartalmazza a Random osztaly egyik peldanyat, amit arra tudsz hasznalni, hogy random szamokat generalj. Mert ugye minden osztalynak vannak tulajdonsagai(valtozoi) es tagfuggvenyei. A te esetedben a Random osztaly Next tagfuggvenyet kell hasznalni, ami visszaad az argumentumkent atadott szamig egy veletlen szamot.

int[] tomb = new int[5];

Itt hozod letre a tombot, a szogletes zarojelben beirt 5 azt jelzi, hogy hany egesz szamot tartalmaz a tombod.

Erre ugy is gondolhatsz, mintha azt irtad volna, hogy:

int a;

int b;

int c;

int d;

int e;

Es utana ezeket toltod fel veletlenszamokkal... de a tombok sokkal hatekonyabbak ebben az esetben, amikor azonos tipusu adatokat kell tarolni es egyszerre tobbet.

A for ciklus arra valo, hogy ne kelljen begepelned az ertekado utasitast 5-szor...

for ciklus nelkul a program igy nezne ki:

tomb[0] = r.Next(50);

tomb[1] = r.Next(50);

tomb[2] = r.Next(50);

tomb[3] = r.Next(50);

tomb[4] = r.Next(50);

A for ciklus ettol kimel meg teged, nem kell a fenti ertekadast leirni otszor csupan egyszer

for(int i = kezdoertek(0); i < vegertek(5); i++)

{

tomb[i] = r.Next(50);

}

ha ezen elgondolkozol ugyanazt csinalja, mint amit fentebb leirtam 5szor.

Csak itt minden korben kicserelodik az i erteke vagyis 0-tol tart 4-ig es a tomb adott elemet egyenlove teszi egy veletlen szammal amit a Next tagfuggveny ad vissza.

A kiiras is ugyanezen az elven mukodik. Ezert hasznaljuk a for ciklust.

Fontos, hogy a C#-ban is mint C,C++-ban a tombok indexeles 0-tol kezdodik, ezert megy a ciklus 0-tol 4-ig es nem pedig 1-tol 5-ig.

Remelem tudtam segiteni!

2014. nov. 16. 13:04
Hasznos számodra ez a válasz?
 6/17 A kérdező kommentje:
Az utolsónak nagyon köszönöm, azt hiszem így érthető, de még átrágom! :)
2014. nov. 16. 13:22
 7/17 A kérdező kommentje:
Miert kell am az hogy r.Next? Miert nem eleg hogy r? Amugy kezdem erteni csak erdekes logikailag a tomb hasznalata.
2014. nov. 16. 18:23
 8/17 A kérdező kommentje:
Es miert kell utana hogy tomb[a]? Nem tomb a tomb neve? A zarojeleben az a mit takar?
2014. nov. 16. 18:26
 9/17 Tengor ***** válasza:

A r csak egy objektum és nem egy véletlen szám. Az r.Next() fogja a véletlen számot generálni.

Azért nem elég a tömb, mert a tömb az nem egy elem, hanem elemek sorozata. A tömb[i] a tömb nevű tömb i. elemét jeleni.

Milyen rendszerben tanulod a C#-ot?

2014. nov. 16. 19:19
Hasznos számodra ez a válasz?
 10/17 A kérdező kommentje:

Console Aplication-ba tanuljuk.. amúgy nem világos... kikommentelem, miről mit tudok:



namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

Random r = new Random(); //az r lesz itt az amibe beletölti a random számokat!?


int[] tomb = new int[5]; //5 szám lesz a max amit kifog írni, vagyis 5 eleme van a tömbnek, ami elvileg 0-értéket vesz fel elemenként... 0. elemnek 0 az értéke, 1. elemnek is 0 az értéke stb.... ezért kell feltölteni...

for (int a = 0; a < 5; ++a)

most elvileg ez a for-os izé amivel feltöltjük, és az a=0 elvileg az az hogy a 0. elem a tömbben (vagy nem?) De hogy miért pont a betűt kell megadni azt fogalmam sincs...., aztán a<5 megint fogalmam sincs mi a franc ez, olyasmit néztem youtubeon, hogy 5-ször írja ki az adott elemet, ebben az esetben a tömb 0. elemét kéne 5-ször kiírnia... aztán ,a++ ez megint mi a franc...? a=a+1 ennyit tanultunk, de hogy mi az hogy a=a+1 arról megint fogalmam sincs.

aaztán tomb[a]=r.Next(50) ez random 50 számot generáltat max, de hogy a tomb-be miért kell az hogy a, miért nem csak tomb[] és miért kell az r. után hogy Next erről megint fogalmam sincs, annyira jöttem rá, hogy az előbb a for "ciklusban" megadtunk adatokat, és gondolom a tömb magát a randomitást veszi itt fel, de abszolult nem világos, hogyha nekem kéne egy programot megírni logikusan hogy írjam meg...

Aztán console.wrtie(tomb[a]+" ") írja ki hogy??? mi az a + jel? full káosz van az agyamban....

{

tomb[a] = r.Next(50); // random szám max 50-ig

}

for (int a = 0; a < 5; ++a)

{

Console.Write(tomb[a] + " ");

}

Console.ReadKey();

}

}

}

2014. nov. 16. 19:58
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!