Că nu a fost planificat! Căutați erori logice

În această lecție, vom căuta erori logice în program.

În lecțiile anterioare, am vorbit despre cum să găsiți și să remediați erorile de compilare și erorile de execuție. Al treilea tip de erori de programare - erori logice - este cel mai greu de detectat. Dacă există erori logice, nu veți primi niciun avertisment: programul va începe, dar va produce rezultate incorecte. Va trebui să citiți codul și să determinați cauza erorii.







Din fericire, instrumentele de depanare Visual Basic vă pot ajuta. Două metode de depanare - setarea punctelor de întrerupere și execuția codului pas-cu-pas - vă permit să verificați codul în timpul executării acestuia pentru a găsi eroarea.

În modul pauză, puteți efectua pașii sărind peste fragmentele de cod, executând simultan codul pentru a vedea cum funcționează. Apăsarea tastei F8 determină ca linia curentă de cod să ruleze și să se oprească pe următoarea linie. Acest lucru vă permite să verificați valorile variabilelor pentru a vedea schimbarea lor de la un rând de cod la altul.

Dacă linia curentă de cod solicită o funcție sau o procedură Sub. localizat într-un alt loc, apăsând tasta F8 va intra în această procedură. După trecerea procedurii, linia care urmează celui care a apelat procedura este mutată. Dacă nu este necesar să treceți prin procedură, puteți apăsa Shift + F8 pentru a sări peste aceasta.

Apăsați F5 pentru a porni programul. Introduceți 10 (10 minute) în primul câmp text, introduceți 5 (5 mile) în câmpul de text al doilea și apăsați butonul1.

Se va afișa o fereastră de mesaj cu textul "Viteză medie 0.03333334"; Cu toate acestea, în cazul în care cele 10 mile au fost transmise 5 mile, atunci răspunsul corect ar trebui să fie de 30 de mile pe oră.

Nu închideți proiectul. Următoarea procedură vă va arăta cum să găsiți o eroare logică.







În ultimul exemplu, logica programului nu este în mod clar validă. Conform rezultatului, viteza este mai mică de o milă pe oră, nu 30 de mile pe oră, așa cum v-ați aștepta - dar unde este eroarea?

Punctele de blocare vor fi setate în următoarea procedură, iar codul va fi executat în pași pentru a găsi eroarea.

Pentru a seta un punct de întrerupere și a verifica codul în pași

Pe marginea formularului trebuie să apară un punct roșu, iar codul trebuie să fie evidențiat cu roșu, ceea ce indică un punct de întrerupere.

Apăsați F5 pentru a reporni aplicația. În prima casetă de text, tastați 10. și în a doua casetă de text, 5. Apoi faceți clic pe butonul1.

Programul este suspendat la atingerea punctului de întrerupere. Durata orelor = minute / 60 este marcată cu galben.

Verificați valorile variabilelor ținând mouse-ul peste ele. Valoarea orelor trebuie să fie 0. iar valoarea minutei este de 10.

Apăsați F8 pentru a rula orele de linie = minute / 60 și treceți la linia următoare.

Verificați valorile variabilelor din MsgBox ("Viteză medie" GetMPH (ore, mile). Valoarea orelor ar trebui să fie acum egală cu 0,1666666672. iar valoarea milelor este de 5,0.

Apăsați din nou tasta F8 pentru a executa linia curentă.

Rețineți că este apelată funcția GetPHH.

Verificați valorile variabilelor din acest rând. Valoarea milelor este acum 0.166666672. iar valoarea orelor este de 5,0. care contravine liniei anterioare. A fost găsită o eroare.

Nu închideți proiectul. Următoarea procedură vă va spune cum să corectați o eroare logică.

În procedura precedentă, valorile milelor și orelor variabile au fost inversate. Poți înțelege motivul?

Eroarea a apărut deoarece argumentele au fost transmise în ordine greșită, ceea ce a dus la calculul incorect. Dacă argumentele au fost de tipuri diferite, ar apărea o eroare la timpul de execuție; Dar, deoarece argumentele sunt de același tip, nu s-au produs erori în timpul executării. Aceasta a fost o greșeală simplă, dar a fost greu să găsim motivul erorii.

Punctele de blocare vor fi setate în următoarea procedură, iar codul va fi executat în pași pentru a găsi eroarea.

Ștergeți punctul de întrerupere făcând clic pe punctul roșu din caseta din partea stângă a ferestrei.

Apăsați F5 pentru a porni programul. În prima casetă de text, tastați 10. și în a doua casetă de text, 5. Apoi faceți clic pe butonul1.

De data aceasta, rezultatul corect este afișat în fereastra mesajului: "Viteza medie 30".

Se pare că programul este fix, dar există o altă eroare logică, mai greu de găsit. Pentru a încerca să o găsiți, nu închideți proiectul. Acesta va fi folosit din nou în eroarea Lesson Other. Ceva nu este cazul.







Trimiteți-le prietenilor: