Programování 2 pro informatiky, C# 2. Cvičení - Exercise 27.02.2024 1.1 Model View Architektura - opakovani 1.2 C# a ReCodex (Adam) verze C#pu 1.4 Ukázkový kód 1.6. Create Hello world code in Visual Studio 1.8 Create a init int var i to value 7 and print to console; 1.10 Change var i to value 8 and print to console 1.12 Print i,j var on console - co se stane kdyz pristoupim (print) k neinicializovane hodnote - int over flow; no exception? 1.14 How long is long int in Python vs C#? 1.20.1 Přetečení intu Do intu i (32b) uložte nadpolovicni hodnotu jeho maximální hodnoty a vystikněte 1.20.2 Přetečení intu Hodnotu ulozeneho intu i dvakrat zvetesete a vystikněte 1.22 Basic types of variables - programiz 1.24 Arrays - 1D: declare, create, init, access; iterate array for and foreach loop; outOfBoundaries exception https://www.programiz.com/csharp-programming/arrays 2. (5P 1.1 Součet dvou čísel) (CZ) Napište program, který ze vstupu přečte dvě celá čísla a vypíše jejich součet. Můžete předpokládat, že se vejdou do typu integer a stejně tak i jejich součet. Před i za i mezi čísly může být libovolný počet bílých znaků (mezery, tabulátory, konce řádek). 3. (recodex) (PPPPP 5.1 Vypsání pole v opačném pořadí) (CZ) Na vstupu dostanete posloupnost celých čísel ukončenou číslem -1, které nepatří do seznamu. Vypište je v opačném pořadí oddělená mezerou. Čísel nebude více než 1000. Čísla na vstupu jsou oddělená mezerami a nebo konci řádek, tedy vstup může obsahovat více řádek a řádka může obsahovat více čísel. Pozor, i za hodnotou -1 mohou být další čísla, ale ta už pro náš program nejsou zajímavá. 4. Functions 4.2 Ex: write function that count average value of given array * static vs new class * explicit retype from int division to flout - different results 4.6 Array - 2D: declare, create, init, access; iterate array for and foreach loop 5.2 Write the function reshape that: - reshape 1D array to 2D array - reads int 1D array and int k value, and reshape 1D array to 2D array with k colomns (assume: 1D array length is l=n*k; that means l is dividable by the k) * int[ , ] reshape(int[] arr, int k) * 1D arr -> 2D resp. int[] -> int[,] * example: k=3; arr = {1,2,3,4,5,6} reshape to the 2D array arr2D = {{1,2,3},{4,5,6}} 5.3 reshapeJagged(int[] arr, int[] rowsLenght) - modification of neshape function that create jugged array given lengths (value k is replaced with array of lengths of rows) (assume: rowLength_1 + rowLength_2 + rowLength_3 = arr.Length) 6.0 Matice Načtete dva celočiselné kladné parametry m a n, m udává počet řádků, n udává počet sloupců Vytvořte si int matici typu m x n (2D pole) Jednotlivé hodnoty matice incializujte na hodnoty [A]ij = i + 2*j 6.1 Loupaní matice - v implementaci použijte for/while cykly Matici z předchozího příkladu "oloupejte" a výsledné hodnoty vypište. Loupnání začněte v pravém horním rohu a pokračujte ve směru hodinových ručiček Příklad vstupu m = 3 n = 4 [A]ij = i + j Výslená matice: 2 3 4 5 3 4 5 6 4 5 6 7 Jak vypadá její tisk? Výstup "oloupané" matice: 5 6 7 6 5 4 3 2 3 4 5 4 6.2 Loupaní matice - Napište funkci vracející výstupní pole "oloupané" matice, nikoliv jeho tisk 6.0 Loupaní matice - v implementaci použijte rekurzi (předávání odkazu hodnotou (default) vs referencí (ref) vs výstupem (out))