0% found this document useful (0 votes)
1 views

C___11 (1)

This document is an introductory lecture on the C programming language, covering its history, standardization, and basic programming concepts. It includes examples of C syntax, variable usage, input/output operations, and control structures like if statements. The lecture also discusses the differences between C and later programming languages such as C++ and Java.

Uploaded by

Dipanshu Dhote
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

C___11 (1)

This document is an introductory lecture on the C programming language, covering its history, standardization, and basic programming concepts. It includes examples of C syntax, variable usage, input/output operations, and control structures like if statements. The lecture also discusses the differences between C and later programming languages such as C++ and Java.

Uploaded by

Dipanshu Dhote
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

CSC 270 – Survey of

Programming Languages
C Lecture 1 : Getting Started: in C

Modified from Dr. Robert Siegfried’s Presentation

Objective
• Intro to C
• Tools we will use
• Program file structure
• Variables
• Read from screen and print to screen
• Decisions (If)
C Orientation
• Created in 1972 to write operating systems (Unix
in particular)
– By Dennis Ritchie
– Bell Labs
• Evolved from B
• Can be portable to other hardware (with careful
design – use Plauger’s The Standard C Library
book)
• Built for performance and memory management –
operating systems, embedded systems, real-time
systems, communication systems

C Standardization
• 1989 ANSI and ISO -> Standard C
• 1999 C99
• 2011 C11

• Don’t get thrown when you lookup


information on websites and find conflicts
based upon standards
Later Languages
• 1979 C++ by Bjarn Stroustrup also at Bell
– Object orientation
• 1991 Java by Sun
– Partial compile to java bytecode: virtual
machine code
– Write once, run anywhere
– Memory manager – garbage collection
– Many JVMs written in C / C++

A First Program
makes input
and output available
#include <stdio.h>
to us
header
int main(void)
{
printf("This is my first C program.\n");
return(0);
}

open and close braces mark statements


the beginning and end
A First Program – What Does It Do?
printf("This is my first C program.\n");
return(0);

Prints the message


This is my first C program.

Ends the program Ends the line

Java Reminder
Program C Java

#include<stdio.h> public class HelloWorld {

public static void main(String[]


int main(void) {
args) {
hello, world
printf("Hello\n"); System.out.println("Hello");

return 0; }
} }
C Program Phases
• Editor - code by programmer
• Compiling using gcc:
– Preprocess – expand the programmer’s code
– Compiler – create machine code for each file
– Linker – links with libraries and all compiled
objects to make executable
• Running the executable:
– Loader – puts the program in memory to run it
– CPU – runs the program instructions

Copyright © Pearson, Inc. 2013. All


Rights Reserved.
Copyright © Pearson, Inc. 2013. All
Rights Reserved.

Run First Program


• Write in notepad++
• Transfer with Filezilla
• Connect to panther as terminal (putty) using
SSH (Secure Shell)
• More filename to see the file
• gcc filename -o filename without c -g (ex:
gcc hello.c -o hello -g )
• ./hello
Using variables
#include <stdio.h>
int main(void)
{
int sum, value1, value2, value3;
float average;
value1 = 2;
value2 = 4;
value3 = 6;
sum = 2 + 4 + 6;
average = sum / 3;
printf("The average of %d , %d, %d is %f\n",
value1, value2, value3, average);
return(0);
}
Print a float value from the
rest of the parameter list

Variables and Identifiers


• Variables have names – we call these names identifiers.
• An identifier must begin with a letter or an underscore _
• C is case sensitive upper case (capital) or lower case letters
are considered different characters. Average, average
and AVERAGE are three different identifiers.
• Numbers can also appear after the first character.
• However, C only considers the first 31 (external
identifiers) or first 63 (internal identifiers) significant.
• Identifiers cannot be reserved words (special words like
int, main, etc.)
User Input
• Let’s rewrite the average program so it
can find the average any 3 numbers we
try:
• We now need to:
1. Find our three values
2. Add the values
3. Divide the sum by 3
4. Print the result

Average3.c
#include <stdio.h>

