Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Moniulotteiset Taulukot | Taulukot
C# Perusteet

bookHaaste: Moniulotteiset Taulukot

Moniulotteisten taulukoiden indeksointia varten on joskus hyödyllistä määritellä vakiot. Seuraavassa on taulukko edellisen luvun kyselystä:

main.cs

main.cs

copy
1234567
const int FRUITS = 0; const int VEGETABLES = 1; string[,] foods = { { "Apple", "Apricot", "Banana", "Grapes", "Lime" }, // fruits { "Tomato", "Cabbage", "Carrot", "Pumpkin", "Broccoli" }, // vegetables };

Olemme luoneet kaksi vakiota, FRUITS ja VEGETABLES, joiden arvot ovat 0 ja 1. Ne edustavat rivejä 0 (hedelmät) ja 1 (vihannekset) taulukossa foods.

Jos haluamme hakea vihannesten joukosta alkion "Cabbage", voimme yksinkertaisesti kirjoittaa:

main.cs

main.cs

copy
1
foods[VEGETABLES][1];

Tämä niksi ei välttämättä ole kovin hyödyllinen pienemmissä taulukoissa, kuten tässä esimerkissä, mutta kun käsitellään monimutkaisempia taulukoita, vakioiden käyttö voi helpottaa helppoa alkioiden hakua taulukosta, jolloin meidän ei tarvitse muistaa mikä rivi sisältää mitkäkin alkiot – erityisesti jos olemme luokitelleet alkiot riveihin.

Nyt haasteena on luoda 2-ulotteinen taulukko tyyppiä string nimellä productOptions, jonka koko on 4x3 (4 riviä, 3 saraketta). Alusta se seuraavilla tiedoilla:

  • Rivi 1: "Red", "Green", "White";
  • Rivi 2: "Square", "Rectangle", "Sphere";
  • Rivi 3: "Thick", "Medium", "Thin";
  • Rivi 4: "Printed", "Crafted", "None".

Hae "Crafted"-alkio indeksoimalla ja tulosta se. Käytä siihen sopivaa vakiomuuttujaa.

main.cs

main.cs

copy
123456789101112131415161718192021222324
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { const int COLOR = 0; const int SHAPE = 1; const int WIDTH = 2; const int DESIGN = 3; // Create the array below _______ = { _______ }; // Reference the relevant element in the WriteLine statement Console.WriteLine(productOptions[DESIGN, 1]); Console.WriteLine(productOptions[COLOR, 2]); Console.WriteLine(productOptions[SHAPE, 0]); Console.WriteLine(productOptions[WIDTH, 1]); } } }
  1. Moniulotteisen taulukon määrittelyssä lisätään pilkkuja hakasulkeiden ([]) sisään taulukon ulottuvuuksien mukaan. Esimerkiksi kolmiulotteinen kokonaislukutaulukko määritellään näin: int[,,] arrayName = { ... };.
  2. Indeksoinnissa voidaan käyttää muuttujia tai vakioarvoja. Esimerkiksi jos meillä on taulukko int[] exampleArray = { 1, 2, 3, 4, 5 }; ja vakio const int someIndex = 2, on sallittua kirjoittaa exampleArray[someIndex] viitatakseen taulukon arvoon 3.
main.cs

main.cs

copy
123456789101112131415161718192021222324252627
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { const int COLOR = 0; const int SHAPE = 1; const int WIDTH = 2; const int DESIGN = 3; // Create the array below string[,] productOptions = { { "Red", "Green", "White" }, { "Square", "Rectangle", "Sphere" }, { "Thick", "Medium", "Thin" }, { "Printed", "Crafted", "None" } }; // Reference the relevant element in the WriteLine statement Console.WriteLine(productOptions[DESIGN, 1]); Console.WriteLine(productOptions[COLOR, 2]); Console.WriteLine(productOptions[SHAPE, 0]); Console.WriteLine(productOptions[WIDTH, 1]); } } }

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 1.59

bookHaaste: Moniulotteiset Taulukot

Pyyhkäise näyttääksesi valikon

Moniulotteisten taulukoiden indeksointia varten on joskus hyödyllistä määritellä vakiot. Seuraavassa on taulukko edellisen luvun kyselystä:

main.cs

main.cs

copy
1234567
const int FRUITS = 0; const int VEGETABLES = 1; string[,] foods = { { "Apple", "Apricot", "Banana", "Grapes", "Lime" }, // fruits { "Tomato", "Cabbage", "Carrot", "Pumpkin", "Broccoli" }, // vegetables };

Olemme luoneet kaksi vakiota, FRUITS ja VEGETABLES, joiden arvot ovat 0 ja 1. Ne edustavat rivejä 0 (hedelmät) ja 1 (vihannekset) taulukossa foods.

Jos haluamme hakea vihannesten joukosta alkion "Cabbage", voimme yksinkertaisesti kirjoittaa:

main.cs

main.cs

copy
1
foods[VEGETABLES][1];

Tämä niksi ei välttämättä ole kovin hyödyllinen pienemmissä taulukoissa, kuten tässä esimerkissä, mutta kun käsitellään monimutkaisempia taulukoita, vakioiden käyttö voi helpottaa helppoa alkioiden hakua taulukosta, jolloin meidän ei tarvitse muistaa mikä rivi sisältää mitkäkin alkiot – erityisesti jos olemme luokitelleet alkiot riveihin.

Nyt haasteena on luoda 2-ulotteinen taulukko tyyppiä string nimellä productOptions, jonka koko on 4x3 (4 riviä, 3 saraketta). Alusta se seuraavilla tiedoilla:

  • Rivi 1: "Red", "Green", "White";
  • Rivi 2: "Square", "Rectangle", "Sphere";
  • Rivi 3: "Thick", "Medium", "Thin";
  • Rivi 4: "Printed", "Crafted", "None".

Hae "Crafted"-alkio indeksoimalla ja tulosta se. Käytä siihen sopivaa vakiomuuttujaa.

main.cs

main.cs

copy
123456789101112131415161718192021222324
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { const int COLOR = 0; const int SHAPE = 1; const int WIDTH = 2; const int DESIGN = 3; // Create the array below _______ = { _______ }; // Reference the relevant element in the WriteLine statement Console.WriteLine(productOptions[DESIGN, 1]); Console.WriteLine(productOptions[COLOR, 2]); Console.WriteLine(productOptions[SHAPE, 0]); Console.WriteLine(productOptions[WIDTH, 1]); } } }
  1. Moniulotteisen taulukon määrittelyssä lisätään pilkkuja hakasulkeiden ([]) sisään taulukon ulottuvuuksien mukaan. Esimerkiksi kolmiulotteinen kokonaislukutaulukko määritellään näin: int[,,] arrayName = { ... };.
  2. Indeksoinnissa voidaan käyttää muuttujia tai vakioarvoja. Esimerkiksi jos meillä on taulukko int[] exampleArray = { 1, 2, 3, 4, 5 }; ja vakio const int someIndex = 2, on sallittua kirjoittaa exampleArray[someIndex] viitatakseen taulukon arvoon 3.
main.cs

main.cs

copy
123456789101112131415161718192021222324252627
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { const int COLOR = 0; const int SHAPE = 1; const int WIDTH = 2; const int DESIGN = 3; // Create the array below string[,] productOptions = { { "Red", "Green", "White" }, { "Square", "Rectangle", "Sphere" }, { "Thick", "Medium", "Thin" }, { "Printed", "Crafted", "None" } }; // Reference the relevant element in the WriteLine statement Console.WriteLine(productOptions[DESIGN, 1]); Console.WriteLine(productOptions[COLOR, 2]); Console.WriteLine(productOptions[SHAPE, 0]); Console.WriteLine(productOptions[WIDTH, 1]); } } }

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 6
some-alt