Introduction to Computer Programming Lecture 16 Structures (Part 1)

Size: px
Start display at page:

Download "Introduction to Computer Programming Lecture 16 Structures (Part 1)"

Transcription

1 Introduction to Computer Programming Lecture 16 Structures (Part 1) Assist. Prof. Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering 1

2 Topics Structure Arrays of structs typedef structs and functions Pointers to structs structs within structs Data structures and modular design 2

3 What is a Structure? In C, we can define our own data types that represent structured collections of data A collection of related variables under one aggregate name May contain variables of different types Using structures: Define the structure Declare/Initialize instances of the structure Access members of an instance of the structure 3

4 Structure Definition A structure is a blueprint Example: Lunchbox Define a structure called Lunchbox which has the following compartments: a fruit compartment a sandwich compartment a drink compartment 4

5 Structure Definition (cont) A struct is used to specify the blueprint The members specify different aspects of a struct Example: Lunchbox struct LunchBox int fruit; float drink; char sandwich[maxn]; ; 5

6 Structure Variable Instance of a structure: actual series of contiguous memory locations for storage struct LunchBox ali; struct LunchBox veli,ayse,fatma; struct LunchBox kids[5]; 6

7 Initializing a struct Variable struct LunchBox ali = 1,370.0, kofte ; 7

8 Initializing a struct Variable (cont) struct LunchBox kids[5] = 1, 370.0, kofte, 2, 100.0, doner, 0, 0.0, kebap, 1, 300.0, salata, 0, 0.0, ; 8

9 Members of a struct Variable struct LunchBox ali, veli; veli.drink = 0.0; veli.fruit = 0; strcpy(veli.sandwich, doner ); ali.fruit = 1; strcpy(ali.sandwich, kofte ); ali.drink = 300.0; 9

10 Members of a struct Variable struct LunchBox kids[3]; int index = 1; kids[0].drink = 300.0; kids[0].fruit = 1; strcpy(kids[2].sandwich, kofte ); kids[index].fruit = 3; kids[index+1].drink = kids[index - 1].drink; 10

11 Input/Output of struct Library functions printf() and scanf() do not have format conversion specifiers for structs Input/Output for each member only struct LunchBox ayse; scanf( %d, &(ayse.fruit)); scanf( %f, &(ayse.drink)); scanf( %s, ayse.sandwich); printf( %d, %f\n, ayse.fruit, ayse.drink); printf( %s\n, ayse.sandwich); 11

12 Input/Output of struct (cont) struct LunchBox kids[3]; int i = 0; for (i=0; i < 3; i++) scanf( %d %f %s, &(kids[i].fruit),&(kids[i].drink), kids[i].sandwich); for (i=0; i < 3; i++) printf( %d, %f, %s\n, kids[i].fruit, kids[i].drink, kids[i].sandwich); 12

13 Example: Student Record Write a program to read in and print a list of student last names and test marks input number of students for each student in the list input last name and mark for each student in the list output last name and mark 13

14 Example without struct-1 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 int main() char lastname[maxn][maxlen]; float mark[maxn]; int count = 0; int i; printf("how many students? "); scanf("%d", &count); marks1.c 14

15 Example without struct-2 if (count > MAXN) printf("not enough space.\n"); exit(1); for (i=0; i < count; i++) printf("enter last name and mark: "); scanf("%s %f", lastname[i], &mark[i]); printf("\nclass list:\n\n"); for (i=0; i < count; i++) printf("last name: %s\n", lastname[i]); printf(" Mark: %.1f\n\n", mark[i]); return 0; marks1.c 15

16 Example: Student Record Define a struct: StudentRec struct StudentRec char lastname[maxlen]; float mark; ; Easy to extend later to include ID number, first name, etc 16

17 Example with struct (testing) #include <stdio.h> #define MAXLEN 50 struct StudentRec char lastname[maxlen]; float mark; ; int main() struct StudentRec studa; struct StudentRec studb; printf("enter last name and mark for student A: "); scanf("%s %f", studa.lastname, &(studa.mark)); printf("enter last name and mark for student B: "); scanf("%s %f", studb.lastname, &(studb.mark)); printf("student A: %s\t%f\n", studa.lastname, studa.mark); printf("student B: %s\t%f\n", studb.lastname, studb.mark); return 0; marks2a.c 17

18 Example with struct-1 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 struct StudentRec char lastname[maxlen]; float mark; ; int main() struct StudentRec class[maxn]; int count = 0; int i; printf("how many students? "); scanf("%d", &count); marks3a.c 18

19 Example with struct-2 if (count > MAXN) printf("not enough space.\n"); exit(1); for (i=0; i < count; i++) printf("enter last name and mark: "); scanf("%s %f", class[i].lastname, &(class[i].mark)); printf("\nclass list:\n\n"); for (i=0; i < count; i++) printf("last name: %s\n", class[i].lastname); printf(" Mark: %.1f\n\n", class[i].mark); return 0; marks3a.c 19

20 Common Mistake struct StudentRec char lastname[maxlen]; float mark; ; Do not forget the semicolon here! 20

21 Notes on structs Initialization vs. Assignment struct StudentRec studa = Ali, 90; struct StudentRec studa; studa = Ali, 90; struct StudentRec studa = Ali, 90; struct StudentRec studb; studb = studa; /* struct contains pointers? */ 21

22 Notes on structs (cont) struct variables cannot be compared We can perform member comparisons only if (studa == studb) printf( Duplicate data.\n ); if (strcmp(studa.lastname, studb.lastname) == 0 && (studa.mark == studb.mark) ) printf( Duplicate data.\n ); 22

