Diskuze: Pole - pracovní list
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Dobrý den, zde posílám vypracovanou verzi. Nechť se dačí v prozkoumávání dalších zákoutí programování.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TP06
{
internal class Program
{
static void Main(string[] args)
{
int[] pole = new int[10];
// a) Naplnění pole náhodnými čísly
naplnPole(pole);
// b) Výpis pole
Console.WriteLine("Pole:");
vypisPole(pole);
// c) Počet lichých prvků v poli -> int
Console.WriteLine($"Počet lichých prvků: {pocetLichych(pole)}");
// d) Upravené pole (vynulování lichých prvků) -> int[]
upravenePole(pole);
Console.WriteLine("Upravené pole (liché prvky jsou vynulovány):");
vypisPole(pole);
// e) Naplnění pole náhodnými různými čísly -> int[]
naplnRuznymi(pole);
Console.WriteLine("Pole s náhodnými různými čísly:");
vypisPole(pole);
// f) Kontrola, zda je pole setříděné sestupně
Console.WriteLine($"Je pole setříděné sestupně? {jeSestupne(pole)}");
Console.ReadKey();
}
static void naplnPole(int[] pole)
{
Random rand = new Random();
for (int i = 0; i < pole.Length; i++)
{
pole[i] = rand.Next(0, 100);
}
}
static void vypisPole(int[] pole)
{
foreach (var i in pole)
{
Console.Write($"{i} ");
}
Console.WriteLine();
}
static int pocetLichych(int[] pole)
{
int pocl = 0;
foreach (int cislo in pole)
{
if (cislo % 2 != 0)
{
pocl++;
}
}
return pocl;
}
static void upravenePole(int[] pole)
{
for (int i = 0; i < pole.Length; i++)
{
if (i % 2 != 0)
{
pole[i] = 0;
}
}
}
static void naplnRuznymi(int[] pole)
{
Random rand = new Random();
for (int i = 0; i < pole.Length; i++)
{
pole[i] = rand.Next(0, 20);
}
}
static bool jeSestupne(int[] pole)
{
for (int i = 1; i < pole.Length; i++)
{
if (pole[i] > pole[i - 1])
{
return false;
}
}
return true;
}
}
}
Bod e) naplnRuznymi, postrádá podmínku unikátního čísla.. tak mu to tam ještě doplň.
Zapomněl jsem na něj, zde je správný blok kódu
static void naplnRuznymi(int[] pole)
{
int n = 21;
Random rand = new Random();
bool[] pouzitaCisla = new bool[n];
for (int i = 0; i < pole.Length; i++)
{
int nahodneCislo;
do
{
nahodneCislo = rand.Next(0, n);
} while (pouzitaCisla[nahodneCislo]);
pole[i] = nahodneCislo;
pouzitaCisla[nahodneCislo] = true;
}
}
Proč rozsah randomu nepřevezmeš jako parametr funkce? Tím zajistiš, že funkce bude obecná a znovupoužitelná.
Zobrazeno 5 zpráv z 5.