ZAP - Cvičenie č. 7 | Lab 7 (2019/2020)
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.
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.
nechodím na prednášky