# teaching machines

## CS 145 Lecture 16 – Arrays

November 4, 2011 by . Filed under cs145, fall 2011, lectures.

### Agenda

• named data vs. numbered data
• arrays
• mapping month numbers to names
• the birthday problem

### Code

#### Birthdays

9 6
3 30
9 26
10 11
7 6
12 7
1 9
2 10
6 21
3 2
5 12
2 25
7 3
1 17
4 29
5 19
12 8
4 2
3 31
5 30
11 30
5 30
3 8
9 15
9 5
10 24
6 5
8 8
6 14
4 29
11 15
4 7
2 14
6 29
4 7
2 16
8 31
6 29
8 21
4 18
2 10
7 18
2 16
9 15
8 10
12 21
10 24
12 9
3 23
4 1
6 25
4 14
2 14
1 10
2 14
10 24
3 15
4 16
9 11
10 14
10 19
10 1
9 28
1 10
9 28
8 30
4 25
6 21
5 21
6 14
8 14
11 11
5 17
1 20
11 6
10 7
4 20
12 27
4 9
12 3
11 29
1 20
10 26
10 26
3 27
8 9
11 18
5 1
7 29
3 3
6 14
3 29
5 10

#### Birthdayarator.java

package lecture;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Birthdayarator {
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new File("/home/cjohnson/Desktop/bdays.txt"));

String[] names = new String[12];
names[0] = "January";
names[1] = "February";
names[2] = "March";
names[3] = "April";
names[4] = "May";
names[5] = "June";
names[6] = "July";
names[7] = "August";
names[8] = "September";
names[9] = "October";
names[10] = "November";
names[11] = "December";

int[] counts = new int[12 * 31];

System.out.println(names.length);

while (in.hasNextInt()) {
int month = in.nextInt();
int day = in.nextInt();

int doy = (month - 1) * 31 + day;
++counts[doy];

String monthName = names[month - 1];
System.out.print(monthName);

//      if (month == 1) {
//        System.out.print("January");
//      } else if (month == 2) {
//        System.out.print("February");
//      } else if (month == 3) {
//        System.out.print("March");
//      } else if (month == 4) {
//        System.out.print("April");
//      } else if (month == 5) {
//        System.out.print("May");
//      } else if (month == 6) {
//        System.out.print("June");
//      } else if (month == 7) {
//        System.out.print("July");
//      } else if (month == 8) {
//        System.out.print("August");
//      } else if (month == 9) {
//        System.out.print("September");
//      } else if (month == 10) {
//        System.out.print("October");
//      } else if (month == 11) {
//        System.out.print("November");
//      } else if (month == 12) {
//        System.out.print("December");
//      } else {
//      }
System.out.println(" " + day);
}

for (int i = 0; i < counts.length; ++i) {
if (counts[i] > 1) {
System.out.println(i);
}
}
}
}


### Haiku

numbered but not named
they want you processed and out
so just be zero