Metody realizacji języków programowania/MRJP Ćwiczenia 4: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Zaroda (dyskusja | edycje)
Nie podano opisu zmian
Zaroda (dyskusja | edycje)
Nie podano opisu zmian
 
(Nie pokazano 7 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;


podaj kod na NMW liczący wartość wyrażenia:
podaj kod na '''NMW''' liczący wartość wyrażenia:


  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 21: Linia 21:
Zapisz fragment kodu na '''NMW''' będący tłumaczeniem następującego fragmentu programu:
Zapisz fragment kodu na '''NMW''' będący tłumaczeniem następującego fragmentu programu:


  if x<>z then
  '''if''' x<>z '''then'''
   while x<100 do
   '''while''' x<100 '''do'''
     if x=1 then
     '''if''' x=1 '''then'''
       repeat
       '''repeat'''
         x:=x+5
         x:=x+5
       until x>10
       '''until''' x>10
     else
     '''else'''
       x:=x+1
       x:=x+1


== Zadanie - realizacja pętli FOR ==
== 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''').
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''').

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).