9
LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa strukturom NET Core aplikacja. Korišćenje naredbi grananja i petlji za rad sa vi e-dimenzionalnim nizovima. Upoznati se sa načinima za učitavanje promenljivih sa komandne linije i tastature. Tabeliranje vrednosti funkcija. Ispravljanje gre aka u toku razvoja aplikacija. Zadatak 1: Konzolna .NET Core aplikacija Pokrenite VS (2019) i aktivirajte opciju „Create new project“. Izaberite „Console App (.NET Core)“ i kreirajte novi projekt pod imenom Vezba_2_CORE kao to je prikazano na slici 2-1. Slika 2-1. Kreiranje novog projekta u MS Visual Studio (2019) - izbor konzolne aplikacije u .NET Core-u

LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika

Cilj vežbe: Upoznavanje sa strukturom NET Core aplikacja. Korišćenje naredbi grananja i petlji za rad sa više­dimenzionalnim nizovima. Upoznati se sa načinima za učitavanje promenljivih sa komandne linije i tastature. Tabeliranje vrednosti funkcija. Ispravljanje grešaka u toku razvoja aplikacija.

Zadatak 1: Konzolna .NET Core aplikacija Pokrenite VS (2019) i aktivirajte opciju „Create new project“. Izaberite „Console App (.NET

Core)“ i kreirajte novi projekt pod imenom Vezba_2_CORE kao što je prikazano na slici 2­1.

Slika 2-1. Kreiranje novog projekta u MS Visual Studio (2019) - izbor konzolne aplikacije u .NET Core-u

Page 2: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

Slika 2-2. Izgled kreirane konzolne NET Core aplikacije

Opisati strukturu .NET Core projekta iz prozora „Solution explorer“ sa svim otvorenim folderima. Opisati ulogu i značaj svakog foldera iz ovog prozora. Dependencies: SDK: Program.cs: Startujete izvršavanje aplikacije. Ispišite sadržaj poruke iz „Debug“ prozora.

__________________________________________________________________________________________________________ __________________________________________________________________________________________________________

Page 3: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

Zadatak 2: Praćenje izvršavanja programa – prekidne tačke u VS­u Izmenom izvornog koda sa slike 2­1 formirati niz od pet elemenata double tipa i kreirati

šesti element niza sabiranjem svih prehodnih pet elemenata. Slika programskog koda je data na slici 2­3. Napomena: U programskom kodu na slici 2­3 je načinjena „namerna“ greška kako bi se pokazala primena alata za izvršavanje korak po korak i postavljanje tačaka prekida (engl. Break points).

Slika 2-3. Izvorni programski kod konzolne NET Core aplikacije

Startujte izvršenje programa i popunite zahtevane podatke.

Jasno je da je šesti element niza ima nekorektnu vrednost 26, a trebalo bi da je njegova

vrednost 15.15! Izvor greške se može jednostavno otkriti korišćenjem tačaka prekida u izvršavanju programa. Tačke prekida omogućavaju označavanje linije u izvornom kodu u kojoj želimo da se privremeno prekine izvršavanje programa. Istovremeno se u prozoru „Locals“ može izabrati prikaz trenutnih vrednosti promenljivih. U ovom slučaju to je niz a. Postavljanje prekidne tačke i vrednosti selektovanih promenljivih je prikazan na slikama 2­4 2­5. Postavite tri prekidne tačke (klikom na krajnje levu poziciju u edit prozoru ili na F9) kao na slici 2­4 i startujte izvršenje programa. Popunite zahtevane podatke.

Ispisati sadržaj ekrana po izvršenju programa:

Page 4: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

Slika 2-4. Prikaz postavljenih tačaka prekida, prozor „Breakpoints“

Slika 2-5. Prikaz prozora „Locals“ sa tekućim vrednostima niza a na prekidnoj tačci 2

Page 5: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

Pažljivo pogledajte 22. liniju koda gde se vrši izračunavanje šestog ečementa niza a.

Korigujte aritmetički izraz koji odgovara uslovima Zadatka 2.

Zadatak 3: Dodavanje metode za izračunavanje vrednosti elementa Dodati metodu Add() za izračunavanje vrednosti šestog elementa i pozvati je na izvršenje.

Korišćenjem prekidnih tačaka u i izvan metode pratite dodeljivanje vrednosti promenljivama. Sckicirati sve opcije koje stoje na raspolaganju za praćenje izvršenja složenih programa.

Uporedite izvorni kod aplikacije koja je kreirana u .NET Core­u i .NET Framework­u. U čemu je osnovna razlika?

__________________________________________________________________________________________________________ __________________________________________________________________________________________________________ Sa kojim indeksom počinje indeksiranje nizova u C#­u? Napisati naredbu kojom se štampa vrednost trećeg elementa u nizu a?

