Module 25: Evaluatie van expressies\302\24725.1: Evaluatie van expressiesOpvragen van de waarde van een variabelex := 3;x;y;Doorgeven van een waarde (geval 1)Voorbeeld 1:x := 3;y := x;y;Voorbeeld 2:x := 3;y := x;x := 5;y;Doorgeven van een waarde (geval 2)restart;y := x;x := 3;y;Een nieuwe waarde voor LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJw==:x := 5: y;De waarde van LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJw== is ook veranderd.Nu kennen we expliciet een waarde toe aan LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJw==:y := x;Een nieuwe waarde voor LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJw==:x := 7: y;Nu is LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJw== onveranderd.Dezelfde naam links en rechts van de toekenningsoperatorx := 7:Hier heeft x een waarde, en dan gaat het goed:x := x + 1;Maar als x geen waarde heeft:x := 'x':x := x + 1;\302\24725.2: Volledige en gedeeltelijke evaluatieVoorbeeld 1: eval restart;y := x;x := 3:eval(y,1);eval(y,2);y;Voorbeeld 2: het gebruik van ' ' x := 3;'x';Voorbeeld 3: evalnT := [eerste,tweede,derde,vierde,vijfde]:
i := 3: T[i];'T[i]';evaln(T[i]);\302\24725.3: EvaluatieregelsVoorbeeld 1: Procedureaanroepx := Pi;sin(x);Voorbeeld 2: De pocedure subs x := 'x': p := x^2 +3*x + 2;x := 4: eval(p,1);eval(p,2);subs( x=qqq, p );subs( 'x'=qqq, p );subs( x=qqq, eval(p,1) );subs( 'x'=qqq, eval(p,1) );x := 2: subs( x=qqq, eval(p,1) );Voorbeeld 3: Evaluatie tot de laatste naamrestart; T1 := table( [(a)=1, (b)=x^2, (y)=z] );T2 := T1: T3 := T2: T4 := T3;T4[b] := 1: eval(T1);T := 'T': T := table([(1)=a,(2)=b] ):a :=5: b := 6:eval(T);T[1];map(eval,T);