Collections and repeated work

15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.

A collection stores related values. The loop visits 1, 2, and 3, updating the total from 0 to 1, then 3, then 6. Record this trace rather than guessing. Identify the first and last valid positions in this language: Pascal can declare a 1-based array, while many other examples use zero-based containers. Add another value and update the bounds correctly. Explain what an empty collection should produce.

Square brackets send a message to a receiver: [plan completed]. @interface declares methods and @implementation defines them. These GNUstep exercises use explicit memory management, not Apple ARC.

#import <Foundation/Foundation.h>
#include <stdio.h>
#include <assert.h>

int main(void) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSArray *minutes = [NSArray arrayWithObjects:
        [NSNumber numberWithInt:1], [NSNumber numberWithInt:2], [NSNumber numberWithInt:3], nil];
    int total = 0;
    for (NSNumber *value in minutes) total += [value intValue];
    printf("%d\n", total);
    [pool drain];
    return 0;
}

Expected result: 6

Practice and evidence

Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.

Language reference