23 Notes on structs (cont) We can define a struct, and declare instances of that struct struct StudentRec char lastname[maxlen]; float mark; studa, studb, class[maxn]; 23

24 typedef A typedef statement makes an identifier equivalent to a type specification Example without typedef struct StudentRec char lastname[maxlen]; float mark; ; struct StudentRec studenta; struct StudentRec class[maxn]; 24

25 typedef (cont) The typedef statement makes an identifier equivalent to a type specification Example with typedef struct StudentRec char lastname[maxlen]; float mark; ; typedef struct StudentRec Student; Student studa; Student class[maxn]; 25

26 Example with typedef (testing) #include <stdio.h> #define MAXLEN 50 struct StudentRec char lastname[maxlen]; float mark; ; typedef struct StudentRec Student; int main() Student studa; Student studb; printf("enter last name and mark for student A: "); scanf("%s %f", studa.lastname, &(studa.mark)); printf("enter last name and mark for student B: "); scanf("%s %f", studb.lastname, &(studb.mark)); printf("student A: %s\t%f\n", studa.lastname, studa.mark); printf("student B: %s\t%f\n", studb.lastname, studb.mark); return 0; marks2b.c 26

27 Example with typedef-1 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 struct StudentRec char lastname[maxlen]; float mark; ; typedef struct StudentRec Student; int main() int count = 0; Student class[maxn]; int i; printf("how many students? "); scanf("%d", &count); marks3b.c 27

28 Example with typedef-2 if (count > MAXN) printf("not enough space.\n"); exit(1); for (i=0; i < count; i++) printf("enter last name and mark: "); scanf("%s %f", class[i].lastname, &(class[i].mark) ); printf("\nclass list:\n\n"); for (i=0; i < count; i++) printf("last name: %s\n", class[i].lastname); printf(" Mark: %.1f\n\n", class[i].mark); return 0; marks3b.c 28

29 Notes on typedef Yet another way of using typedef: typedef struct char lastname[maxlen]; float mark; Student; Student studa, studb; Student class[maxn]; 29

30 Passing a struct to a Function As always, the formal parameters are copies of the actual parameters void printrecord ( Student item ) printf("last name: %s\n", item.lastname); printf(" Mark: %.1f\n\n", item.mark); main() Student studenta = Gauss, 99.0; printrecord(studenta); 30

31 Function Returning a struct A package containing several values Student readrecord ( void ) Student newstudent; printf("enter last name and mark: "); scanf("%s %f",newstudent.lastname,&(newstudent.mark)); return newstudent; Version 1 main() Student studenta; studenta = readrecord(); 31

32 Function Returning a struct (cont) A package containing several values Student readrecord ( Student newstudent ) printf("enter last name and mark: "); scanf("%s %f",newstudent.lastname,&(newstudent.mark)); return newstudent; Version 2 main() Student studenta; studenta = readrecord(studenta); 32

33 Example: Structs and Functions-1 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 struct StudentRec char lastname[maxlen]; float mark; ; typedef struct StudentRec Student; Student readrecord ( void ) Student newstudent; printf("enter last name and mark: "); scanf("%s %f", newstudent.lastname, &(newstudent.mark)); return newstudent; void printrecord ( Student item ) printf("last name: %s\n", item.lastname); printf(" Mark: %.1f\n\n", item.mark); marks4a.c 33

34 Example: Structs and Functions-2 int main() int count = 0; Student class[maxn]; int i; printf("how many students? "); scanf("%d", &count); if (count > MAXN) printf("not enough space.\n"); exit(1); for (i=0; i < count; i++) class[i] = readrecord(); printf("\nclass list:\n\n"); for (i=0; i < count; i++) printrecord(class[i]); return 0; marks4a.c 34

35 Passing a struct Pointer Pass a pointer to the struct variable instead! studentptr: studenta: lastname: mark: 35

36 Passing a struct Pointer studentptr: void readrecord ( Student *studentptr ) /* De-reference pointer here. */ int main() Student studenta; readrecord( &(studenta) ); return 0; studenta: lastname: mark: 36

37 Passing a struct Pointer studentptr: studenta: To de-reference a pointer to a struct variable: Style 1: Use the * operator lastname: mark: void readrecord ( Student *studentptr ) printf("enter last name and mark: "); scanf("%s %f", (*studentptr).lastname, &((*studentptr).mark) ); marks4b.c 37

38 Passing a struct Pointer studentptr: To de-reference a pointer to a struct variable: Style 2: Use the -> operator studenta: lastname: mark: void readrecord ( Student *studentptr ) printf("enter last name and mark: "); scanf("%s %f", studentptr->lastname, &(studentptr->mark)); marks4b.c 38

39 Example: Pointers to Structs-1 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 struct StudentRec char lastname[maxlen]; float mark; ; typedef struct StudentRec Student; void readrecord ( Student *studentptr ) printf("enter last name and mark: "); scanf("%s %f", studentptr->lastname, &(studentptr->mark)); void printrecord ( Student *item ) printf("last name: %s\n", (*item).lastname); printf(" Mark: %.1f\n\n", (*item).mark); marks4c.c 39

40 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 Example: Pointers to Structs-1 (cont) struct StudentRec char lastname[maxlen]; float mark; ; typedef struct StudentRec Student; void readrecord ( Student *studentptr ) printf("enter last name and mark: "); scanf("%s %f", studentptr->lastname, &(studentptr->mark) ); void printrecord ( Student *item ) printf("last name: %s\n", (*item).lastname); printf(" Mark: %.1f\n\n", (*item).mark); marks4c.c 40

