ZAP - Cvičenie č. 7 | Lab 7 (2019/2020)

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

Preber si túto prednášku so svojou AI

Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.

Otvoriť AI: ChatGPT · Claude · Gemini

Zhrnutie prednášky

Cvičenie sa venuje ladeniu programu implementujúceho lineárne vyhľadávanie v poli čísel v jazyku C pomocou nástroja CGDB. Najprv sa opravuje chyba spôsobená použitím sizeof na pole, ktoré bolo do funkcie odovzdané ako ukazovateľ, čo vracalo veľkosť adresy namiesto veľkosti poľa – rieši sa pridaním explicitného parametra s veľkosťou poľa. Následne sa program prekladá s prepínačom -g (po úprave .bashrc) a spúšťa v CGDB, kde sa demonštruje práca s breakpointmi, krokovaním (F6) a sledovaním hodnoty premennej pomocou print a display. Pri testovaní sa odhalí druhá chyba v podmienke cyklu while, kde nesprávne použitý operátor OR namiesto AND spôsoboval prekročenie hranice poľa a nesprávny výsledok vyhľadávania. Po oprave podmienky program správne vracia index hľadaného prvku alebo indikuje jeho neprítomnosť v poli.

  • - Chyba pri sizeof(items) vo funkcii – pole odovzdané ako parameter je len adresa, treba pridať parameter s veľkosťou poľa
  • - Preklad programu s prepínačom -g (úprava .bashrc, príkaz exec bash na načítanie zmien) pre podporu ladenia
  • - Spustenie a ovládanie nástroja CGDB: okná so zdrojovým kódom, vstupom a príkazmi (klávesy i, Escape, T)
  • - Nastavenie breakpointu medzerníkom a spustenie programu klávesou F5
  • - Krokovanie programu pomocou F6 a sledovanie premenných príkazmi print a display
  • - Druhá chyba v podmienke cyklu while – nesprávne použitý operátor OR namiesto AND spôsoboval prekročenie rozsahu poľa
  • - Po oprave oboch chýb program správne vracia index hľadaného prvku alebo informáciu o jeho neprítomnosti

Zhrnutie pripravené s pomocou AI z prepisu videa.