__________________________________________________________________________________________________________ __________________________________________________________________________________________________________ Napisati naredbu kojom se definiše broj elemenata niza a?

__________________________________________________________________________________________________________

Zadatak 4: Prenos parametara metodi Main() Uneti izvorni kod za obrtanje redosleda elemenata zadatog niza realnih brojeva od n

elemenata. Dimenziju niza n učitati preko argumenta funkcije Main(). Da bi se preneli parametri metodi Main() – broj n, sledite sledeća uputstva sa slike 2­6.

Ispisati sadržaj ekrana posle treće tačke prekida:

Dodatna dugmmad u VS-u za praćenje izvršavanja:

Page 6: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

a b

Slika 2-6. Postavljanje parametra aplikacije – podrazumevanni niz stringova args using System; namespace Vezba_2_Core_Z4 { class Program { static void Main(string[] args) { int n = int.Parse(args[0]); double[] a = new double[n]; for (int i = 0; i < a.Length; i++) { a[i] = i; //formiranje niza } //stampanje niza Console.WriteLine("Originalni niz:"); foreach (int i in a) { Console.Write("a[" + i + "]="); Console.WriteLine(a[i]); } //zamena mesta elemenata niza for (int i = 0; i < a.Length; i++) { if (i < a.Length / 2) { int j = a.Length - 1 - i; double b = a[i]; a[i] = a[j]; a[j] = b;

Page 7: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

} } Console.WriteLine("Modifikovani niz:"); for (int i = 0; i < a.Length; i++) { Console.Write("a[" + i + "]="); Console.WriteLine(a[i]); } } }

Slika 2-7. Izvorni kod za Zadatak 4

Alternativno, stratovanje programa sa parametrima se može obaviti i na sledeći način: po kompliranju koda, komandom “windows taster + R” pokrenuti „run“prozor. Zatim u „run“ prozoru otkucati “cmd” i pokrenuti konzolu. Jedan od načina za pokretanje konzole je klikom na ikonu „command prompt“, koja se nalazi u meniju: start/programs/accessories/command prompt. Zatim se pozicionirati u „debug“ folder projekta i program prokrenuti komandom: “Vezba_2_Core_Z4 15“ gde 15 predstavlja vrednost za n, odnosno broj članova niza.

Teorijska pitanja Koje promenljive su deklarisane u prethodnom kodu?

__________________________________________________________________________________________________________

__________________________________________________________________________________________________________

Napisati sadržaj ekrana po izvršenju programa:

Page 8: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

Objasniti naredbu: a.Length;

__________________________________________________________________________________________________________

__________________________________________________________________________________________________________ Zašto je u kodu neophodna promenljiva b?

__________________________________________________________________________________________________________

__________________________________________________________________________________________________________ Na koji način se prosleđuju argumenti funkciji main()? U čemu je razlika između poziva programa sa „Vezba_2_Core_Z4 15“ i sa „Vezba_2_Core_Z4 15“?

__________________________________________________________________________________________________________

__________________________________________________________________________________________________________ Objasniti naredbu: foreach (int i in a)

__________________________________________________________________________________________________________

__________________________________________________________________________________________________________

Zadatak 5: Kreiranje 2D jedinične matrice Kreirajte jediničnu matricu elemenata double tipa, dimenzija n x n. Dimenzije matrice učitati sa tastature naredbom ReadLine(), koja je članica klase Console i imenskog prostora System. Izvorni kod je dat na slici 2­8.

Slika 2-8. Izvorni kod za Zadatak 5

Page 9: LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika · 2020. 10. 11. · LABORATORIJSKA VEŽBA 2: .NET Core aplikacija i osnove C# jezika Cilj vežbe: Upoznavanje sa

Kojom linijom koda se vrši formiranje matrice n x n?

__________________________________________________________________________________________________________ Šta se dešava prilikom izvršenja naredbe int n = int.Parse(System.Console.ReadLine());?

__________________________________________________________________________________________________________

__________________________________________________________________________________________________________

Zadaci za samostalan rad Napisati C# program koji vrši transponovanje kvadratne matrice A celih brojeva,

dimenzije n x n. Dimenzije matrice učitati sa tastature naredbom ReadLine(). Transponovana matrica je matrica kod koje su zamenjene vrste i kolone. NAPOMENA: Jedan od načina da se realizuje transponovana matrica je zamena mesta elemenata koji se ne nalaze na glavnoj dijagonali matrice. Napisati izvorni kod programa u označenom mestu. Takođe, prikažite izgled ekrana po izvršenju programa kada je matrica dimenzija 3x3. Elementi matrice su celi brojevi počev od 10 u opadajućem nizu.

U Nišu POTVRĐUJE