41 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 Example: Pointers to Structs-1 (cont) struct StudentRec char lastname[maxlen]; float mark; ; typedef struct StudentRec Student; void readrecord ( Student *studentptr ) printf("enter last name and mark: "); scanf("%s %f", studentptr->lastname, &(studentptr->mark) ); void printrecord ( Student *item ) printf("last name: %s\n", (*item).lastname); printf(" Mark: %.1f\n\n", (*item).mark); marks4c.c 41

42 int main() int count = 0; Student class[maxn]; int i; Example: Pointers to Structs-2 printf("how many students? "); scanf("%d", &count); if (count > MAXN) printf("not enough space.\n"); exit(1); for (i=0; i < count; i++) readrecord( &(class[i]) ); printf("\nclass list:\n\n"); for (i=0; i < count; i++) printrecord( &(class[i]) ); return 0; marks4c.c 42

Slides adopted from T. Ferguson Spring 2016

Slides adopted from T. Ferguson Spring 2016 CSE1311 Introduction to Programming for Science & Engineering Students Mostafa Parchami, Ph.D. Dept. of Comp. Science and Eng., Univ. of Texas at Arlington, USA Slides adopted from T. Ferguson Spring 2016

More information

Computer Programming Lecture 12 Pointers

Computer Programming Lecture 12 Pointers Computer Programming Lecture 2 Pointers Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering nukhet.ozbek@ege.edu.tr Topics Introduction to Pointers Pointers and

More information

Introduction to Computing Lecture 03: Basic input / output operations

Introduction to Computing Lecture 03: Basic input / output operations Introduction to Computing Lecture 03: Basic input / output operations Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering nukhet.ozbek@ege.edu.tr Topics Streams

More information

Computer Programming Lecture 13 Functions with Multiple Output Parameters

Computer Programming Lecture 13 Functions with Multiple Output Parameters Computer Programming Lecture 13 Functions with Multiple Output Parameters Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering nukhet.ozbek@ege.edu.tr Topics Functions

More information

Introduction to Computing Lecture 10 Arrays (Part 1)

Introduction to Computing Lecture 10 Arrays (Part 1) Introduction to Computing Lecture 10 Arrays (Part 1) Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical&Electronics Engineering nukhet.ozbek@ege.edu.tr 1 Topics Arrays Declaration Initialization

More information

Introduction to Computing Lecture 07: Repetition and Loop Statements (Part II)

Introduction to Computing Lecture 07: Repetition and Loop Statements (Part II) Introduction to Computing Lecture 07: Repetition and Loop Statements (Part II) Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering nukhet.ozbek@ege.edu.tr Topics

More information

Basic Data types in C Τι πρέπει να ξέρετε ήδη

Basic Data types in C Τι πρέπει να ξέρετε ήδη int char float double Basic Data types in C Τι πρέπει να ξέρετε ήδη και αν όχι, χρειάζεται να το μάθετε Variable declaration in C: Example: int x, y, z; type variables / instances Variable assignment:

More information

Computer Programming Lecture 14 Arrays (Part 2)

Computer Programming Lecture 14 Arrays (Part 2) Computer Programming Lecture 14 Arrays (Part 2) Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering nukhet.ozbek@ege.edu.tr 1 Topics The relationship between

More information

Chapter 7 Solved problems

Chapter 7 Solved problems Chapter 7 7.4, Section D 20. The coefficients of a polynomial function are stored in a single-dimensional array. Display its derivative. If the polynomial function is p(x) = a n x n + a n-1 x n-1 + + a

More information

AMCAT Automata Coding Sample Questions And Answers

AMCAT Automata Coding Sample Questions And Answers 1) Find the syntax error in the below code without modifying the logic. #include int main() float x = 1.1; switch (x) case 1: printf( Choice is 1 ); default: printf( Invalid choice ); return

More information

BSM540 Basics of C Language

BSM540 Basics of C Language BSM540 Basics of C Language Chapter 9: Functions I Prof. Manar Mohaisen Department of EEC Engineering Review of the Precedent Lecture Introduce the switch and goto statements Introduce the arrays in C

More information

CPE 101, reusing/mod slides from a UW course (used by permission) Lecture 5: Input and Output (I/O)

CPE 101, reusing/mod slides from a UW course (used by permission) Lecture 5: Input and Output (I/O) CPE 101, reusing/mod slides from a UW course (used by permission) Lecture 5: Input and Output (I/O) Overview (5) Topics Output: printf Input: scanf Basic format codes More on initializing variables 2000

More information

Principles of C and Memory Management

Principles of C and Memory Management COMP281 Lecture 9 Principles of C and Memory Management Dr Lei Shi Last Lecture Today Pointer to Array Pointer Arithmetic Pointer with Functions struct Storage classes typedef union String struct struct

More information

Darshan Institute of Engineering & Technology for Diploma Studies Unit 5

Darshan Institute of Engineering & Technology for Diploma Studies Unit 5 1 What is structure? How to declare a Structure? Explain with Example Structure is a collection of logically related data items of different data types grouped together under a single name. Structure is

More information

Memory Management. CSC215 Lecture

Memory Management. CSC215 Lecture Memory Management CSC215 Lecture Outline Static vs Dynamic Allocation Dynamic allocation functions malloc, realloc, calloc, free Implementation Common errors Static Allocation Allocation of memory at compile-time

More information

Lecture 02 Summary. C/Java Syntax 1/14/2009. Keywords Variable Declarations Data Types Operators Statements. Functions

Lecture 02 Summary. C/Java Syntax 1/14/2009. Keywords Variable Declarations Data Types Operators Statements. Functions Lecture 02 Summary C/Java Syntax Keywords Variable Declarations Data Types Operators Statements if, switch, while, do-while, for Functions 1 2 By the end of this lecture, you will be able to identify the