int main(void)
{
int value1, value2, value3;
float sum, average;

printf("What is the first value? ");


scanf("%d", &value1);
Read The address of variable value1
printf("What is the second value? ");
scanf("%d", &value2);

Indicates that we are


reading an integer
printf("What is the third value? ");
scanf("%d", &value3);
scanf needs the &
sum = value1 + value2 + value3; before the identifier
average = sum / 3;

printf("The average of %d , %d, %d is


%f\n", value1, value2, value3, average);
return(0);
}

Scanf Conversion Characters


• https://wpollock.com/CPlus/PrintfRef.htm#
scanfConv
Doubles on our machine are read with a lf.
(A double is a long float.)
Formatting %d and %f
• The specifiers %d and %f allow a programmer to
specify how many spaces a number will occupy
and how many decimal places will be used.
• %nd will use at least n spaces to display the
integer value in decimal (base 10) format.
• %w.nf will use at least w spaces to display the
value and will have exactly n decimal places.
• Example:
– printf("The average of %2d , %2d,
%2d is %5.2f\n", value1, value2,
value3, average);

Changing the width


Number Formatting Print as:
%2d
182 182
%3d
182 182
%5d
182 ``182
%7d
182 `’’`182
%4d
-182 -182
%5d
-182 `-182
%7d
-182 ```-182
Changing the width (continued)
Number Formatting Print as:
23 %1d 23
23 %2d 23
23 %6d ….23
23 %8d ……23
11023 %4d 11023
11023 %6d .11023
-11023 %6d -11023
-11023 %10d ….-11023

Changing The Precision


Number Formatting Prints as:
2.718281828 %8.5f `2.71828
2.718281828 %8.3f ```2.718
2.718281828 %8.2f ````2.72
2.718281828 %8.0f ````````3
2.718281828 %13.11f 2.71828182800
2.718281828 %13.12f 2.718281828000
Average – add comments
#include <stdio.h>
/*
* This program calculates average pay
*/
int main(void)
{
int value1, value2, value3;
float sum, average;
string
// now get the first value
;

Character Data
• All of our programs so far have used
variables to store numbers, not words.
• We can store one or more characters by
writing:
char x, s[10];
– x can hold one and only one character
– s can hold up to nine characters (reserving 1
for ending null)
• For now, we use character data for input
and output only.
A program that uses a character variable
#include <stdio.h>

/* A very polite program that greets you by name */


int main(void)
{
char name[25];

/* Ask the user his/her name */


printf("What is your name ? ");
scanf("%s", name);

/* Greet the user */


printf("Glad to meet you, %s\n.", name);
return(0);
}

Features so far
• Include
• Variable types: int, float, char
• Read using scanf
– requires & for address of variable being read
• Print using printf
• Format strings: %f (float), %d (int), %u
(unsigned int), %c (char), %s (character
array)
• Comments /*.. */ or //
if and if-else and if-else if - else
If (boolean_expression 1)
{ /statements }
else if ( boolean_expression 2)
{ /* statements */ }
else if ( boolean_expression 3)
{ /* statements */ }
else
{ /* statements */ }

IsItNeg.c – illustrate if
#include <stdio.h>
// Tell a user if a number is negative
int main(void)
{ float number;
/* Ask the user for a number */
printf("Please enter a number ? ");
scanf("%f", &number);
// Print whether the number is negative or not
if (number < 0){
printf("%f is a negative number\n", number); }
else {
printf("%f is NOT a negative number\n", number); }
return(0); }
Relational operators
Operator Meaning Example
== equals x == y
!= is not equal to 1 != 0
> greater than x+1 > y
< less than x-1 < 2*x
>= greater than or x+1 >= 0
equal to
<= less than or equal -x +7 <= 10
to

Integer Division

• Our compound interest program prints the


values for every year where every ten or
twenty years would be good enough.
• What we really want to print the results
only if the year is ends in a 5. (The
remainder from division by 10 is 5).
Integer Division Results
8 / 3 = 2 8 % 3 = 2
2 / 3 = 0 2 % 3 = 2
49 / 3 = 16 49 % 3 = 1
49 / 7 = 7 49 % 7 = 0
-8 / 3 = -2 -8 % 3 = -2
-2 / 3 = 0 -2 % 3 = -2
-2 / -3 = 0 -2 % -3 = -2
2 / -3 = 0 2 %-3 = 2
-49 / 3 = -16 -49 % 3 = -1

Choosing Data Types


• Sizes implementation dependent in limits.h
– int -2147483648 to 2147483647
– short -32768 to 32767
– long -9223372036854775808 to
9223372036854775807
– Float 1.17x10-38 to 3.4 * 1038
• Keyword unsigned starts at 0 but goes
higher
Declaring Constants
•There are two ways of defining constants in C: using
#define and const.
•#define is a compiler preprocessor which replaces each
occurrence of the constant's name with its value:
•The general form of the constant declaration is:
#define ConstantName ConstantValue

•Let's take a look at a few examples:


#define withholding_rate 0.8
#define prompt 'y'
#define answer "yes"
#define maxpeople 15
#define inchperft 12
#define speed_limit 55

Declaring Constants
•The general form of the constant declaration is:
const datatype ConstantName =
ConstantValue,
AnotherConstantName =
AnotherConstantValue;

•Let's take a look at a few examples of constants:


const float withholding_rate = 0.8;
const char prompt = ‘y‘,
answer[] = “yes”;
const int maxpeople = 15,
inchperft = 12;
speed_limit = 55;

You might also like