Metody realizacji języków programowania/MRJP Ćwiczenia 4: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwaniaLinia 1: | Linia 1: | ||
== Zadanie - generowanie kodu dla wyrażeń == | == Zadanie - generowanie kodu dla wyrażeń == | ||
− | Zakładając, że t jest tablicą zadeklarowaną: | + | Zakładając, że ''t'' jest tablicą zadeklarowaną: |
'''var''' t:'''array''' [1..100] '''of''' integer; | '''var''' t:'''array''' [1..100] '''of''' integer; | ||
Linia 9: | Linia 9: | ||
t[2*t[i]+1]-5 | t[2*t[i]+1]-5 | ||
− | Załóż, że tablica t znajduje się w pamięci pod adresem adres_t. | + | Załóż, że tablica ''t'' znajduje się w pamięci pod adresem ''adres_t''. |
== Zadanie - generowanie kodu dla wyrażeń i przypisań == | == Zadanie - generowanie kodu dla wyrażeń i przypisań == | ||
Linia 36: | Linia 36: | ||
'''for''' zmienna := ''Wyrazenie1'' '''to''' ''Wyrazenie2'' '''do''' ''Instrukcja'' | '''for''' zmienna := ''Wyrazenie1'' '''to''' ''Wyrazenie2'' '''do''' ''Instrukcja'' | ||
− | języka '''Pascal'''. Pamiętaj, że ''Wyrażenie1'' i ''Wyrażenie2'' powinny być liczone tylko raz, przed pierwszym obrotem pętli. Sprawdź, czy twoje rozwiązanie działa prawidłowo, gdy wartością ''Wyrazenie2'' jest największa reprezentowalna liczba całkowita ('''maxint''' w '''Pascalu'''). | + | języka '''Pascal'''. Pamiętaj, że ''Wyrażenie1'' i ''Wyrażenie2'' powinny być liczone tylko |
+ | raz, przed pierwszym obrotem pętli. Sprawdź, czy twoje rozwiązanie działa prawidłowo, gdy | ||
+ | wartością ''Wyrazenie2'' jest największa reprezentowalna liczba całkowita ('''maxint''' w | ||
+ | '''Pascalu'''). |
Aktualna wersja na dzień 14:05, 1 paź 2006
Zadanie - generowanie kodu dla wyrażeń
Zakładając, że t jest tablicą zadeklarowaną:
var t:array [1..100] of integer;
podaj kod na NMW liczący wartość wyrażenia:
t[2*t[i]+1]-5
Załóż, że tablica t znajduje się w pamięci pod adresem adres_t.
Zadanie - generowanie kodu dla wyrażeń i przypisań
Zapisz fragment kodu na NMW będący tłumaczeniem następującego fragmentu programu:
x:=y+2*z; z:=(x+1)*(y-1); x:=x+1
Zadanie - generowanie kodu dla instrukcji warunkowych i pętli
Zapisz fragment kodu na NMW będący tłumaczeniem następującego fragmentu programu:
if x<>z then while x<100 do if x=1 then repeat x:=x+5 until x>10 else x:=x+1
Zadanie - realizacja pętli "for"
Zaprojektuj sposób realizacji pętli:
for zmienna := Wyrazenie1 to Wyrazenie2 do Instrukcja
języka Pascal. Pamiętaj, że Wyrażenie1 i Wyrażenie2 powinny być liczone tylko raz, przed pierwszym obrotem pętli. Sprawdź, czy twoje rozwiązanie działa prawidłowo, gdy wartością Wyrazenie2 jest największa reprezentowalna liczba całkowita (maxint w Pascalu).