Evo nešto opširnijeg objašnjenja.
Citat:
"Svaki put inicijalizuješ portove."
Potrebno je izdvojiti inicijalizaciju, deo koda gde se pinovi portova postavljaju kao ulazni ili izlazni, i to izvršiti samo na početku. Ovo kako radi nije potpuno pogrešno samo je po malo suvišno. U stvari, program lepo ima labelu Start nakon inicijalizacije ali ti za start ideš na početak algoritma. Trebalo bi da se one dve povratne putanje ulivaju nakon bloka inicijalizacije. I šta znači kad kažeš "rezerviše mesto u memoriji". Da li shvataš da bi to značilo da svakim prolazom rezervisanje bez oslobađanja na kraju pojede svu memoriju. Znam da nisi tako mislio ali moglo bi se tako protumačiti. Čak šta više deklaracije i definicije nemaju mesto u algoritmu. Algoritam bi trebao biti apstrakcija koju realizuje program bez suvišnih detalja kao recimo čitava gungula oko petlje za pauzu. Ona bi u algoritmu trebala da se apstrakuje sa par blokova od kojih jedan opisuje kako se meri period(umanjivanjem tri osmobitna brojača) i drugim koji pokazuje reakciju na izuzetak kad se pojavi slučaj pritisnutog tastera.
Citat:
"Samo kada je stop DA moguće je upaliti mašinu."
"Kad je stop NE nakon pauze ideš na gašenje."
Pogledaj crtež. Imaš testiranje za stop na dva mesta. Prva rečenica je za gornji druga za donji slučaj.
Za ova dva mislim da si samo zamenio oznake za DA i NE grane na nacrtanom algoritmu. U stvari sad sam ponovo gledao sliku i video kontradikciju između "testira STOP" i jednakosti ispod.
Tok NE zapravo znači "DA STOP" i istovremeno "NE, RA0 nije jednako 0". Znači potrebno je preformulisati izjave iznad i ispod crtice u bloku da budu u saglasnosti, tj. da kad se prati tok recimo NE to bude kada je NE odgovor na oba pitanja. Ili ostaviti samo RA0=0 a obrisati "testira STOP".
Citat:
Na dnu, nakon UKLJUČI_MAŠINU račvaš tok u multitasking !? ---> ??? ne razumem, mozes malo da pojasnis.
na dnu slike ti se tok račva i jedan kraj završava u KRAJ a drugi se vraća gore. Našalio sam se i to nazvao multitaskingom. Ovaj algoritam jednostavno ne bi trebao da ima specijalnu labelu KRAJ.
Nadam se da sam bar malo uspeo da dočaram čemu se teži u teoriji. U praksi se međutim sreće sve i svašta, algoritmi sa ezoteričnom notacijom, bezglavi i bezrepi kad se na brzinu rešava problem. Čak i neartikulisane žvrljotine sa nekoliko identifikatora i brojeva u nepoznatom zapisu koje i sam autor kad kasnije pogleda nema pojma šta su ali su jednom odradile posao. Samo dobar algoritam ima trajnu vrednost jer može da uštedi vreme potrebno za razumevanje. Loši algoritmi čak mogu da unesu dodatnu zabunu i prouzrokuju čistu štetu. Zato uvek treba težiti dobroj praksi a prezirati svaku aljkavost.
Pozdrav,
Bojan