9
PRIMERI ZADATAKA ZA KOLOKVIJUM NA PAPIRU 1. TIP ZADATKA (4 poena) Dat je izgled korisničkog interfejsa i programski kod. Detektovati delove koda sa greškama (1), odrediti vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1). 2. TIP ZADATKA (3 poena) - Dat je izgled korisničkog interfejsa i programski kod. Dat je kompletan Error list sa spiskom detektovanih grešaka od strane kompajlera. Odrediti vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1). 3. TIP ZADATKA (3 poena) - Dat je ispravan segment koda. Napraviti namerne greške tako da bude jedna leksička (1), jedna sintaksna (1) i jedna semantička (1) greška. Napisati segment koda koji uključuje te greške. 4. TIP ZADATKA (4 poena) Dat je segment programskog koda sa greškama. Odrediti deo segmenta sa greškom (1), vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1). 5. TIP ZADATKA Dat je segment programskog koda sa konkretnom jednom vrstom greške (leksička, sintaksna, semantička, run-time) koja je navedena. Detektovati delove koda sa greškama (1), objasniti problem (1) i ispraviti greške (1).

PRIMERI ZADATAKA ZA KOLOKVIJUM NA PAPIRU KOMPLETNIH...PRIMERI ZADATAKA ZA KOLOKVIJUM NA PAPIRU 1. TIP ZADATKA (4 poena) – Dat je izgled korisničkog interfejsa i programski kod

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

  • PRIMERI ZADATAKA ZA KOLOKVIJUM NA PAPIRU

    1. TIP ZADATKA (4 poena) – Dat je izgled korisničkog interfejsa i programski kod. Detektovati delove koda sa greškama (1), odrediti vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1).

    2. TIP ZADATKA (3 poena) - Dat je izgled korisničkog interfejsa i programski kod. Dat je kompletan Error list sa spiskom detektovanih grešaka od strane kompajlera. Odrediti vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1). 3. TIP ZADATKA

    (3 poena) - Dat je ispravan segment koda. Napraviti namerne greške tako da bude jedna leksička (1), jedna sintaksna (1) i jedna semantička (1) greška. Napisati segment koda koji uključuje te greške. 4. TIP ZADATKA

    (4 poena) – Dat je segment programskog koda sa greškama. Odrediti deo segmenta sa greškom (1), vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1).

    5. TIP ZADATKA Dat je segment programskog koda sa konkretnom jednom vrstom greške (leksička, sintaksna, semantička, run-time) koja je navedena. Detektovati delove koda sa greškama (1), objasniti problem (1) i ispraviti greške (1).

  • 1. TIP ZADATKA (4 poena) – Dat je izgled korisničkog interfejsa i programski kod. Detektovati delove koda sa greškama (1), odrediti vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1).

    (Primer aplikacije: DesktopNa3Nacina – stranica za rad sa SQLDBUtils)

    KOD SA GREŠKAMA

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; // using System.Data; using SqlDBUtils; namespace KorisnickiInterfejs { public partial class frmSaSopstvenomBibliotekomDBUtils : Form { // ------------ ATRIBUTI // ################################################# private DataTable podaciTabelarni; // ------------ METODE // ################################################# // -----------------NASE PROCEDURE private void IsprazniKontrole() { txtOznaka.Text = 0; txtNaziv.Text = ""; } private void AktivirajKontrole()

  • { txtOznaka.Enabled = not true; txtNaziv.Enabled = true; } private void DeaktivirajKontrole() { txtOznaka.Enabled = false; txtNaziv.Enabled = false; } private int SnimiPodatke() { int brojslogova = 0; // preuzimanje iz korisnickog interfejsa // radi preglednosti koda postavljamo promenljive string Oznaka = txtOznaka.Text; string Naziv = txtNaziv.Text; string UkupnoMesta = "0"; clsSqlKonekcija objKonekcija = new clsSqlKonekcija(Parametri.stringKonekcije); objKonekcija.OtvoriKonekciju(); clsSqlTabela objTabela = new clsSqlTabela(objKonekcija, "Drzava"); string SQLNaredba = "Insert into Drzava (Oznaka, Naziv, UkupnoMesta) Values ('" + Oznaka + "', '" + Naziv + "'," + UkupnoMesta + ")"; bool uspeh = objTabela.IzvrsiAzuriranje(SQLNaredba); if (uspeh) { brojslogova = ""; } else { brojslogova = Ž; } objKonekcija.ZatvoriKonekciju(); return brojslogova; } private DataTable UcitajSve() { DataTable TabelaPodataka = new DataTable(); clsSqlKonekcija objKonekcija = new clsSqlKonekcija(Parametri.stringKonekcije); objKonekcija.OtvoriKonekciju(); clsSqlTabela objTabela = new clsSqlTabela(objKonekcija, "Drzava"); string SQLNaredba = "select * from Drzava"; DataSet dsPodaci = objTabela.DajPodatke(SQLNaredba); TabelaPodataka = dsPodaci.Tables[0]; objKonekcija.ZatvoriKonekciju(); return TabelaPodataka; } private DataTable UcitajFiltrirano(string Filter) { DataTable TabelaPodataka = new DataTable(); clsSqlKonekcija objKonekcija = new clsSqlKonekcija(Parametri.stringKonekcije); objKonekcija.OtvoriKonekciju(); clsSqlTabela objTabela = new clsSqlTabela(objKonekcija, "Drzava");

  • string SQLNaredba = "select ! frm Drzav where Oznake='" + Filter + "'"; DataSet dsPodaci = objTabela.DajPodatke(SQLNaredba); TabelaPodataka = dsPodaci.Tables[0]; objKonekcija.ZatvoriKonekciju(); return TabelaPodataka; } private void PrikaziTabeluPodataka(DataTable TabelaPodataka) { dgvSpisakDrzava.DataSource = TabelaPodataka; dgvSpisakDrzava.Refesh(); } private void SnimiXML(DataTable podaci, string putanja) { DataSet dsPodaciEksport = new DataSet1(); // s obzirom da smo dobili kroz parametar poziva ove procedure "podaci" // zapravo samo promenljivu koja sadrzi memorijsku lokaciju, pokazivac // ka podacima, javlja se problem kada ovaj isti DataTable "podaci" // vezemo sa drugim datasetom "dsPodaciExport" jer je taj DataTable // vec povezan sa dsPodaci u okviru procedure UcitajSve i UcitajTabelarno. // Zato moramo da radimo Copy, da kopiramo strukturu i podatke u NOVI DataTable. DataTable podaciZaEksport = new DataTable(); podaciZaEksport = podaci.Copy(); dsPodaciEksport.Tables.Add(podaciZaEksport); dsPodaciEksport.WriteXml(putanja); } // KONSTRUKTOR public frmSaSopstvenomBibliotekomDBUtils() { InitializeComponent(); } // DOGADJAJI private void btnUnos_Click(object sender, EventArgs e) { IsprazniKontrole(); AktivirajKontrole; txtOznaka.Focus(); } private void btnSnimi_Click(object sender, EventArgs e) { string poruka = ""; int ukupnoSnimljeno = SnimiPodatke(); if (ukupnoSnimljeno > poruka) { poruka = "Uspesno snimljeno!"; } else { poruka = "Nije uspesno snimljeno!"; } DeaktivirajKontrole(); MessageBox.Show(); } private void btnOdustani_Click(object sender, EventArgs e) { IsprazniKontrole(); DeaktivirajKontrole(); } private void btnFiltriraj_Click(object sender, EventArgs e) { podaciTabelarni = UcitajFiltrirano(txtFilter.Text); PrikaziTabeluPodataka(podaciTabelarni);

  • } private void btnSve_Click(object sender, EventArgs e) { podaciTabelarni = UcitajSve(); PrikaziTabeluPodataka(podaciTabelarni); } private void btnExportXML_Click(object sender, EventArgs e) { SnimiXML(podaciTabelarni, Parametri.putanjaXML); MessageBox.Show("Uspesno realizovan eksport podataka!"); } private void frmSaSopstvenomBibliotekomDBUtils_Load(object sender, EventArgs e) { } } }

    SQL script baze podataka (POTREBAN ZA PROVERU RUN-TIME GREŠAKA) CREATE DATABASE [GEOGRAFIJASE1] GO USE [GEOGRAFIJASE1] GO CREATE TABLE [dbo].[MESTO]( [PTT] [nvarchar](5) NOT NULL PRIMARY KEY, [Naziv] [nvarchar](40) NOT NULL, [OznakaDrzave] [nvarchar](3) NOT NULL ) GO CREATE TABLE [dbo].[DRZAVA]( [OZNAKA] [nvarchar](3) NOT NULL PRIMARY KEY, [Naziv] [nvarchar](100) NOT NULL, [UkupnoMesta] int NOT NULL ) GO ALTER TABLE [dbo].[MESTO] ADD CONSTRAINT FK_PRIPADA FOREIGN KEY (OznakaDrzave) REFERENCES [dbo].[DRZAVA] (OZNAKA) ON UPDATE CASCADE ON DELETE NO ACTION; GO

    REŠENJE

    DEO KODA SA GREŠKOM VRSTA GREŠKE OBJAŠNJENJE PROBLEMA KOREKCIJA GREŠKE

  • 2. TIP ZADATKA (3 poena) - Dat je izgled korisničkog interfejsa i programski kod. Dat je kompletan Error list sa spiskom detektovanih grešaka od strane kompajlera. Odrediti vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1). Pored prethodno datog materijala dodatno bi bilo dato I ovo:

    REŠENJE

    DEO KODA SA GREŠKOM VRSTA GREŠKE OBJAŠNJENJE PROBLEMA KOREKCIJA GREŠKE

  • 3. TIP ZADATKA

    (3 poena) - Dat je ispravan segment koda. Napraviti namerne greške tako da bude jedna leksička, jedna sintaksna i jedna semantička greška. Napisati segment koda koji uključuje te greške. ISPRAVAN SEGMENT KODA: if (ukupnoSnimljeno > 0) { poruka = "Uspesno snimljeno!"; } else { poruka = "Nije uspesno snimljeno!"; }

    KOD SA LEKSIČKOM GREŠKOM KOD SA SINTAKSNOM GREŠKOM

    KOD SA SEMANTIČKOM GREŠKOM

  • 4. TIP ZADATKA

    (4 poena) – Dat je segment programskog koda sa greškama. Odrediti deo segmenta sa greškom (1), vrstu greške (leksička, sintaksna, semantička, run-time) (1), objasniti problem (1) i ispraviti greške (1).

    private void btnSnimi_Click(object sender, EventArgs e) { string poruka = ""; int ukupnoSnimljeno = SnimiPodatke(); if (ukupnoSnimljeno > poruka { poruka = "Uspesno snimljeno!"; } else { poruka = "Nije uspesno snimljeno!"; } DeaktivirajKontrole(); MessageBx.Show(); }

    DEO KODA SA GREŠKOM VRSTA GREŠKE OBJAŠNJENJE PROBLEMA KOREKCIJA GREŠKE

    5. TIP ZADATKA Dat je segment programskog koda sa konkretnom jednom vrstom greške (leksička, sintaksna, semantička, run-time) koja je navedena. Detektovati delove koda sa greškama (1), objasniti problem (1) i ispraviti greške (1).

    LEKSIČKA private void btnSnimi_Click(object sender, EventArgs e) { string poruka = ""; int ukupnoSnimljeno = SnimiPodatke(); if (ukupnoSnimljeno > O) { poruka = "Uspesno snimljeno!"; } else { poruka = "Nije uspesno snimljeno!"; } DeaktivirajKontrole(); MessageBx.Show(); }

    DEO KODA SA GREŠKOM OBJAŠNJENJE PROBLEMA KOREKCIJA GREŠKE

  • SINTAKSNA private void btnSnimi_Click(object sender, EventArgs e) { string poruka = ""; int ukupnoSnimljeno = SnimiPodatke(); if (ukupnoSnimljeno > 0 { poruka = "Uspesno snimljeno!"; } else { poruka = "Nije uspesno snimljeno!"; } DeaktivirajKontrole(); MessageBox.Show(); }

    DEO KODA SA GREŠKOM OBJAŠNJENJE PROBLEMA KOREKCIJA GREŠKE

    SEMANTIČKA private void btnSnimi_Click(object sender, EventArgs e) { string poruka = ""; int ukupnoSnimljeno = SnimiPodatke(); if (ukupnoSnimljeno > poruka) { poruka = "Uspesno snimljeno!"; } else { poruka = "Nije uspesno snimljeno!"; } DeaktivirajKontrole(); MessageBox.Show(); }

    DEO KODA SA GREŠKOM OBJAŠNJENJE PROBLEMA KOREKCIJA GREŠKE