Diskuze: Polia zoradenie,porovnanie
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
obávám se, že si budeš muset napsat vlastní algoritmus.
podívej se sem, najdeš tam inspiraci: http://stackoverflow.com/…l-array-in-c
1. Spoj to do jednoho pole, seřaď a znovu ulož do 2d pole
Pokud bys chtěl seřadit všechny prvky v tom poli A, tak bys musel udělat
něco na způsob toho, co psal Posix. Pokud bys chtěl ale seřadit hodnoty v
jednotlivých řádcích, tak jedna z možností je načítat jednotlivé
řádky, které postupně budeš řadit a ukládat do nového dvourozměrného
pole, a potom ho vrátíš.
Něco jako toto:
//poleA.Sort(out poleA);
public static void Sort(this int[,] data, out int[,] output)
{
int xLength = data.GetLength(0);
int yLength = data.GetLength(1);
int[,] twoDimension = new int[xLength, yLength];
for (int x = 0; x < xLength; x++)
{
int[] array = new int[yLength];
for (int y = 0; y < yLength; y++)
{
array[y] = data[x, y];
}
Array.Sort(array);
for (int y = 0; y < yLength; y++)
{
twoDimension[x, y] = array[y];
}
}
output = twoDimension;
}
U sloupců by sis musel udělat vlastní funkci (tady nemáš Array.Sort), která ti bude porovnávat hodnoty na stejné pozici x, akorát si musíš uvědomit, které hodnoty ve kterém řádku můžeš porovnávat, abys pak náhodou neprohodil { 2, 3, 4 } a {3, 2, 4} jen na základě toho, že ve druhém řádku (poli) je na 2. pozici X - 2 a v prvním 3.
Ještě k tomu, co jsem psal. Vlastně si ani nemusíš to nové dvourozměrné pole vytvářet, jen bys přepsal ty hodnoty v původním poli.
1. No ja som vytvoril niečo takéto ;D, potreboval som aby sa každý riadok (v ktorom je 5 čísiel) zoradil zvlášť , Antonin ten cod co si poslal je ešte na mňa moc,ale zajtra ho preskúmam , Ďakujem za riešenia
int[] pole1 = new int[5];
int[,] pole2 = new int[2,5];
// Zoradovanie
for (int a = 0; a != 2; a++)
{
for (int b = 0; b != 5; b++)
{
pole1[w] = generacnePole[a, b];
w++;
z++;
if (z == 5)
{
Array.Sort(pole1);
w = 0;
for (int x = 0; x != 1; x++)
{
for (int y = 0; y != 5; y++)
{
pole2[x, y] = pole1[w];
w++;
}
}
w = 0;
}
if (z == 10)
{
Array.Sort(pole1);
w = 0;
for (int x = 1; x != 2; x++)
{
for (int y = 0; y != 5; y++)
{
pole2[x, y] = pole1[w];
w++;
}
}
z = 0;
w = 0;
}
}
}
w = 0;
generacnePole = pole2;
Tady jsem ti to popsal:
public static void Sort(this int[,] data, out int[,] output)
{
//i značí číslo řádku
//a značí číslo položky v řádku
int iLength = data.GetLength(0); //Zde získáš délku pole (počet řádku) pomocí metody GetLength(0) s parametrem 0, který označuje 1. pole. Pokud máš tedy int[3,5], tak dostaneš 3 (řádky)
int aLength = data.GetLength(1); //1 označuje 2. pole (počet položek v řádku)
for (int i = 0; i < iLength; i++) //Zde procházíš 1. pole (řádky)
{
int[] array = new int[aLength]; //Vytvoření pole, jehož délka je rovna počtu položek v řádku
for (int a = 0; a < aLength; a++) //Zde procházíš každou položku v tom řádku
{
array[a] = data[i, a]; //Zde si na danou pozici v poli array nastavíš hodnotu z řádku, která je na stejné pozici
}
Array.Sort(array); //Zde máš metodu na seřazení hodnot
for (int a = 0; a < aLength; a++) //Po seřazení znovu projedeš řádek a na dané pozice dvourozměrného pole zapíšeš nové hodnoty
{
data[i, a] = array[a];
}
}
output = data; //Zde vracíš upravené pole
}
Proč používáš v parametrech zbytečně out a komplikuješ to když je
začátečník. Měl jsi použít metodu s návratovým typem int[,] místo
prázdného.
public static int[,] Sort(int[,] data)
{
//Tvůj kód
int iLength = data.GetLength(0); //Zde získáš délku pole (počet řádku)
pomocí metody GetLength(0) s parametrem 0, který označuje 1. pole. Pokud
máš tedy int[3,5], tak dostaneš 3 (řádky)
int aLength = data.GetLength(1); //1 označuje 2. pole (počet položek v
řádku)
for (int i = 0; i < iLength; i++) //Zde procházíš 1. pole (řádky)
{
int[] array = new int[aLength]; //Vytvoření pole, jehož délka je rovna
počtu položek v řádku
for (int a = 0; a < aLength; a++) //Zde procházíš každou položku v tom
řádku
{
array[a] = data[i, a]; //Zde si na danou pozici v poli array nastavíš hodnotu
z řádku, která je na stejné pozici
}
Array.Sort(array); //Zde máš metodu na seřazení hodnot
for (int a = 0; a < aLength; a++) //Po seřazení znovu projedeš řádek a
na dané pozice dvourozměrného pole zapíšeš nové hodnoty
{
data[i, a] = array[a];
}
}
return data;
}
Tak to porovnávanie som nakoniec doriešil predsa len cez for cyklus,, ale
ak by mal niekto lepšie riešenie nech napíše 
public void Porovnanie()
{
int number = 0;
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 2; y++)
{
if (generacnePole[x, y] == zasobnik[x, y])
{
number++;
}
}
}
if (number == 10)
{
Console.WriteLine("zhoda");
rovnost = false;
}
}
Zobrazeno 10 zpráv z 10.
