Mode:
Duration:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
MODULE TodoList;
IMPORT InOut;
VAR todos: ARRAY 10 OF ARRAY 50 OF CHAR; count: INTEGER := 0;
PROCEDURE addTask(task: ARRAY OF CHAR);
BEGIN
todos[count] := task; count := count + 1;
FOR i := 0 TO count-1 DO InOut.WriteString(todos[i]); InOut.WriteLn END;
END addTask;
PROCEDURE removeTask(idx: INTEGER);
VAR i: INTEGER;
BEGIN
FOR i := idx TO count-2 DO todos[i] := todos[i+1] END;
count := count - 1;
FOR i := 0 TO count-1 DO InOut.WriteString(todos[i]); InOut.WriteLn END;
END removeTask;
BEGIN
addTask("Buy milk");
addTask("Write Modula-2 code");
removeTask(0);
END TodoList.Coding works best on desktop or with an external keyboard.