More information

C/Java Syntax. January 13, Slides by Mark Hancock (adapted from notes by Craig Schock)

C/Java Syntax. January 13, Slides by Mark Hancock (adapted from notes by Craig Schock) C/Java Syntax 1 Lecture 02 Summary Keywords Variable Declarations Data Types Operators Statements if, switch, while, do-while, for Functions 2 By the end of this lecture, you will be able to identify the

More information

C/Java Syntax. Lecture 02 Summary. Keywords Variable Declarations Data Types Operators Statements. Functions. if, switch, while, do-while, for

C/Java Syntax. Lecture 02 Summary. Keywords Variable Declarations Data Types Operators Statements. Functions. if, switch, while, do-while, for C/Java Syntax 1 Lecture 02 Summary Keywords Variable Declarations Data Types Operators Statements if, switch, while, do-while, for Functions 2 1 By the end of this lecture, you will be able to identify

More information

C Concepts - I/O. Lecture 19 COP 3014 Fall November 29, 2017

C Concepts - I/O. Lecture 19 COP 3014 Fall November 29, 2017 C Concepts - I/O Lecture 19 COP 3014 Fall 2017 November 29, 2017 C vs. C++: Some important differences C has been around since around 1970 (or before) C++ was based on the C language While C is not actually

More information

BSM540 Basics of C Language

BSM540 Basics of C Language BSM540 Basics of C Language Chapter 4: Character strings & formatted I/O Prof. Manar Mohaisen Department of EEC Engineering Review of the Precedent Lecture To explain the input/output functions printf()

More information

M.CS201 Programming language

M.CS201 Programming language Power Engineering School M.CS201 Programming language Lecture 14 Lecturer: Prof. Dr. T.Uranchimeg Agenda Ending Loops Early The break Statement The continue Statement Executing Operating System Commands

More information

ESc101: Pointers and Arrays

ESc101: Pointers and Arrays ESc101: Pointers and Arrays Instructor: Krithika Venkataramani Semester 2, 2011-2012 1 The content of some of these slides are from the lecture slides of Prof. Arnab Bhattacharya 2 1 Movie Theater Seat

More information

Language comparison. C has pointers. Java has references. C++ has pointers and references

Language comparison. C has pointers. Java has references. C++ has pointers and references Pointers CSE 2451 Language comparison C has pointers Java has references C++ has pointers and references Pointers Values of variables are stored in memory, at a particular location A location is identified

More information

Linked-List Basic Examples. A linked-list is Linear collection of self-referential class objects, called nodes Connected by pointer links

Linked-List Basic Examples. A linked-list is Linear collection of self-referential class objects, called nodes Connected by pointer links Linked-List Basic Examples A linked-list is Linear collection of self-referential class objects, called nodes Connected by pointer links Accessed via a pointer to the first node of the list Subsequent

More information

#include <stdio.h> int main() { char s[] = Hsjodi, *p; for (p = s + 5; p >= s; p--) --*p; puts(s); return 0;

#include <stdio.h> int main() { char s[] = Hsjodi, *p; for (p = s + 5; p >= s; p--) --*p; puts(s); return 0; 1. Short answer questions: (a) Compare the typical contents of a module s header file to the contents of a module s implementation file. Which of these files defines the interface between a module and

More information

Algorithms & Programming. Midterm Examination # 2. Student Name: Student ID Number: Duration of examination:

Algorithms & Programming. Midterm Examination # 2. Student Name: Student ID Number: Duration of examination: School of Computer Science 60-141-01 Algorithms & Programming Winter 2007 Midterm Examination # 2 Wednesday, March 21, 2007 Student Name: First Name Family Name Student ID Number: Duration of examination:

More information

Introduction to Computing Lecture 01: Introduction to C

Introduction to Computing Lecture 01: Introduction to C Introduction to Computing Lecture 01: Introduction to C Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical&Electronics Engineering ozbek.nukhet@gmail.com Topics Introduction to C language

More information

Structures in C. C allows you to declare a struct. Once you do so, you can create variables of this type. Here is the general syntax:

Structures in C. C allows you to declare a struct. Once you do so, you can create variables of this type. Here is the general syntax: Structures in C An array allows you to store related variables of the same type in the same essential structure. But what if you wanted to store related information in the same structure that was NOT of

More information

Class Information ANNOUCEMENTS

Class Information ANNOUCEMENTS Class Information ANNOUCEMENTS Third homework due TODAY at 11:59pm. Extension? First project has been posted, due Monday October 23, 11:59pm. Midterm exam: Friday, October 27, in class. Don t forget to

More information

Lesson #8. Structures Linked Lists Command Line Arguments

Lesson #8. Structures Linked Lists Command Line Arguments Lesson #8 Structures Linked Lists Command Line Arguments Introduction to Structures Suppose we want to represent an atomic element. It contains multiple features that are of different types. So a single

More information

The C language. Introductory course #1

The C language. Introductory course #1 The C language Introductory course #1 History of C Born at AT&T Bell Laboratory of USA in 1972. Written by Dennis Ritchie C language was created for designing the UNIX operating system Quickly adopted

More information

3.3 Structures. Department of CSE

3.3 Structures. Department of CSE 3.3 Structures 1 Department of CSE Objectives To give an introduction to Structures To clearly distinguish between Structures from Arrays To explain the scenarios which require Structures To illustrate

More information

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14 C introduction Variables Variables 1 / 14 Contents Variables Data types Variable I/O Variables 2 / 14 Usage Declaration: t y p e i d e n t i f i e r ; Assignment: i d e n t i f i e r = v a l u e ; Definition

More information

These problems are provided to you as a guide for practice. The questions cover important concepts covered in class.

