Metody realizacji języków programowania/MRJP Ćwiczenia 4: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
(Nie pokazano 2 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 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 30: | Linia 30: | ||
x:=x+1 | x:=x+1 | ||
== Zadanie - realizacja pętli | == Zadanie - realizacja pętli "for" == | ||
Zaprojektuj sposób realizacji pętli: | Zaprojektuj sposób realizacji pętli: | ||
'''for''' zmienna:=Wyrazenie1 '''to''' Wyrazenie2 '''do''' Instrukcja | '''for''' zmienna := ''Wyrazenie1'' '''to''' ''Wyrazenie2'' '''do''' ''Instrukcja'' | ||
języka '''Pascal'''. Pamiętaj, że | 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).