System programming involves designing and implementing system programs like operating systems, compilers, linkers, and loaders that allow user programs to run efficiently on a computer system. A key part of system programming is developing system software like operating systems, assemblers, compilers, and debuggers. An operating system acts as an interface between the user and computer hardware, managing processes, memory, devices, and files. Assemblers and compilers translate programs into machine-readable code. Loaders place object code into memory for execution. System programming optimizes computer system performance and resource utilization.
System programming involves designing and implementing system programs that assist in the execution of general user programs. This includes operating systems, compilers, assemblers, linkers, and debuggers. The document discusses what system and programming are, types of software, system programs, and components of system programming like interpreters, assemblers, compilers, macros, and operating systems. It also explains the functions of operating systems and types of translators like assemblers, compilers, cross assemblers, cross compilers, and interpreters. Loaders, macro processors, linking, and formal systems are also defined. Finally, the document discusses two-pass assemblers, specifying the problem, data structures, and general design procedure.
The document provides an overview of problem solving and C programming at a basic knowledge level. It covers various topics including introduction to problem solving, programming languages, introduction to C programming, selection structures, arrays and strings, pointers, functions, structures and unions, and files. The objective is to understand problem solving concepts, appreciate program design, understand C programming elements, and write effective C programs. It discusses steps in program development, algorithms, modular design, coding, documentation, compilation and more.
Programming requirements for beginning in software engineering.pptxTeddyDaka
This document provides an introduction to algorithms and programming. It begins by defining what a computer is and its basic components. It then discusses why computers are used and the need for programming. The document outlines the different types of programming languages and defines key terms like data, information, knowledge, programs, and programmers. It describes the basic steps involved in programming like requirements, analysis, design, testing, and documentation. Finally, it introduces algorithms and the common tools used to represent them, flowcharts and pseudocode, describing the basic symbols and syntax used for each.
أساسيات البرمجة - شرح بإستخدام لغة السى بلس بلس - C++
https://www.youtube.com/watch?v=Fr6wJ5_Hok0&list=PL1DUmTEdeA6IUD9Gt5rZlQfbZyAWXd-oD
The document provides an introduction to C programming, including algorithms and flowcharts, computer systems and software, and creating and running programs in C. It discusses algorithm development using pseudocode and flowcharts, the components of computer hardware and software, and the process of compiling, linking, and executing C programs. Example algorithms and programs are provided to illustrate various concepts like decision making and iteration. An overview of computing environments like personal, time-sharing, client-server and distributed computing is also presented.
C is a general-purpose programming language developed in the 1970s. It combines high-level language features with low-level language efficiency and flexibility. C programs are portable, meaning they can run on many different computer systems. C laid the foundation for many other popular languages by providing core functionality like functions, arrays, structures, and pointers in a simple syntax that is efficient for systems programming tasks.
The document provides an introduction to programming and problem solving using computers. It discusses the following key points:
- Problem solving involves determining the inputs, outputs, and steps to solve a problem. Computers can be programmed to solve problems more quickly if they involve extensive inputs/outputs or complex/time-consuming methods.
- The software development process includes requirements specification, analysis, design, implementation, testing, and documentation. Algorithms using pseudocode or flowcharts are designed to solve problems.
- Programming languages have evolved from low-level machine languages to high-level languages. Earlier generations like assembly language were more machine-oriented while modern languages are more portable, problem-oriented, and easier for humans to read and write
The document provides an overview of programming concepts including computer systems, programming languages, algorithms, flowcharts, and the C programming language. It discusses the components of a computer system including hardware and software. It describes different types of programming languages from machine languages to high-level languages. It explains algorithms, properties of algorithms, and provides examples. It also discusses flowcharts for representing algorithms graphically and the steps to create, compile, and execute a C program.
The document provides an introduction to computer programming. It discusses what a computer is and its basic parts including hardware and software. It describes the internal and external hardware components. It also explains different types of programming languages from low-level to high-level languages. The document then discusses programming paradigms like procedural, structured, and object-oriented programming. It introduces concepts like algorithms, flowcharts, and the system development life cycle which involves phases from feasibility study to implementation and maintenance.
This document provides an overview of computers and programming languages. It discusses the evolution of computers from mainframes to personal computers. It also examines the hardware and software components of a computer system, including the CPU, memory, storage, inputs, outputs, and operating system software. The document then explores the evolution of programming languages from machine language to assembly language to high-level languages. It describes how a high-level language program is compiled and executed. Finally, it discusses problem-solving techniques, structured programming, and object-oriented programming.
Concept of Problem Solving, Introduction to Algorithms, Characteristics of Algorithms, Introduction to Data Structure, Data Structure Classification (Linear and Non-linear, Static and Dynamic, Persistent and Ephemeral data structures), Time complexity and Space complexity, Asymptotic Notation - The Big-O, Omega and Theta notation, Algorithmic upper bounds, lower bounds, Best, Worst and Average case analysis of an Algorithm, Abstract Data Types (ADT)
This document provides an introduction to programming languages and Python. It discusses what a program is, different categories of software, and types of programming languages including machine language, assembly language, and high-level languages. It also covers programming paradigms like imperative, logical, functional, and object-oriented. The document outlines the software development life cycle and describes key areas where Python is commonly used like academia, scientific tools, machine learning, and web development.
Computer programs contain instructions that tell computers what to do. Programs are written using programming languages as computers only understand machine code. There are different types of programming languages including machine language, assembly language, and high-level languages. High-level languages are easier for humans to read but must be compiled into machine code for computers to execute. Programming involves defining a problem, describing inputs and outputs, developing an algorithmic solution, and testing the program.
Java developer trainee implementation and importiamluqman0403
The document discusses different types of software including standalone apps, client/server apps, and web applications; it also defines key terms like program, software, and describes the different layers of web applications including the presentation, application, and data layers.
This document is the first chapter of an introduction to programming with C++ textbook. It discusses the basics of programming including the roles of programmers, history of programming languages, and basic control structures used in algorithms. Key points:
- Programmers write step-by-step instructions called programs to tell computers how to perform tasks. Popular languages include C++, C#, Java.
- Early languages included machine code using 1s and 0s and assembly languages using mnemonics. Higher-level languages like C++ allow English-like instructions.
- Programs use three basic control structures - sequence, selection, and repetition. Sequence processes instructions in order. Selection makes decisions. Repetition repeats steps until a condition
This document provides an introduction to compilers. It discusses how compilers bridge the gap between high-level programming languages that are easier for humans to write in and machine languages that computers can actually execute. It describes the various phases of compilation like lexical analysis, syntax analysis, semantic analysis, code generation, and optimization. It also compares compilers to interpreters and discusses different types of translators like compilers, interpreters, and assemblers.
Scripting experts from Inductive Automation cover general best practices that will help you add flexibility and customization to HMI, SCADA, IIoT, and other industrial applications. Some specific tips about using scripting in the Ignition platform will be included as well.
In this webinar, learn more about:
• Common scripting pitfalls and how to avoid them
• The best programming languages to use
• Things to consider before using scripting
• How scripting environments work
• Scripting timesavers
• And more
C is a general-purpose programming language developed in the 1970s. It produces very fast executable code and is widely used for operating systems, compilers, and many other applications. Some key reasons for its popularity include its portability, ability to access hardware directly, and large existing code base. The document provides an overview of C's history, why it is still useful today, basic C program structure, and other programming concepts like tokens, keywords, identifiers, and constants.
This document provides summaries of different types of computer software and software development models.
It begins by defining system software and application software. System software includes operating systems, compilers, loaders, linkers, and interpreters. Application software includes programs like word processors, spreadsheets, databases, and presentations that do real work for users.
It then summarizes several software development models: the waterfall model which progresses in linear phases; structured evolutionary prototyping which uses iterative prototyping and user feedback; and the spiral model which incorporates risk analysis into iterative cycles similar to waterfall.
Scripting experts from Inductive Automation cover general best practices that will help you add flexibility and customization to HMI, SCADA, IIoT, and other industrial applications. Some specific tips about using scripting in the Ignition platform will be included as well.
In this webinar, learn more about:
• Common scripting pitfalls and how to avoid them
• The best programming languages to use
• Things to consider before using scripting
• How scripting environments work
• Scripting timesavers
• And more
The document provides an introduction to programming and problem solving using computers. It discusses the following key points:
- Problem solving involves determining the inputs, outputs, and steps to solve a problem. Computers can be programmed to solve problems more quickly if they involve extensive inputs/outputs or complex/time-consuming methods.
- The software development process includes requirements specification, analysis, design, implementation, testing, and documentation. Algorithms using pseudocode or flowcharts are designed to solve problems.
- Programming languages have evolved from low-level machine languages to high-level languages. Earlier generations like assembly language were more machine-oriented while modern languages are more portable, problem-oriented, and easier for humans to read and write
The document provides an overview of programming concepts including computer systems, programming languages, algorithms, flowcharts, and the C programming language. It discusses the components of a computer system including hardware and software. It describes different types of programming languages from machine languages to high-level languages. It explains algorithms, properties of algorithms, and provides examples. It also discusses flowcharts for representing algorithms graphically and the steps to create, compile, and execute a C program.
The document provides an introduction to computer programming. It discusses what a computer is and its basic parts including hardware and software. It describes the internal and external hardware components. It also explains different types of programming languages from low-level to high-level languages. The document then discusses programming paradigms like procedural, structured, and object-oriented programming. It introduces concepts like algorithms, flowcharts, and the system development life cycle which involves phases from feasibility study to implementation and maintenance.
This document provides an overview of computers and programming languages. It discusses the evolution of computers from mainframes to personal computers. It also examines the hardware and software components of a computer system, including the CPU, memory, storage, inputs, outputs, and operating system software. The document then explores the evolution of programming languages from machine language to assembly language to high-level languages. It describes how a high-level language program is compiled and executed. Finally, it discusses problem-solving techniques, structured programming, and object-oriented programming.
Concept of Problem Solving, Introduction to Algorithms, Characteristics of Algorithms, Introduction to Data Structure, Data Structure Classification (Linear and Non-linear, Static and Dynamic, Persistent and Ephemeral data structures), Time complexity and Space complexity, Asymptotic Notation - The Big-O, Omega and Theta notation, Algorithmic upper bounds, lower bounds, Best, Worst and Average case analysis of an Algorithm, Abstract Data Types (ADT)
This document provides an introduction to programming languages and Python. It discusses what a program is, different categories of software, and types of programming languages including machine language, assembly language, and high-level languages. It also covers programming paradigms like imperative, logical, functional, and object-oriented. The document outlines the software development life cycle and describes key areas where Python is commonly used like academia, scientific tools, machine learning, and web development.
Computer programs contain instructions that tell computers what to do. Programs are written using programming languages as computers only understand machine code. There are different types of programming languages including machine language, assembly language, and high-level languages. High-level languages are easier for humans to read but must be compiled into machine code for computers to execute. Programming involves defining a problem, describing inputs and outputs, developing an algorithmic solution, and testing the program.
Java developer trainee implementation and importiamluqman0403
The document discusses different types of software including standalone apps, client/server apps, and web applications; it also defines key terms like program, software, and describes the different layers of web applications including the presentation, application, and data layers.
This document is the first chapter of an introduction to programming with C++ textbook. It discusses the basics of programming including the roles of programmers, history of programming languages, and basic control structures used in algorithms. Key points:
- Programmers write step-by-step instructions called programs to tell computers how to perform tasks. Popular languages include C++, C#, Java.
- Early languages included machine code using 1s and 0s and assembly languages using mnemonics. Higher-level languages like C++ allow English-like instructions.
- Programs use three basic control structures - sequence, selection, and repetition. Sequence processes instructions in order. Selection makes decisions. Repetition repeats steps until a condition
This document provides an introduction to compilers. It discusses how compilers bridge the gap between high-level programming languages that are easier for humans to write in and machine languages that computers can actually execute. It describes the various phases of compilation like lexical analysis, syntax analysis, semantic analysis, code generation, and optimization. It also compares compilers to interpreters and discusses different types of translators like compilers, interpreters, and assemblers.
Scripting experts from Inductive Automation cover general best practices that will help you add flexibility and customization to HMI, SCADA, IIoT, and other industrial applications. Some specific tips about using scripting in the Ignition platform will be included as well.
In this webinar, learn more about:
• Common scripting pitfalls and how to avoid them
• The best programming languages to use
• Things to consider before using scripting
• How scripting environments work
• Scripting timesavers
• And more
C is a general-purpose programming language developed in the 1970s. It produces very fast executable code and is widely used for operating systems, compilers, and many other applications. Some key reasons for its popularity include its portability, ability to access hardware directly, and large existing code base. The document provides an overview of C's history, why it is still useful today, basic C program structure, and other programming concepts like tokens, keywords, identifiers, and constants.
This document provides summaries of different types of computer software and software development models.
It begins by defining system software and application software. System software includes operating systems, compilers, loaders, linkers, and interpreters. Application software includes programs like word processors, spreadsheets, databases, and presentations that do real work for users.
It then summarizes several software development models: the waterfall model which progresses in linear phases; structured evolutionary prototyping which uses iterative prototyping and user feedback; and the spiral model which incorporates risk analysis into iterative cycles similar to waterfall.
Scripting experts from Inductive Automation cover general best practices that will help you add flexibility and customization to HMI, SCADA, IIoT, and other industrial applications. Some specific tips about using scripting in the Ignition platform will be included as well.
In this webinar, learn more about:
• Common scripting pitfalls and how to avoid them
• The best programming languages to use
• Things to consider before using scripting
• How scripting environments work
• Scripting timesavers
• And more
Geography Sem II Unit 1C Correlation of Geography with other school subjectsProfDrShaikhImran
The correlation of school subjects refers to the interconnectedness and mutual reinforcement between different academic disciplines. This concept highlights how knowledge and skills in one subject can support, enhance, or overlap with learning in another. Recognizing these correlations helps in creating a more holistic and meaningful educational experience.
How to Manage Purchase Alternatives in Odoo 18Celine George
Managing purchase alternatives is crucial for ensuring a smooth and cost-effective procurement process. Odoo 18 provides robust tools to handle alternative vendors and products, enabling businesses to maintain flexibility and mitigate supply chain disruptions.
The Pala kings were people-protectors. In fact, Gopal was elected to the throne only to end Matsya Nyaya. Bhagalpur Abhiledh states that Dharmapala imposed only fair taxes on the people. Rampala abolished the unjust taxes imposed by Bhima. The Pala rulers were lovers of learning. Vikramshila University was established by Dharmapala. He opened 50 other learning centers. A famous Buddhist scholar named Haribhadra was to be present in his court. Devpala appointed another Buddhist scholar named Veerdeva as the vice president of Nalanda Vihar. Among other scholars of this period, Sandhyakar Nandi, Chakrapani Dutta and Vajradatta are especially famous. Sandhyakar Nandi wrote the famous poem of this period 'Ramcharit'.
This chapter provides an in-depth overview of the viscosity of macromolecules, an essential concept in biophysics and medical sciences, especially in understanding fluid behavior like blood flow in the human body.
Key concepts covered include:
✅ Definition and Types of Viscosity: Dynamic vs. Kinematic viscosity, cohesion, and adhesion.
⚙️ Methods of Measuring Viscosity:
Rotary Viscometer
Vibrational Viscometer
Falling Object Method
Capillary Viscometer
🌡️ Factors Affecting Viscosity: Temperature, composition, flow rate.
🩺 Clinical Relevance: Impact of blood viscosity in cardiovascular health.
🌊 Fluid Dynamics: Laminar vs. turbulent flow, Reynolds number.
🔬 Extension Techniques:
Chromatography (adsorption, partition, TLC, etc.)
Electrophoresis (protein/DNA separation)
Sedimentation and Centrifugation methods.
Learn about the APGAR SCORE , a simple yet effective method to evaluate a newborn's physical condition immediately after birth ....this presentation covers .....
what is apgar score ?
Components of apgar score.
Scoring system
Indications of apgar score........
A measles outbreak originating in West Texas has been linked to confirmed cases in New Mexico, with additional cases reported in Oklahoma and Kansas. The current case count is 795 from Texas, New Mexico, Oklahoma, and Kansas. 95 individuals have required hospitalization, and 3 deaths, 2 children in Texas and one adult in New Mexico. These fatalities mark the first measles-related deaths in the United States since 2015 and the first pediatric measles death since 2003.
The YSPH Virtual Medical Operations Center Briefs (VMOC) were created as a service-learning project by faculty and graduate students at the Yale School of Public Health in response to the 2010 Haiti Earthquake. Each year, the VMOC Briefs are produced by students enrolled in Environmental Health Science Course 581 - Public Health Emergencies: Disaster Planning and Response. These briefs compile diverse information sources – including status reports, maps, news articles, and web content– into a single, easily digestible document that can be widely shared and used interactively. Key features of this report include:
- Comprehensive Overview: Provides situation updates, maps, relevant news, and web resources.
- Accessibility: Designed for easy reading, wide distribution, and interactive use.
- Collaboration: The “unlocked" format enables other responders to share, copy, and adapt seamlessly. The students learn by doing, quickly discovering how and where to find critical information and presenting it in an easily understood manner.
This presentation was provided by Bill Kasdorf of Kasdorf & Associates LLC and Publishing Technology Partners, during the fifth session of the NISO training series "Accessibility Essentials." Session Five: A Standards Seminar, was held May 1, 2025.
How to manage Multiple Warehouses for multiple floors in odoo point of saleCeline George
The need for multiple warehouses and effective inventory management is crucial for companies aiming to optimize their operations, enhance customer satisfaction, and maintain a competitive edge.
The *nervous system of insects* is a complex network of nerve cells (neurons) and supporting cells that process and transmit information. Here's an overview:
Structure
1. *Brain*: The insect brain is a complex structure that processes sensory information, controls behavior, and integrates information.
2. *Ventral nerve cord*: A chain of ganglia (nerve clusters) that runs along the insect's body, controlling movement and sensory processing.
3. *Peripheral nervous system*: Nerves that connect the central nervous system to sensory organs and muscles.
Functions
1. *Sensory processing*: Insects can detect and respond to various stimuli, such as light, sound, touch, taste, and smell.
2. *Motor control*: The nervous system controls movement, including walking, flying, and feeding.
3. *Behavioral responThe *nervous system of insects* is a complex network of nerve cells (neurons) and supporting cells that process and transmit information. Here's an overview:
Structure
1. *Brain*: The insect brain is a complex structure that processes sensory information, controls behavior, and integrates information.
2. *Ventral nerve cord*: A chain of ganglia (nerve clusters) that runs along the insect's body, controlling movement and sensory processing.
3. *Peripheral nervous system*: Nerves that connect the central nervous system to sensory organs and muscles.
Functions
1. *Sensory processing*: Insects can detect and respond to various stimuli, such as light, sound, touch, taste, and smell.
2. *Motor control*: The nervous system controls movement, including walking, flying, and feeding.
3. *Behavioral responses*: Insects can exhibit complex behaviors, such as mating, foraging, and social interactions.
Characteristics
1. *Decentralized*: Insect nervous systems have some autonomy in different body parts.
2. *Specialized*: Different parts of the nervous system are specialized for specific functions.
3. *Efficient*: Insect nervous systems are highly efficient, allowing for rapid processing and response to stimuli.
The insect nervous system is a remarkable example of evolutionary adaptation, enabling insects to thrive in diverse environments.
The insect nervous system is a remarkable example of evolutionary adaptation, enabling insects to thrive
Introduction to Vibe Coding and Vibe EngineeringDamian T. Gordon
Ad
Programming Fundamentals - Lecture 1.ppt
1. Fundamentals of Programming
Lecture 1
Book by : Computer, Architecture and Organizations, 8th
Edition ,William Stalling
Original Slides by : Adrian J Pullin
3. Objectives
• Understand the different types of programming languages.
• Understand the basic procedures in a program as input,
processing and output.
• Understand the importance of variables.
• Understand a basic map of the program development cycle.
4. Computer Components
• CPU Central Processing Unit
• RAM (Random Access Memory)
• Mass storage devices
• Input devices
• Output Devices
5. Software
•Application Software
– Word Processors
– Spreadsheets
– Painting programs
– Web browsers, email
programs
•System Software
– Operating Systems
• Windows
• Macintosh OS
• Unix
• Linux
– Drivers
Software is comprised of instructions that get a
computer to perform a task.
6. Programming Languages
• Programming languages allow programmers to code software.
• The three major families of languages are:
Machine languages
Assembly languages
High-Level languages
7. Machine Languages
• Comprised of 1s and 0s
• The “native” language of a computer
• Difficult to program – one misplaced 1 or 0 will cause the
program to fail.
• Example of code:
1110100010101 111010101110
10111010110100 10100011110111
8. Assembly Languages
• A step towards easier programming.
• Comprised of a set of elemental commands
tied to a specific processor.
• Assembly language code needs to be translated to machine
language before the computer processes it.
• Example:
ADD 1001010, 1011010
9. High-Level Languages
• High-level languages represent a giant leap towards easier
programming.
• The syntax of HL languages is similar to English.
• Historically, we divide HL languages into two groups:
Procedural languages
Object-Oriented languages (OOP)
10. Procedural Languages
• Procedural languages
The focus of such languages is on sequence of activities to be
carried out.
Based on specifying the steps the program must take to reach the
desired state.
Examples include C, COBOL, Fortran, LISP, Perl, HTML, VBScript
11. Object-Oriented Languages
• Object-oriented languages:
Focus on modeling data.
Programmers code using “blueprints” of data models called classes.
Examples of OOP languages include C++, Visual Basic.NET and
Java.
12. Compiling
• All HL programs need to be translated to machine code
so that a computer can process the program.
• Programs may be translated using
a compiler:
translated all at once
An interpreter
translated line by line
• Compiled programs typically execute more quickly than interpreted
programs, but have a slower translation speed.
• On the other hand, interpreted programs generally translate
quicker than compiled programs, but have a slower execution
speed.
13. Programming Example
• Simple programming problem: Convert a length from feet
into meters.
• Pseudocode:
Input the length of an item, LengthInFeet, in feet and Compute
the length of the item in meters:
Write “Enter the length in feet”
Input LengthInFeet
Set LengthInMeters = LengthInFeet * .3048
Write LengthInMeters
15. Input & Variables
• Input operations get data into the programs
• A user is prompted to enter data:
Write “Enter the length in feet”
Input LengthInFeet
• Computer programs store data in named sections of memory
called variables.
• In the example above, the variables are named LengthInFeet
& LengthInMeters.
The value of a variable can, and often does, change throughout the
program.
16. Variables
• Needed because we might want the program to run using
different values:
E.g. we might want to calculate LengthInMeters for different values of
LengthInFeet
Each value for which computation is to be carried out will be stored in
the variable LengthInFeet one-by-one
Referring to the variable LengthInFeet by its name gives the value
stored in it.
17. Constants
• Many a time we need to used fixed values for certain
computations.
• E.g. in the program given above
the conversion from miles to meters requires the length in miles to be
multiplied by .3048
a value that doesn’t (need to) change
Such values are constants
• We may also give names to constants: such constants are
called named constants
18. Types of Data
• Numeric Data
Integer data, I.e., whole numbers, 10 25 -45 0
Floating point data – have a decimal point 23.0, -5.0
• Character data (alphanumeric)
All the characters you can type at the keyboard
Letters & numbers not used in calculations
• Boolean data
TRUE/FALSE
19. Data Processing and Output
• LengthInMeters = .3048 * LengthInFeet
The above statement is a processing statement.
Take the value in the variable LengthInFeet,
Multiply by .3048, and
Set the value of the variable LengthInMeters to the result of the
multiplication.
Also stated as assign the result of multiplication to the variable
LengthInMeters
• Write LengthInMeters
Output the value in LengthInMeters to the monitor.
20. Assignment Statements
• If the variable being assigned to already contains a data value,
the previously stored value is overwritten
E.g. the following statements:
Age= 12;
Age=15;
Have an effect of storing 15 in the variable Age.
Reason: The value 12 (stored as an effect of the first assignment
statement) gets overwritten after the execution of the second
statement.
21. Assignment Statements
• The statement
Age = Age + 1
Changes the value of the variable Age in such a way
that the new value is one greater than the previous value.
• Working: Take the value of Age, add 1, and store the result
back in the same variable.
22. Operations on Data
• Operator is a symbol that is used to perform certain operations
• Data values on which operation is performed are termed as
operands
• Operators generally work on many types of variables or constants,
though some are restricted to work on certain types.
some may even exhibit different behaviors with different data
types
• Operators in C may be:
Unary: Work on single operand
Binary: Work on two operands
Ternary: Work on three operands
23. Operators
• C, like most programming languages, supports operators to
carry out various kinds of operations
• We have operators for:
Arithmetic operations
Type Conversions
Performing Comparisons
Performing Logical Operations
Working on individual bits of data
And many more…
24. Precedence of Operators
• Operator precedence:
A set of rules decide the order of operations in an expression
Like BODMAS rule in mathematics
Operator Precedence clarifies unambiguously, which operations
should be performed first in a given expression.
Parentheses i.e. () can always be used to improve clarity
25. Associativity of Operators
• Operator Associativity:
• Rule used for two operators of equal precedence (i.e. same
importance)
• Associativity may be either of the following
left to right: left operator is evaluated first
right to left: right operator is evaluated first
26. Structured Programming
• A method for designing and coding programs in a systematic,
organized manner.
• It combines
the principles of top-down design,
modularity and
the use of the three accepted control structures of
sequence,
repetition and
selection.
27. Control Structures
• Sequence –in sequential order.
The simplest of control structures –
start at the beginning and continue in sequential order.
• Selection – selectively execute statements
Called a branch,
it requires a condition to determine when to execute statements.
28. Control Structures
Repetition – repeat statements more than once
Called a loop,
It needs a stop condition,
I.e, the program will continue to loop (repeatedly
execute a set of statements) until some condition
is met.
29. Counter-Controlled Loop:
(Definite Repetition)
• If it is known in advance exactly how many times a loop
will execute, the repetition is said to be counter-
controlled
• Counter-controlled loop:
Execute a set of statements repeatedly a specified number of
times
The counter may be advanced according to programmers
requirements .
30. Event-Controlled Loop: (Indefinite Repetition)
• If it is NOT known in advance exactly how many times a
loop will execute, the loop is said to be event-controlled.
• An event-controlled loop
Terminates when some event occurs.
The event may be based upon:
User input
Results of calculation
And many more….
31. Steps in Developing a
Program
• Developing a Program:
1. Analyze the problem
2. Design the program
3. Code the program
4. Test the program
32. Step-1 Analyze the
Problem
Brewster’s Thousands
The problem: Brewster wants to invest money at a local bank. There
are many options such as interest rates, terms of deposit, compounding
frequencies. He needs a program to compute, for any given initial
investment, the final maturity (value) of the deposit.
What are the inputs? (given data)
What are the outputs? (required data)
How will we calculate the required outputs from the given inputs?
33. Step-2 Design the
Program
• Create an outline of the program
• An algorithm – a step by step procedure that will provide the required
results from the given inputs.
• Algorithm Examples: Instructions on how to make a cake, use the bank’s
ATM, etc.
34. Step-3 Code the
Program
• Once the design is completed, write the program code.
• Code is written in some programming language such as BASIC, Pascal,
C++, Java, etc.
35. Errors in Development
• While writing a program, certain errors may get induced in the
code.
• Errors may be categorized as :
Syntactical Errors – Incorrect Syntax (wrong grammar), i.e.,
breaking the rules of how to write the language
Forgetting punctuation, misspelling keyword
The program will not run at all with syntax errors
Semantic Errors: Incorrect Logic:
Using an incorrect formula, incorrect sequence of
statements, etc.
The program runs, but does not produce the expected
results.
36. Step-4 Testing the
program
• Purpose: Locate any errors (bugs) / problems
• Most of the work should be done before the phase begins – creating of
a testing document – telling what to test & how.
• Two types of testing:
Testing for errors
Quality testing
• Testing is done throughout the development cycle
• Desk-checking, or code walkthrough is performed to locate errors in
the code.
Pretend you are the computer and execute your own code.
• Ultimate test is to run the program to see if the outputs are correct for
the given inputs.
37. Good Programming Practice
• It is best not to take the “big bang” approach to coding.
• Use an incremental approach by writing your code in
incomplete, yet working, pieces.
• For example, for your projects,
Don’t write the whole program at once.
Just write enough to display the user prompt on the screen.
Get that part working first (compile and run).
Next, write the part that gets the value from the user, and then just
print it out.
38. Modular Programming
• Determine the major tasks that the program must accomplish.
Each of these tasks will be a module.
• Some modules will be complex themselves, and they will be broken into
sub-modules,
and those sub-modules may also be broken into even smaller
modules.
• This is called top-down design
39. Code Modules
• A module is an independent, self-contained section of code
that performs a single task.
• The main module is the module that drives the application.
It “controls” all other modules.
Typically, the main module calls other modules in order to have them
perform certain tasks.
40. Program Control & Modules
• When the main module calls another module,
program control transfers to the called module.
• Program control cedes back to the main module
when the called module finishes.
41. Structure Chart
• A structure chart shows what modules exist and how they are
related.
• A structure chart is a top-down modular design tool
• It is used in structured programming to arrange program
modules into a tree
• It’s a good idea to keep modules short – about 1 page per
module.
• We will have very small modules while getting comfortable with
programming.
42. Documentation
• Internal Documentation
Comments explain to the reader the logic and decision processes of
the programmer.
Comments are ignored by an interpreter or compiler.
• External Documentation
External documentation includes a user’s guide and, typically, a more
technical system administrator’s guide.
45. Objectives
• History of C
• Characteristics of C
• Converting a C Program to Executable
• Dissecting a simple C Program
• Defining Variables in C
• Printing Out and Inputting Variables
• Constants & Literals
46. History of C
• Developed by Brian Kernighan and Dennis Ritchie of
AT&T Bell Labs in 1972
• In 1983 the American National Standards Institute began
the standardization process
• In 1989 the International Standards Organization
continued the standardization process
• In 1990 a standard was finalized, known simply as
“Standard C”
47. Features of C
• C can be thought of as a “high level assembler”
• Most popular programming language for writing system
software
• Focus on the procedural programming paradigm, with
facilities for programming in a structured style
• Low-level unchecked access to computer memory via the
use of pointers
• And many more…
48. Writing C Programs
• A programmer uses a text editor to create or modify files
containing C code.
• Code is also known as source code.
• A file containing source code is called a source file.
• After a C source file has been created, the programmer
must invoke the C compiler before the program can be
executed (run)
49. Getting an executable
program
• The process of conversion from source code to machine
executable code is a multi step process.
• If there are no errors in the source code, the processes called
compilation & linking produce an executable file
• To execute the program, at the prompt, type
<executable file name>
50. Conversion from .C to executable
1. Preprocessing
2. Compilation
3. Linking
51. Stage 1:
Preprocessing
Performed by a program called the preprocessor
Modifies the source code (in RAM) according to preprocessor
directives (preprocessor commands) embedded in the source
code
Strips comments and white space from the code
The source code as stored on disk is not modified
52. Stage 2: Compilation
Performed by a program called the compiler.
Checks for syntax errors and warnings
Translates the preprocessor-modified source code into object
code (machine code).
Saves the object code to a disk file
If any compiler errors are received, no object code file will be
generated.
An object code file will be generated if only warnings, not
errors, are received.
53. Stage 3: Linking
• Combines the program object code with other object code to
produce the executable file.
• The other object code can come from the
– Run-Time Library
– other libraries
– or object files that you have created.
• Saves the executable code to a disk file.
• If any linker errors are received, no executable file is
generated.
54. Developing a C Program
Modified Source Code in RAM
Source File pgm.c
Program Object Code File
Executable File
Preprocessor
Compiler
Linker
Editor
55. A Simple C Program
/* Filename: hello.c
Author: --------
Date written: --/--/----
Description: This program prints the greeting
“Hello, World!”
*/
#include <stdio.h>
int main ( void )
{
printf ( “Hello, World!n” ) ;
return 0 ;
}
56. Structure of a C Program
program header comment
preprocessor directives (if any)
int main ( )
{
statement(s)
return 0 ;
}
57. Explanation
#include <stdio.h> /* comment */
int main(void)
{
printf("Hellon");
printf("Welcome to the Course!n");
return 0;
}
Hello
Welcome to the Course!
tells compiler about standard input and output functions (i.e. printf + others)
main function
“begin”
“end”
flag success
to operating
system
58. Tokens
• The smallest element in the C language is the token.
• It may be a single character or a sequence of characters to form
a single item.
59. Tokens can be any of:
• Numeric Literals
• Character Literals
• String Literals
• Keywords
• Names (identifiers)
• Punctuation
• Operators
60. Numeric Literals
• Numeric literals are an uninterrupted sequence of
digits
• May contain
A period,
A leading + or – sign
A scientific format number
A character to indicate data type
• Examples:
123
98.6
1000000
61. Character Literals
• Singular!
• One character defined character set.
• Surrounded on the single quotation mark.
• Examples:
‘A’
‘a’
‘$’
‘4’
62. String Literals
• A sequence characters surrounded by double quotation
marks.
• Considered a single item.
• Examples:
“UMBC”
“I like ice cream.”
“123”
“CAR”
“car”
63. Keywords
• Sometimes called reserved words.
• Are defined as a part of the C language.
• Can not be used for anything else!
• Examples:
int
while
for
64. Reserved Words (Keywords) in C
• auto
• case
• const
• default
• double
• enum
• float
• goto
• int
• register
• short
• sizeof
• struct
• typedef
• unsigned
• volatile
• break
• char
• continue
• do
• else
• extern
• for
• if
• long
• return
• signed
• static
• switch
• union
• void
• while
All the C keywords are in small case
65. Names / Identifiers
• Variables must be declared before use and immediately
after “{”
• Can be of anything length, but only the first 31 are
significant (A very long name is as bad as a very short, un-
descriptive name).
• Are case sensitive: abc is different from ABC
• Must begin with a letter and the rest can be letters, digits,
and underscores.
• Cannot be a reserved word.
66. Which Are Legal Identifiers?
AREA area_under_the_curve
3D num45
Last-Chance #values
x_yt3 pi
num$ %done
lucky*** continue
Float integer
68. Things to remember
• Statements are terminated with semicolons
• Indentation is ignored by the compiler
• C is case sensitive - all keywords and Standard Library functions are
lowercase
71. Naming Conventions
• Begin variable names with lowercase letters
• Use meaningful names
• Separate “words” within identifiers with underscores or mixed upper and
lower case.
• Use all uppercase for symbolic constants (used in #define
preprocessor directives).
• Be consistent!
In addition to the conventions one must follow all the naming rules
as discussed in previous sessions.
Note: symbolic constants are not variables,
but make the program easier to read.
72. Declaring Variables
• All variables need to be declared before they are used.
• The declaration statement includes (apart from other
information) the data type of the variable.
• Examples of variable declarations:
int meatballs ;
float area ;
73. It is required to declare variables before using
as compiler needs this information
Purpose!!!
Declaring Variables
When we declare a variable
Space is set aside in memory to hold a value of the specified
data type
That space is associated with
the variable name
a unique address
Visualization of the declaration
int age ; age
FE07 int
garbage
74. More About Variables
Basic data types available in C are:
char: stores single character
int: stores whole numbers
float: store floating point numbers
double: store floating point numbers with higher precision
75. Integer Types in C
• C supports different kinds of integers, like
signed int
unsigned int
long int
short int
And more…
• Limits depend upon size in bytes which in turn depends
upon environment
maxima and minima defined in “limits.h”
• We can work with different bases as well (octal,
hexadecimal).
76. The int Data Type (Contd.)
Use
scanf (“%i”, &ch) ;
to read a single integer into the variable ch.
Use
printf(“%i”, ch) ;
to display the value of an integer variable.
77. The char Data Type
• The char data type holds a single character.
char ch;
• Example assignments:
char grade, symbol;
grade = ‘B’;
symbol = ‘$’;
• The char is held as a one-byte integer in memory. The
ASCII code is what is actually stored, so we can use
them as characters or integers, depending on our need.
78. The char Data Type (Contd.)
Use
scanf (“%c”, &ch) ;
to read a single character into the variable ch.
Use
printf(“%c”, ch) ;
to display the value of a character variable.
79. char I/O
#include <stdio.h>
int main ( )
{
char ch ;
printf (“Enter a character: “) ;
scanf (“%c”, &ch) ;
printf (“The value of %cn.”, ch) ;
return 0 ;
}
Input: A
Output : The value of A is 65.
80. Real Types In C
C supports different kinds of reals
maxima and minima are defined in “float.h”
type format minimum maximum
float %f %e %g FLT_MIN FLT_MAX
double %lf %le %lg DBL_MIN DBL_MAX
long double %Lf %Le %Lg LDBL_MIN LDBL_MAX
81. Notes About Variables
• You must not use a variable until you somehow give it a
value.
• You can not assume that the variable will have a value
before you give it one.
Some compilers do, others do not! This is the source of many
errors that are difficult to find.
83. Arithmetic Operators and
their Usage
Name Operator Example
Addition + num1 + num2
Subtraction - initial - spent
Multiplication * fathoms * 6
Quotient of Division / sum / count
Remainder of Division % m % n
% can not be used with reals
84. Relational Operators
< less than
> greater than
<= less than or equal to
>= greater than or equal to
== is equal to
!= is not equal to
Relational expressions evaluate to the integer values:
1 (true) on success
0 (false) on failure
85. Logical Operators
• At times we need to test multiple conditions in order to
make a decision.
• Logical operators combine simple conditions to make
complex conditions.
• Result into a 0 (false) or 1 (true)
&& AND if ( x > 5 && y < 6 )
|| OR if ( z == 0 || x > 10 )
! NOT if (! (age > 42) )
86. Truth Table for &&
Expression1 Expression2 Expression1 && Expression2
0 0 0
0 nonzero 0
nonzero 0 0
nonzero nonzero 1
Exp1 && Exp2 && … && Expn will evaluate to 1 (true) only
if ALL sub-conditions are true.
87. Truth Table for ||
Expression1 Expression2 Expression1 || Expression2
0 0 0
0 nonzero 1
nonzero 0 1
nonzero nonzero 1
Exp1 || Exp2 || … || Expn will evaluate to 1 (true) if any one of
the sub-conditions is true.
88. Truth Table for !
Expression ! Expression
0 1
nonzero 0
89. Precedence/Associativity
Table
Operator Associativity
() [] -> . left to right
! ~ ++ -- - + (cast) * & sizeof right to left
* / % left to right
+ - left to right
<< >> left to right
< <= >= > left to right
== != left to right
& left to right
| left to right
^ left to right
&& left to right
|| left to right
?: right to left
= += -= *= /= %= etc right to left
, left to right
+ - : unary
91. Functions
• Functions are named code blocks that make reusability of
code possible.
• These are parts of programs that
Perform a well defined task.
At times, expect some information in order to complete the task.
The information is provided in form of parameters (arguments)
Can return a value to convey result / status of execution
92. I/O Example
#include <stdio.h>
int main(void)
{
int a, b;
printf("Enter two numbers: ");
scanf("%i %i", &a, &b);
printf("%i - %i = %in", a, b, a - b);
return 0;
}
create two integer
variables, “a” and “b”
read two integer
numbers into “a”
and “b”
write “a”, “b” and “a-b”
in the format specified
Enter two numbers: 21 17
21 - 17 = 4
93. Displaying Variables
• A Function that allows us to display formatted data:
printf( ).
• Needs two pieces of information to display things.
How to display it
What to display
• printf( “%fn”, diameter );
94. printf( “%fn”, diameter );
• The name of the function is “printf”.
• Inside the parentheses are two comma separated
parameters:
Format specifier: indicates the format in which the output will be
produced
%f => a floating point value
n => a new-line character (escape
sequence)
The expression diameter whose value is to be displayed.
95. scanf (“%f”, &meters) ;
• This function is used to
read values from the standard input; and
Store them in memory.
• The scanf( ) function also needs two items:
The input specification “%f”.
The address of the memory location where the information
is to be stored.
• We can input more than one item at a time if we wish, as long
as we specify it correctly!!!
• Notice the “&” in front of the variable name. Can you
explain its significance!
96. Format Specifiers
• Format specifiers are normal strings with embedded
“conversion specifications” which are placeholders for
arguments
• Conversion specifications are a ‘%’ and a letter with an
optional set of arguments in between the ‘%’ and letter.
Why are these required!!!
97. Selection: the if statement
if ( condition )
{
statement(s) /* body of the if statement */
}
• The braces are not required if the body contains only a single
statement.
• However, they are a good idea and are required by the C Coding
Standards.
98. Examples
if ( age >= 18 )
{
printf(“Vote!n”) ;
}
if ( value == 0 )
{
printf (“The value you entered was zero.n”);
printf (“Please try again.n”) ;
}
101. Example
if ( age >= 18 )
{
printf(“Vote!n”) ;
}
else
{
printf(“Maybe next time!n”) ;
}
102. Repetition Structure
• There are three repetition structures in C: -
the while loop
the for loop
the do-while loop.
• Either of these structures may be used for counter-controlled /
event-controlled logic, but
• The syntax of for loop makes it more suitable for counter-
controlled repetition
• And, The syntax of while / do-while loops makes them more
suitable for event-controlled repetition
103. The while Repetition
Structure
while ( condition )
{
statement(s)
}
• The braces are not required if the loop body contains
only a single statement.
• However, they are a good idea and are required by
the C Coding Standards.
104. while Loop
• The simplest C loop is the while
• Parentheses must surround the condition
• Condition could be based on user input or some calculation
• Braces must be added if more statements are to be executed
total= 0;
while (number != -1) {
total = total + number;
printf(“Enter another number: “) ;
scanf(“%d”, &number) ;
}
105. The for Loop
Repetition Structure
• The for loop handles details of the counter-controlled loop
“automatically”.
• The following are handled within the for loop structure
initialization of the the loop control variable,
the termination condition test, and
control variable modification.
for ( i = 1; i < 101; i = i + 1)
{
}
initialization test modification
106. A for Loop That Counts
From 0 to 9
for ( i = 0; i < 10; i = i + 1 )
{
printf (“%dn”, i) ;
}
107. We Can Count Backwards,
Too
for ( i = 9; i >= 0; i = i - 1 )
{
printf (“%dn”, i) ;
}
108. Count By 2’s or 7’s or
Whatever
for ( i = 0; i < 10; i = i + 2 )
{
printf (“%dn”, i) ;
}
109. The do-while
Repetition Structure
do
{
statement(s)
} while ( condition ) ;
• The body of a do-while is ALWAYS executed at least once.
• Is this true of a while loop?
• What about a for loop?
110. Example
do
{
printf (“Enter a number, 0 to terminate:
“);
scanf (“%d”, &number) ;
if (number == 1)
printf (“n Do Somethingn”) ;
else if (number == 2)
printf (“n Do Something Elsen”) ;
} while ( num != 0 );
111. An Equivalent while Loop
printf (“Enter a number, 0 to terminate:“) ;
scanf (“%d”, &number) ;
while ( number != 0 )
{
if (number == 1)
printf (“n Do Somethingn”) ;
else if (number == 2)
printf (“n Do Something Elsen”) ;
printf (“Enter a number , 0 to terminate:“) ;
scanf (“%d”, &number) ;
}
Notice that using a while loop in this case requires a priming
read.
112. An Equivalent for Loop
printf (“Enter a positive number, 0 to terminate: “)
;
scanf (“%d”, &number) ;
for ( ; number != 0; )
{
if (number == 1)
printf (“n Do Somethingn”) ;
else if (number == 2)
printf (“n Do Something Elsen”) ;
printf (“Enter a number , 0 to terminate:“) ;
scanf (“%d”, &number) ;
}
A for loop is a very awkward choice here because the
loop is event-controlled.
113. So, Which Type of Loop Should One Use?
• Use a for loop for counter-controlled repetition.
• Use a while or do-while loop for event-controlled
repetition.
Use a do-while loop when the loop must execute at least one
time.
Use a while loop when it is possible that the loop may never
execute.
114. That’s all for now…
We are ready for writing a simple C program.