These problems are provided to you as a guide for practice. The questions cover important concepts covered in class. Midterm Written Exam Practice Midterm will cover all concepts covered up to the midterm exam. Concepts of arrays, LL s, pointers (*,**,***), malloc, calloc, realloc, function pointers, Hash tables will

More information

Pointers. Part VI. 1) Introduction. 2) Declaring Pointer Variables. 3) Using Pointers. 4) Pointer Arithmetic. 5) Pointers and Arrays

Pointers. Part VI. 1) Introduction. 2) Declaring Pointer Variables. 3) Using Pointers. 4) Pointer Arithmetic. 5) Pointers and Arrays EE105: Software Engineering II Part 6 Pointers page 1 of 19 Part VI Pointers 1) Introduction 2) Declaring Pointer Variables 3) Using Pointers 4) Pointer Arithmetic 5) Pointers and Arrays 6) Pointers and

More information

EM108 Software Development for Engineers

EM108 Software Development for Engineers EE108 Section 6 Pointers page 1 of 20 EM108 Software Development for Engineers Section 6 - Pointers 1) Introduction 2) Declaring Pointer Variables 3) Using Pointers 4) Pointer Arithmetic 5) Pointers and

More information

M.CS201 Programming language

M.CS201 Programming language Power Engineering School M.CS201 Programming language Lecture 16 Lecturer: Prof. Dr. T.Uranchimeg Agenda Opening a File Errors with open files Writing and Reading File Data Formatted File Input Direct

More information

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 12, FALL 2012

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 12, FALL 2012 CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 12, FALL 2012 TOPICS TODAY Assembling & Linking Assembly Language Separate Compilation in C Scope and Lifetime LINKING IN ASSEMBLY

More information

.. Cal Poly CPE 101: Fundamentals of Computer Science I Alexander Dekhtyar..

