8
PROGRAMSKI PREVODIOCI 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM NAPOMENA: Za pripremu kolokvijuma pogledati kompletnu listu grešaka i upozorenja za C# programski jezik koje prijavljuje Visual Studio NET: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/ ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog i semantičkog tipa, objektno-orjentisana desktop aplikacija uz primenu biblioteka klasa. Realizovati analizu izgleda programskog koda (posebnim bojama podvučen tekst), kao i pokretanje debuggera (po potrebi korišćenje break point) radi detektovanja grešaka. Korigovati greške. Napisati izveštaj: greška(deo koda), tip greške, poruka debuggera, objašnjenje greške, popravka greške. Testirati rad programa. Dodati 2 PrintScreena: 1) ekrana razvojnog okruženja sa programskim kodom, nakon pokretanja debuggera sa njegovim porukama o greskama 2) ekrana razvojnog okruženja sa programskim kodom, nakon pokretanja debuggera i popravke greške, sa porukom o uspešnom build-u. REŠENJE: Nakon otvaranja projekta, a pre pokretanja debuggera (Build->Build solution), mogu se videti CRVENO, PLAVO I ZELENO podvučeni delovi. Kada se stane mišem iznad, razvojno okruženje daje objašnjenje moguće greške. Napomene: CRVENO obično su to leksičke i sintaksne greške PLAVO obično semantičke greške ZELENO promenljive koje su definisane ili deklarisane, ali kasnije nisu korišćene

NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog

PROGRAMSKI PREVODIOCI – 9. ČAS

ŠK 2019-20 DOC. DR LJUBICA KAZI

VEŢBA ZA KOLOKVIJUM

NAPOMENA: Za pripremu kolokvijuma pogledati kompletnu listu grešaka i upozorenja za C# programski jezik koje

prijavljuje Visual Studio NET: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/

ZADATAK:

Dat je programski kod sa greškama leksičkog, sintaksnog i semantičkog tipa, objektno-orjentisana desktop

aplikacija uz primenu biblioteka klasa.

Realizovati analizu izgleda programskog koda (posebnim bojama podvučen tekst), kao i pokretanje debuggera (po potrebi korišćenje break point) radi detektovanja grešaka.

Korigovati greške. Napisati izveštaj: greška(deo koda), tip greške, poruka debuggera, objašnjenje greške, popravka greške.

Testirati rad programa. Dodati 2 PrintScreena: 1) ekrana razvojnog okruženja sa programskim kodom, nakon pokretanja debuggera sa njegovim porukama o greskama 2) ekrana razvojnog okruženja sa

programskim kodom, nakon pokretanja debuggera i popravke greške, sa porukom o uspešnom build-u.

REŠENJE:

Nakon otvaranja projekta, a pre pokretanja debuggera (Build->Build solution), mogu se videti CRVENO, PLAVO I ZELENO podvučeni delovi. Kada se stane mišem iznad, razvojno okruženje daje objašnjenje moguće

greške.

Napomene:

CRVENO – obično su to leksičke i sintaksne greške

PLAVO – obično semantičke greške ZELENO – promenljive koje su definisane ili deklarisane, ali kasnije nisu korišćene

Page 2: NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog

U nastavku će biti uključene jedna po jedna greška i odmah popravljene.

IZVEŠTAJ:

Deo koda sa greškom

Tip greške (leksička,

sintaksna,

semantička)

Poruka debuggera Objašenjenje Popravka greške

txtKorisnikIme.Txt Leksička System.Windows.Forms.TextBox

does not contain definition for

Txt …

Ne postoji

osobina Txt

txtKorisnikIme.Text

Nakon pokretanja debuggera:

Nakon popravke – Build Succeeded:

Page 3: NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog

Deo koda sa greškom Tip greške

(leksička, sintaksna,

semantička

)

Poruka

debuggera

Objašnjenj

e

Popravka greške

if (txbKorisnikIme.Text.Equals("")) { MessageBox.Show("Niste uneli ime korisnika!"); txbKorisnikIme.Focus(); return;

Sintaksna }

expected

Nije

zatvorena

vitičasta zagrada

if (txbKorisnikIme.Text.Equals("")) { MessageBox.Show("Niste uneli ime korisnika!"); txbKorisnikIme.Focus(); return;

}

Nakon pokretanja debuggera:

Page 4: NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog

Nakon popravke – Build succeeded:

Deo koda sa

greškom

Tip greške

(leksička, sintaksna,

semantička)

Poruka

debuggera

Objašenjenje Popravka greške

//private clsSqlKonekcija objSqlKonekcija;

Semanticka The name 'objSqlKonekcija'

does not exist in the current

context

objSqlKonekcija je

postavljeno u komentar,

a kasnije se koristi u

kodu.

private clsSqlKonekcija objSqlKonekcija;

Nakon pokretanje debuggera:

Greška je obeležena i na mestu korišćenja te promenljive- plavo podvučeno, a kada se stane mišem iznad dobija se isti tekst poruke o grešci:

Page 5: NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog

Napomena: Tekst greške koju prijavljuje kompajler se može kopirati:

Nakon popravke – Build succeeded

Page 6: NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog

NAPOMENA: U zadatku će biti dato više grešaka različitog tipa. Pokrenuti debugger i popraviti jednu po jednu

grešku.

U ovom slučaju postoji 3 greške u isto vreme i ovo je početni izveštaj debuggera:

Napomena:

Korisno je uključiti da se vide brojevi linija u text editoru (Tools, Options, Text Editor, All Languages, General, Display - Line numbers).

Napomena: Dupli klik na gresku u Error listi moze da dovede do mesta greske, ali nekad i na pogresno mesto, kao u

ovom slucaju, na kraj bloka:

Page 7: NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog

Kad se popravila jedna greska koju je prijavio, pojavile su se preostale:

U ovom slucaju dupli klik na gresku vodi direktno do mesta gde treba popraviti:

Page 8: NAPOMENA: ZADATAK · PROGRAMSKI PREVODIOCI – 9. ČAS ŠK 2019-20 DOC. DR LJUBICA KAZI VEŢBA ZA KOLOKVIJUM ... ZADATAK: Dat je programski kod sa greškama leksičkog, sintaksnog