teaching machines

CS 330 Lecture 15 – Malloc

Agenda preprocessor macros memory leaks adjusting an allocation with realloc how malloc works, kinda p1 = malloc(4 * sizeof(int)) p2 = malloc(5 * sizeof(int)) p3 = malloc(6 * sizeof(int)) free(p2) p4 = malloc(2 * sizeof(int)) TODO For more background on malloc, browse http://www.gnu.org/software/libc/manual/html_node/Memory-Allocation.html#Memory-Allocation. Read http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax. Code makefile EXES = first arrays months oob strings test_stack all: $(EXES) […]

CS 145 Preassignment 2 – due before Wednesday, March 7

See the PDF.

CS 145 Lecture 9 – Loops: for and while

Agenda exam coming up! for loop problems digitizing a circle spreadsheet fill for (INIT; TEST; UPDATE) { ACTION } INIT while (TEST) { ACTION UPDATE } while loop problems summing an indefinite number of numbers checking for repeated words decomposing a comma-separated list prompting for an actual file TODO Read chapter 3 (mostly discussed already) […]

CS 330 Lecture 14 – Stack API

Agenda why malloc? a stack API evaluating postfix expressions for each token if token is number, push it on operand stack if token is operator, pop two operands, push result back on pop stack to get the value separate compilation command-line arguments atoi TODO Read http://www.joelonsoftware.com/articles/fog0000000319.html. Read http://gee.cs.oswego.edu/dl/html/malloc.html. Code makefile EXES = first arrays months oob strings […]

CS 330 Lecture 13 – Strings and structs

Agenda array out-of-bounds strings null-terminated char arrays strlen strcat strcpy strdup strcmp structs header files a stack API evaluating postfix expressions for each token if token is number, push it on operand stack if token is operator, pop two operands, push result back on pop stack to get the value Code makefile EXES = first […]

CS 330 Homework 3 – due before Tuesday, March 6

See the PDF.

CS 145 Lab 5 – Testing and loops

Prelab Complete Exercise 3.1 on the Practice-It website before 8 AM on February 20. Testing Once you’ve wrapped some code up inside a method, it becomes a candidate for quality assurance. You must poke it and prod it to make sure it does what its specification says it does. But here’s the kicker: you should […]

CS 145 Lecture 8 – Loops

Agenda for loops acrostic spelunking display approximating a circle Code ForFun.java package preexam1; public class ForFun { public static void main(String[] args) { for (int i = 0; i < 3; i = i + 1) { System.out.println(“Bye, Patrick!”); } int sum = 0; for (int i = 1; i <= 100; i = i […]

CS 330 Lecture 12 – Arrays and malloc

Agenda a C makefile arrays strings dynamic allocation a stack API Code makefile EXES = first arrays months all: $(EXES) $(EXES): %: %.c gcc -o $@ -Wall -std=c99 $< clean: rm -f $(EXES) arrays.c #include <stdio.h> #include <stdlib.h> int average(int nums[], int len) { int sum = 0; for (int i = 0; i < […]

CS 145 Lecture 7 – Careful coding

Agenda relational operators software disaster careful coding pseudocode build in small pieces test pieces in isolation document some problems to test area of ring Code Utilities.java package preexam1; public class Utilities { // i = get area of inside // o = get area of outside // area = o – i public static double […]

1 5 6 7 8 9 10