.. Cal Poly CPE 101: Fundamentals of Computer Science I Alexander Dekhtyar.. .. Cal Poly CPE 101: Fundamentals of Computer Science I Alexander Dekhtyar.. A Simple Program. simple.c: Basics of C /* CPE 101 Fall 2008 */ /* Alex Dekhtyar */ /* A simple program */ /* This is a comment!

More information

Structures. Basics of Structures (6.1) EECS l Now struct point is a valid type. l Defining struct variables: struct point { int x; int y; };

Structures. Basics of Structures (6.1) EECS l Now struct point is a valid type. l Defining struct variables: struct point { int x; int y; }; Structures EECS 2031 25 September 2017 1 Basics of Structures (6.1) struct point { int x; int y; keyword struct introduces a structure declaration. point: structure tag x, y: members The same member names

More information

Introduction to Computer Programming Lecture 18 Binary Files

Introduction to Computer Programming Lecture 18 Binary Files Introduction to Computer Programming Lecture 18 Binary Files Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical&Electronics Engineering nukhet.ozbek@ege.edu.tr 1 RECALL: Text File Handling

More information

Features of C. Portable Procedural / Modular Structured Language Statically typed Middle level language

Features of C. Portable Procedural / Modular Structured Language Statically typed Middle level language 1 History C is a general-purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. C was originally first implemented on the DEC

More information

Dynamic memory allocation

Dynamic memory allocation Dynamic memory allocation outline Memory allocation functions Array allocation Matrix allocation Examples Memory allocation functions (#include ) malloc() Allocates a specified number of bytes

More information

Functions in C C Programming and Software Tools

Functions in C C Programming and Software Tools Functions in C C Programming and Software Tools N.C. State Department of Computer Science Functions in C Functions are also called subroutines or procedures One part of a program calls (or invokes the

More information

C Language Part 3. Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee

C Language Part 3. Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee C Language Part 3 Pointers (revisited) int i = 4, j = 6, *p = &i, *q = &j, *r; if (p == &i)...; if (p == (& i))...;... = **&p;... = *(*(& p));... = 9 * *p / *q + 8;... = (((9*(*p)))/(*q)) + 8; *(r = &i)

More information

IS12 - Introduction to Programming Lecture 12: Loops and Tables. Relational Operators > < >= <=

IS12 - Introduction to Programming Lecture 12: Loops and Tables. Relational Operators > < >= <= IS12 - Introduction to Programming Lecture 12: Loops and Tables Peter Brusilovsky http://www2.sis.pitt.edu/~peterb/0012-051/ Relational Operators > < >= 3

More information

Functions in C C Programming and Software Tools. N.C. State Department of Computer Science

Functions in C C Programming and Software Tools. N.C. State Department of Computer Science Functions in C C Programming and Software Tools N.C. State Department of Computer Science Functions in C Functions are also called subroutines or procedures One part of a program calls (or invokes the

More information

Lecture 12 - Structures

Lecture 12 - Structures Lecture 12 - Structures 1 Outline Introduction Structure Definitions and Declarations Initializing Structures Operations on Structures Members Structures as Functions Parameters Array of Structures 2 Introduction

More information

Introduction to Computing Lecture 09: Functions (Part II)

Introduction to Computing Lecture 09: Functions (Part II) Introduction to Computing Lecture 09: Functions (Part II) Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering nukhet.ozbek@ege.edu.tr Topics Structured Programming

More information

C Structures Self-referencing Card Shuffling Unions. C Structures CS Prof. Jonathan Ventura. Prof. Jonathan Ventura C Structures

C Structures Self-referencing Card Shuffling Unions. C Structures CS Prof. Jonathan Ventura. Prof. Jonathan Ventura C Structures Self-referencing Card Shuffling Unions CS 2060 Self-referencing Card Shuffling Unions : struct C enables us to aggregate diverse data types into a structure: struct Employee { char first_name[20]; char

More information

Fundamental of Programming (C)

Fundamental of Programming (C) Borrowed from lecturer notes by Omid Jafarinezhad Fundamental of Programming (C) Lecturer: Vahid Khodabakhshi Lecture 3 Constants, Variables, Data Types, And Operations Department of Computer Engineering

More information

Unit 8. Structures and Unions. School of Science and Technology INTRODUCTION

Unit 8. Structures and Unions. School of Science and Technology INTRODUCTION INTRODUCTION Structures and Unions Unit 8 In the previous unit 7 we have studied about C functions and their declarations, definitions, initializations. Also we have learned importance of local and global

More information

C Programming Language: C ADTs, 2d Dynamic Allocation. Math 230 Assembly Language Programming (Computer Organization) Thursday Jan 31, 2008

C Programming Language: C ADTs, 2d Dynamic Allocation. Math 230 Assembly Language Programming (Computer Organization) Thursday Jan 31, 2008 C Programming Language: C ADTs, 2d Dynamic Allocation Math 230 Assembly Language Programming (Computer Organization) Thursday Jan 31, 2008 Overview Row major format 1 and 2-d dynamic allocation struct

More information

19-Nov CSCI 2132 Software Development Lecture 29: Linked Lists. Faculty of Computer Science, Dalhousie University Heap (Free Store)

19-Nov CSCI 2132 Software Development Lecture 29: Linked Lists. Faculty of Computer Science, Dalhousie University Heap (Free Store) Lecture 29 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lecture 29: Linked Lists 19-Nov-2018 Location: Chemistry 125 Time: 12:35 13:25 Instructor: Vlado Keselj Previous

More information

10/20/2015. Midterm Topic Review. Pointer Basics. C Language III. CMSC 313 Sections 01, 02. Adapted from Richard Chang, CMSC 313 Spring 2013

10/20/2015. Midterm Topic Review. Pointer Basics. C Language III. CMSC 313 Sections 01, 02. Adapted from Richard Chang, CMSC 313 Spring 2013 Midterm Topic Review Pointer Basics C Language III CMSC 313 Sections 01, 02 1 What is a pointer? Why Pointers? Pointer Caution pointer = memory address + type A pointer can contain the memory address of

More information

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 11: Memory, Files and Bitoperations (yaseminb@kth.se) Overview Overview Lecture 11: Memory, Files and Bit operations Main function; reading and writing Bitwise Operations Lecture 11: Memory, Files

More information

Introduction to Computing Lecture 05: Selection (continued)

Introduction to Computing Lecture 05: Selection (continued) Introduction to Computing Lecture 05: Selection (continued) Assist.Prof.Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering nukhet.ozbek@ege.edu.tr Topics Type int as Boolean

More information

At the end of this module, the student should be able to:

At the end of this module, the student should be able to: INTRODUCTION One feature of the C language which can t be found in some other languages is the ability to manipulate pointers. Simply stated, pointers are variables that store memory addresses. This is

More information

Assignment 6. Q1. Create a database of students using structures, where in each entry of the database will have the following fields:

Assignment 6. Q1. Create a database of students using structures, where in each entry of the database will have the following fields: Assignment 6 Q1. Create a database of students using structures, where in each entry of the database will have the following fields: 1. a name, which is a string with at most 128 characters 2. their marks

More information

Flowchart, Types, and Values

Flowchart, Types, and Values Flowchart, Types, and Values Course Number CLO : 1 Week : 1-3 : FEH1H3 CLO#1 Student have the knowledge to create algorithm and iteration Know the fundamental of computer system Understand the components

More information

Procedural programming with C

Procedural programming with C Procedural programming with C Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 77 Functions Similarly to its mathematical

More information

Example: Structure, Union. Syntax. of Structure: struct book { char title[100]; char author[50] ]; float price; }; void main( )

Example: Structure, Union. Syntax. of Structure: struct book { char title[100]; char author[50] ]; float price; }; void main( ) Computer Programming and Utilization ( CPU) 110003 Structure, Union 1 What is structure? How to declare a Structure? Explain with Example Structure is a collection of logically related data items of different

More information

공학프로그래밍언어 (PROGRAMMING LANGUAGE FOR ENGINEERS) -STRUCTURE- SPRING 2015 SEON-JU AHN, CNU EE

공학프로그래밍언어 (PROGRAMMING LANGUAGE FOR ENGINEERS) -STRUCTURE- SPRING 2015 SEON-JU AHN, CNU EE 공학프로그래밍언어 (PROGRAMMING LANGUAGE FOR ENGINEERS) -STRUCTURE- SPRING 2015 SEON-JU AHN, CNU EE STRUCTURE Structures are collections of related variables under one name. Structures may contain variables of

More information

C BOOTCAMP DAY 2. CS3600, Northeastern University. Alan Mislove. Slides adapted from Anandha Gopalan s CS132 course at Univ.

C BOOTCAMP DAY 2. CS3600, Northeastern University. Alan Mislove. Slides adapted from Anandha Gopalan s CS132 course at Univ. C BOOTCAMP DAY 2 CS3600, Northeastern University Slides adapted from Anandha Gopalan s CS132 course at Univ. of Pittsburgh Pointers 2 Pointers Pointers are an address in memory Includes variable addresses,

More information

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, SPRING 2013

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, SPRING 2013 CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 13, SPRING 2013 TOPICS TODAY Reminder: MIDTERM EXAM on THURSDAY Pointer Basics Pointers & Arrays Pointers & Strings Pointers & Structs

More information

MA 511: Computer Programming Lecture 2: Partha Sarathi Mandal

MA 511: Computer Programming Lecture 2: Partha Sarathi Mandal MA 511: Computer Programming Lecture 2: http://www.iitg.ernet.in/psm/indexing_ma511/y10/index.html Partha Sarathi Mandal psm@iitg.ernet.ac.in Dept. of Mathematics, IIT Guwahati Semester 1, 2010-11 Largest

More information

Programming Language B

Programming Language B Programming Language B Takako Nemoto (JAIST) 7 January Takako Nemoto (JAIST) 7 January 1 / 13 Usage of pointers #include int sato = 178; int sanaka = 175; int masaki = 179; int *isako, *hiroko;

More information

Midterm Examination # 2 Wednesday, March 19, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER:

Midterm Examination # 2 Wednesday, March 19, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER: Page 1 of 7 School of Computer Science 60-141-01 Introduction to Algorithms and Programming Winter 2014 Midterm Examination # 2 Wednesday, March 19, 2014 ANSWERS Duration of examination: 75 minutes STUDENT

More information

IS12 - Introduction to Programming. Data Types and Variables

IS12 - Introduction to Programming. Data Types and Variables IS12 - Introduction to Programming Lecture 9: Variables Peter Brusilovsky http://www2.sis.pitt.edu/~peterb/0012-072/ Data Types and Variables 1 Three things to do with a variable Declare a variable int

More information

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER:

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER: Page 1 of 8 School of Computer Science 60-141-01 Introduction to Algorithms and Programming Winter 2015 Midterm Examination # 2 Wednesday, March 18, 2015 ANSWERS Duration of examination: 75 minutes STUDENT

More information

Subject: Fundamental of Computer Programming 2068

Subject: Fundamental of Computer Programming 2068 Subject: Fundamental of Computer Programming 2068 1 Write an algorithm and flowchart to determine whether a given integer is odd or even and explain it. Algorithm Step 1: Start Step 2: Read a Step 3: Find

More information

9/5/2018. Overview. The C Programming Language. Transitioning to C from Python. Why C? Hello, world! Programming in C

9/5/2018. Overview. The C Programming Language. Transitioning to C from Python. Why C? Hello, world! Programming in C Overview The C Programming Language (with material from Dr. Bin Ren, William & Mary Computer Science) Motivation Hello, world! Basic Data Types Variables Arithmetic Operators Relational Operators Assignments

More information

SEQUENTIAL STRUCTURE. Erkut ERDEM Hacettepe University October 2010

SEQUENTIAL STRUCTURE. Erkut ERDEM Hacettepe University October 2010 SEQUENTIAL STRUCTURE Erkut ERDEM Hacettepe University October 2010 History of C C Developed by by Denis M. Ritchie at AT&T Bell Labs from two previous programming languages, BCPL and B Used to develop

More information

Worksheet 4 Basic Input functions and Mathematical Operators

Worksheet 4 Basic Input functions and Mathematical Operators Name: Student ID: Date: Worksheet 4 Basic Input functions and Mathematical Operators Objectives After completing this worksheet, you should be able to Use an input function in C Declare variables with

More information

IPC144 - Introduction to Strings. array of characters is an array, each element of which has a character data type.

IPC144 - Introduction to Strings. array of characters is an array, each element of which has a character data type. IPC144 - Introduction to Strings Agenda: 1 Review/Questions 2 Array of characters 3 Character Strings 4 Try it! 5 Homework Array of Characters array of characters is an array, each element of which has

More information

Bil 104 Intiroduction To Scientific And Engineering Computing. Lecture 7

Bil 104 Intiroduction To Scientific And Engineering Computing. Lecture 7 Strings and Clases BIL104E: Introduction to Scientific and Engineering Computing Lecture 7 Manipulating Strings Scope and Storage Classes in C Strings Declaring a string The length of a string Copying

More information

The C Programming Language. (with material from Dr. Bin Ren, William & Mary Computer Science)

The C Programming Language. (with material from Dr. Bin Ren, William & Mary Computer Science) The C Programming Language (with material from Dr. Bin Ren, William & Mary Computer Science) 1 Overview Motivation Hello, world! Basic Data Types Variables Arithmetic Operators Relational Operators Assignments

More information

Computer Systems Lecture 9

Computer Systems Lecture 9 Computer Systems Lecture 9 CPU Registers in x86 CPU status flags EFLAG: The Flag register holds the CPU status flags The status flags are separate bits in EFLAG where information on important conditions

More information

About Codefrux While the current trends around the world are based on the internet, mobile and its applications, we try to make the most out of it. As for us, we are a well established IT professionals

More information

Abstract Data Types. Lecture 05 Summary. Abstract Data Types Structures in C 1/26/2009. Slides by Mark Hancock (adapted from notes by Craig Schock)

Abstract Data Types. Lecture 05 Summary. Abstract Data Types Structures in C 1/26/2009. Slides by Mark Hancock (adapted from notes by Craig Schock) Abstract Data Types 1 Lecture 05 Summary Abstract Data Types Structures in C 2 1 By the end of this lecture, you will be able to describe the main components of an abstract data type. You will also be

More information

CSE101-Lec#18. Multidimensional Arrays Application of arrays. Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU. LPU CSE101 C Programming

CSE101-Lec#18. Multidimensional Arrays Application of arrays. Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU. LPU CSE101 C Programming CSE101-Lec#18 Multidimensional Arrays Application of arrays Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU Outline Defining and processing 1D array 2D array Applications of arrays 1-D array A

More information

Lecture 2: C Programming Basic

Lecture 2: C Programming Basic ECE342 Introduction to Embedded Systems Lecture 2: C Programming Basic Ying Tang Electrical and Computer Engineering Rowan University 1 Facts about C C was developed in 1972 in order to write the UNIX

More information

Lecture 9 - C Functions

Lecture 9 - C Functions ECET 264 C Programming Language with Applications Lecture 9 C Functions Paul I. Lin Professor of Electrical & Computer Engineering Technology http://www.etcs.ipfw.edu/~lin Lecture 9- Prof. Paul I. Lin

More information

The syntax of structure declaration is. struct structure_name { type element 1; type element 2; type element n;

The syntax of structure declaration is. struct structure_name { type element 1; type element 2; type element n; Structure A structure is a user defined data type. We know that arrays can be used to represent a group of data items that belong to the same type, such as int or float. However we cannot use an array

More information

Technical Questions. Q 1) What are the key features in C programming language?

Technical Questions. Q 1) What are the key features in C programming language? Technical Questions Q 1) What are the key features in C programming language? Portability Platform independent language. Modularity Possibility to break down large programs into small modules. Flexibility

More information

Introduction to C. Systems Programming Concepts

Introduction to C. Systems Programming Concepts Introduction to C Systems Programming Concepts Introduction to C A simple C Program Variable Declarations printf ( ) Compiling and Running a C Program Sizeof Program #include What is True in C? if example

More information

Basic Assignment and Arithmetic Operators

Basic Assignment and Arithmetic Operators C Programming 1 Basic Assignment and Arithmetic Operators C Programming 2 Assignment Operator = int count ; count = 10 ; The first line declares the variable count. In the second line an assignment operator

More information

C: How to Program. Week /Mar/05

C: How to Program. Week /Mar/05 1 C: How to Program Week 2 2007/Mar/05 Chapter 2 - Introduction to C Programming 2 Outline 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers

More information

Variables in C. Variables in C. What Are Variables in C? CMSC 104, Fall 2012 John Y. Park

Variables in C. Variables in C. What Are Variables in C? CMSC 104, Fall 2012 John Y. Park Variables in C CMSC 104, Fall 2012 John Y. Park 1 Variables in C Topics Naming Variables Declaring Variables Using Variables The Assignment Statement 2 What Are Variables in C? Variables in C have the

More information

CSE101-lec#12. Designing Structured Programs Introduction to Functions. Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU

CSE101-lec#12. Designing Structured Programs Introduction to Functions. Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU CSE101-lec#12 Designing Structured Programs Introduction to Functions Created By: Amanpreet Kaur & Sanjeev Kumar SME (CSE) LPU Outline Designing structured programs in C: Counter-controlled repetition

More information

Laboratory 2: Programming Basics and Variables. Lecture notes: 1. A quick review of hello_comment.c 2. Some useful information

Laboratory 2: Programming Basics and Variables. Lecture notes: 1. A quick review of hello_comment.c 2. Some useful information Laboratory 2: Programming Basics and Variables Lecture notes: 1. A quick review of hello_comment.c 2. Some useful information 3. Comment: a. name your program with extension.c b. use o option to specify

More information

3/22/2016. Pointer Basics. What is a pointer? C Language III. CMSC 313 Sections 01, 02. pointer = memory address + type

3/22/2016. Pointer Basics. What is a pointer? C Language III. CMSC 313 Sections 01, 02. pointer = memory address + type Pointer Basics What is a pointer? pointer = memory address + type C Language III CMSC 313 Sections 01, 02 A pointer can contain the memory address of any variable type A primitive (int, char, float) An

More information

Array Initialization

Array Initialization Array Initialization Array declarations can specify initializations for the elements of the array: int primes[10] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ; initializes primes[0] to 2, primes[1] to 3, primes[2]

More information

Display Input and Output (I/O)

Display Input and Output (I/O) 2000 UW CSE CSE / ENGR 142 Programming I isplay Input and Output (I/O) -1 Writing Useful Programs It s hard to write useful programs using only variables and assignment statements Even our Fahrenheit to

More information

Introduction to the C Programming Language

Introduction to the C Programming Language Introduction to the C Programming Language Michael Griffiths Corporate Information and Computing Services The University of Sheffield Email m.griffiths@sheffield.ac.uk Course Outline Part 1 Introduction

More information

Compiling and Running a C Program in Unix

Compiling and Running a C Program in Unix CPSC 211 Data Structures & Implementations (c) Texas A&M University [ 95 ] Compiling and Running a C Program in Unix Simple scenario in which your program is in a single file: Suppose you want to name

More information

Lecture 6 Records (structs)

Lecture 6 Records (structs) Lecture 6 Records (structs) In this Lecture, you will: Learn about records (structs) Examine various operations on a struct Explore ways to manipulate data using a struct Learn about the relationship between

More information

Bangalore South Campus

Bangalore South Campus USN: 1 P E PESIT Bangalore South Campus Hosur road, 1km before ElectronicCity, Bengaluru -100 Department of Basic Science and Humanities INTERNAL ASSESSMENT TEST 3 Date: 22/11/2017 Time:11:30am- 1.00 pm

More information

Self-referential Structures and Linked List. Programming and Data Structure 1

Self-referential Structures and Linked List. Programming and Data Structure 1 Self-referential Structures and Linked List Programming and Data Structure 1 Linked List :: Basic Concepts A list refers to a set of items organized sequentially. An array is an example of a list. The

More information

F4104 ALGORITHM & DATA STRUCTURE

F4104 ALGORITHM & DATA STRUCTURE F4104 ALGORITHM & DATA STRUCTURE.:: UNIT 1::. INTRODUCTION TO ALGORITHM & DATA STRUCTURES 1.1 ALGORITHM CONCEPTS ALGORITHM Algorithm: A clearly specified finite set of instructions a computer follows to

More information