Programming Basics. Part 1, episode 1, chapter 1, passage 1

Similar documents
BASIC COMPUTATION. public static void main(string [] args) Fundamentals of Computer Science I

Java Programming Fundamentals - Day Instructor: Jason Yoon Website:

What did we talk about last time? Examples switch statements

Algorithms and Programming I. Lecture#12 Spring 2015

Program Fundamentals

CIS133J. Working with Numbers in Java

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Java Basics

Welcome to Python 3. Some history

4. Java Project Design, Input Methods

cis20.1 design and implementation of software applications I fall 2007 lecture # I.2 topics: introduction to java, part 1

Programming Basics. Part 2, completing the basics

CS102: Variables and Expressions

VBScript: Math Functions

Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Java Basics Lecture 02

FRAC: Language Reference Manual

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming

IT 374 C# and Applications/ IT695 C# Data Structures

Topic 1: Introduction

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont.

CS 106 Introduction to Computer Science I

Objects and Types. COMS W1007 Introduction to Computer Science. Christopher Conway 29 May 2003

A Java program contains at least one class definition.

CMPT 125: Lecture 3 Data and Expressions

C++ Data Types. 1 Simple C++ Data Types 2. 3 Numeric Types Integers (whole numbers) Decimal Numbers... 5

Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal

boolean, char, class, const, double, else, final, float, for, if, import, int, long, new, public, return, static, throws, void, while

Basics of Java Programming

MODULE 02: BASIC COMPUTATION IN JAVA

Chapter 2: Data and Expressions

BIT Java Programming. Sem 1 Session 2011/12. Chapter 2 JAVA. basic

2 nd Week Lecture Notes

CSc 372 Comparative Programming Languages. 4 : Haskell Basics

COMP-202 Unit 2: Java Basics. CONTENTS: Using Expressions and Variables Types Strings Methods

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

Tester vs. Controller. Elementary Programming. Learning Outcomes. Compile Time vs. Run Time

CS 115 Data Types and Arithmetic; Testing. Taken from notes by Dr. Neil Moore

Introduction to TURING

Lecture 05 I/O statements Printf, Scanf Simple statements, Compound statements

Object-Oriented Programming

Web Application Development (WAD) V th Sem BBAITM(Unit-1) By: Binit Patel

Elementary Programming

CONTENTS: What Is Programming? How a Computer Works Programming Languages Java Basics. COMP-202 Unit 1: Introduction

TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA

COMP1730/COMP6730 Programming for Scientists. Data: Values, types and expressions.

Introduction to C# Applications

UNIT - I. Introduction to C Programming. BY A. Vijay Bharath

Haskell Programs. Haskell Fundamentals. What are Types? Some Very Basic Types. Types are very important in Haskell:

Built-in Types of Data

A variable is a name for a location in memory A variable must be declared

CS 115 Lecture 4. More Python; testing software. Neil Moore

Expressions and Data Types CSC 121 Fall 2015 Howard Rosenthal

CSc 372. Comparative Programming Languages. 4 : Haskell Basics. Department of Computer Science University of Arizona

JME Language Reference Manual

Intro. Scheme Basics. scm> 5 5. scm>

CS1 Lecture 3 Jan. 22, 2018

BASIC ELEMENTS OF A COMPUTER PROGRAM

DATA TYPES AND EXPRESSIONS

AP Computer Science Unit 1. Programs

Entry Point of Execution: the main Method. Elementary Programming. Learning Outcomes. Development Process

c) And last but not least, there are javadoc comments. See Weiss.

Full file at

age = 23 age = age + 1 data types Integers Floating-point numbers Strings Booleans loosely typed age = In my 20s

2. Numbers In, Numbers Out

Values and Variables 1 / 30

REVIEW. The C++ Programming Language. CS 151 Review #2

COSC 243. Data Representation 3. Lecture 3 - Data Representation 3 1. COSC 243 (Computer Architecture)

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */

Discussion 1H Notes (Week 2, 4/8) TA: Brian Choi Section Webpage:

CS-201 Introduction to Programming with Java

Zheng-Liang Lu Java Programming 45 / 79

PHP and MySQL for Dynamic Web Sites. Intro Ed Crowley

Data and Variables. Data Types Expressions. String Concatenation Variables Declaration Assignment Shorthand operators. Operators Precedence

CS1 Lecture 3 Jan. 18, 2019

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 10: OCT. 6TH INSTRUCTOR: JIAYIN WANG

Ex: If you use a program to record sales, you will want to remember data:

AP Computer Science A

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression

Mr. Monroe s Guide to Mastering Java Syntax

CS112 Lecture: Primitive Types, Operators, Strings

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Creating objects TOPIC 3 INTRODUCTION TO PROGRAMMING. Making things to program with.

Chapter 2: Programming Concepts

CSE 142 Su 04 Computer Programming 1 - Java. Objects

AP Computer Science Unit 1. Writing Programs Using BlueJ

COMP-202: Foundations of Programming

Outline. Turtles. Creating objects. Turtles. Turtles in Java 1/27/2011 TOPIC 3 INTRODUCTION TO PROGRAMMING. Making things to program with.

Getting started with Java

COMP 202 Java in one week

More on variables and methods

CSE 1223: Introduction to Computer Programming in Java Chapter 2 Java Fundamentals

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

Chapter 2: Review Exercise Solutions R2.1

Declaration and Memory

Computer Components. Software{ User Programs. Operating System. Hardware

Chapter 17. Fundamental Concepts Expressed in JavaScript

Professor: Sana Odeh Lecture 3 Python 3.1 Variables, Primitive Data Types & arithmetic operators

Variables and Typing

Variables and Functions. ROBOTC Software

Standard 11. Lesson 9. Introduction to C++( Up to Operators) 2. List any two benefits of learning C++?(Any two points)

University of Technology. Laser & Optoelectronics Engineering Department. C++ Lab.

Transcription:

Programming Basics Part 1, episode 1, chapter 1, passage 1

Agenda 1. What is it like to program? 2. Our first code 3. Integers 4. Floats 5. Conditionals 6. Booleans 7. Strings 8. Built-in functions

What is it like to program? The skills behind programming

Some questions How much programming do you know already? If you don t have experience in programming, what have you heard about it? If you have experience in programming, what do you think it s like?

What is it like to program? Programming is about writing a series of instructions in a language a computer can understand. Like writing a recipe in a foreign language...ok, let me explain.

A recipe When writing a recipe, there s a few things expected: 1. Listing out ingredients 2. Providing step-by-step instructions

A foreign language Learning a foreign language involves: 1. Remembering words 2. Memorizing grammar 3. Understanding the culture 4. Recognizing the history 5. Processing complex thoughts into written sentences

Interface 1. Unity 2. C#

Our first code Obligatory Hello World!

Adding code to Unity 1. Create a new scene 2. Create a new C# file (HelloWorld.cs) 3. Attach the script to the Main Camera

Obligatory Hello World! public class HelloWorld : MonoBehaviour { void Start() { Debug.Log( Hello World! ); } }

Obligatory Hello World! Press the play button, and click the Console tab:

Obligatory Hello World!

Why does this work? public class HelloWorld : MonoBehaviour { This line indicates our script is a Component named HelloWorld that can be attached to Game Objects. Everything between the { right after MonoBehaviour and } will be treated as part of the HelloWorld script. (We ll go over it in more details in Part 3)

Why does this work? void Start() { Every language has at least one event that will run when the application starts. Start() is Unity s start event. Everything between the { right after Start() and } will run on start. C#: static void Main(string[] args) Java: public static void main(string[] args)

Why does this work? Debug.Log( Hello World! ); This line acts like a step in a recipe s instructions. It s a Unity built-in function where it ll make anything between Debug.Log( and ) appear on the Console (in this case, Hello World ). The ; indicates the end of the step.

Let s talk about syntax syntax = grammar {} indicate encapsulation e.g. The Debug.Log( Hello World! ) in void Start(){Debug.Log( Hello World! );} is the content of event Start(). ; indicate end of a step in a list of instructions This syntax haunts most beginning programmers

Let s talk about syntax Most languages (e.g. Java, C++, C#) only need spaces/tabs/newlines (a.k.a. whitespaces) to make out words. Otherwise it s optional. For example, the following is valid: public class HelloWorld:MonoBehaviour{void Start(){Debug.Log( Hello World! );}}...but that s hard to read, so programmers use whitespaces for organization.

Changing things up public class HelloWorld : MonoBehaviour { void Start() { Debug.Log(1); } }

Why didn t 1 need quotes? Because Hello World! is a string variable, and 1 is an integer variable. Debug. Log() can print both variables just fine....wait, what?

Integers Variable type

Variables Remember this? Let x equal 7. Solve x + 3.

Variables Here s the same thing in code: public class HelloWorld : MonoBehaviour { void Start() { int x = 7; Debug.Log(x + 3); } }

Why does this work? int x = 7; This line says, let a variable named x be an integer, with a value of 7. Debug.Log(x + 3); This line says, add 3 to variable x, then print the results on the Unity console.

Why use variables? Variables store values, making them a convenient way to modify and replace values quickly in the same formula: int x = 7; Debug.Log(x + 3); x = 3; Debug.Log(x + 3);

About declaration Any lines that says this variable is this type is called a declaration: int x; Any lines below this declaration, down to the encapsulating }, now knows variable x is an integer.

About integers int stands for integer. Like math, integer variables can be any of the following values: -3, -2, -1, 0, 1, 2, 3 But integers cannot have fractions or decimals. Note: technically, integers does have an upper and lower limit, but they re really large. Google it.

About = Unlike the English language, = does not stand for equals. Instead, it stands for, set the variable on the left to the value on the right: int x = 7; In the line above, we re declaring that x is an integer variable, and it should be set to 7.

About = Since = sets the variable s value, you can do some neat stuff, such as: int x = 7; Debug.Log(x); x = x + 3; Debug.Log(x);

States Like any list of instructions, each line changes the code s state: int x = 7; From this line down, variable x now exists as an integer, with value 7 x = x + 3; From this line down, variable x has a value x + 3, i.e. 7 + 3, i. e. 10

States Order matters! The following throw errors: Debug.Log(x); int x = 7; When it reaches to Debug.Log(x); on the first line, variable x hasn t been declared yet, so the code doesn t know it exists.

About operators Any value-changing math symbols are called operators: integer operator Math operation Example + addition int x = 3 + 4; //x is 7 - subtraction int x = 3-4; //x is -1 * multiplication int x = 3 * 4; //x is 12 / division int x = 5 / 3; //x is 1 % modulo (remainder of division) int x = 5 % 3; //x is 2 x = -7 % 5; //x is -2

About operators Operators follow the order of operation: int x = 5 + 2 * 7; //x is 19 You can use () to change the order of operation: int x = ((5 + 2) - 7) / 3; //x is 0

About variables So long as their names are unique, you can make multiple variables: int x = 7; Debug.Log(x); int anothervariable = x + 3; Debug.Log(anotherVariable + x); Note: technically, you can only have as many variables as your computer OS allows. So less variables = efficient.

Naming variables Variable names need to start with a letter (a-z, A-Z). The rest can be lowercase, uppercase letter, number, or _. int this1sa_val1dnam3; int 1_this_Isn t; For re-using variables, capitalization matters.

Comments Comments are text the computer completely ignores. They re useful for note taking: // This is a comment. /* This is a comment, too. */ /* This is good for multi-lines & inlines. Computers can t see me */

Floats & Doubles Variable type

Integer limits Integers can t store decimals: int x = 7 / 2; Debug.Log(x); x = 7 % 2; Debug.Log(x); This prints out 3, then 1.

Floats Floats store decimals: float x = 7.0f / 2.0f; Debug.Log(x); This prints out 3.5.

Why the f after 7.0? Doubles are C# s default variable type to store decimals: double x = 7.0 / 2.0; Debug.Log(x); However, most Unity functions uses floats because they take up half the memory as doubles (at a cost of lower accuracy).

Why the f after 7.0? By putting f after a number (with or without decimals), they become a float: float x = 7.0f / 2.0f; Debug.Log(x); For the rest of this presentation, we ll be using floats.

Float operators float operator Math operation Example + addition float x = 0.5f + 2.5f; //x is 3 - subtraction float x = 3f - 4f; //x is -1 * multiplication float x = 0.1f * -20f; //x is -2 / division float x = 5f / 3f; //x is 1.5 Notice floats doesn t have modulo.

About variables Once declared, you can t convert a variable to a different type. The following will give you an error: float varfloat = 0.5f; int varint; varint = varfloat;

About variables...but an integer-to-float is one of C# s few exceptions: int varint = 1; float varfloat; varfloat = varint;

Conditionals Filtering encapsulation

Conditionals Remember this? Let x equal 7. Solve f(x) { if x > 0, x * 2 if x 0, x - 2

Conditionals Here s the same thing in code: int x = 7; if(x > 0) { x = x * 2; } else if(x <= 0) { x = x - 2; } Debug.Log(x);

Why does this work? if(x > 0) { If the statement between the two () is true, run what s between the following { to the }. Basically, conditionals filter when a set of instructions is allowed to run.

Conditionals int x = -3; if(x > 0) { // The line below won t run, because // -3 is not greater than 0 x = x * 2; } //...

If conditional if always marks the start of a set of conditional statements. It follows-up with () where it checks to see if the comparison is true, and if so, runs what s between the following {}. if(x > 0) { x = x * 2; } //...

Else conditional else runs what s between the following {} if the previous conditional did not run. It s optional, but if added in, it must always appear last: if(x > 0) { x = x * 2; } else { x = x + 2; } //...

Else-if conditional else if runs what s between the following {} if the previous conditional did not run, and the following () contains a true statement. It s optional, but if added in, it must always after if, and before else :

Else-if conditional int x = -3; if(x > 5) { x = x * 2; } else if(x > 3) { x = x + 2; } else if(x > 1) { x = x + 1; } else { x = x - 10; } Debug.Log(x);

Conditionals Conditionals can be nested, such as: if(x > 0) { if(x > 5) { x = x * 2; } else { x = x * 3; } } //...

Comparisons (int, float) comparison (int, float) Math operation True False == equals 3 == 3 3 == 2!= not equals 3!= 2 3!= 3 < greater than 2 < 3 3 < 3 > less than 3 > 2 2 > 2 <= greater than or equals to 2 <= 3 2 <= 2 >= less than or equals to 3 >= 2 3 >= 3 4 <= 3 3 >= 4

About comparisons You can t compare 2 variables if they are not of the same type. if(1 == Hello World! ) {} Exception: integers and floats if(1 == 1.0f) {}

A gotcha with float Floats are inaccurate, and thus, their comparisons are unpredictable. Depending on the computer and compiler, the following conditional may not run: float set1 = 2.5f; float set2 = 5.0f / 2.0f; if(set1 == set2) { } Debug.Log( Hello World! );

A gotcha with variables Variables only exist within a pair of {} (we call this scope ): int x = 1; //x exists here if(x == 1) { int y = x; //x and y exists here } //y no longer exists

Booleans Variable type

Booleans Booleans look like this: bool x = true; bool y = false; Debug.Log(x); Debug.Log(y); Their value is either true or false.

Comparisons Comparisons creates a new boolean value: bool x = (3 == 3); bool y = (3!= 3); Debug.Log(x); Debug.Log(y);

Conditionals The () in conditionals always takes in a boolean: bool x = true; if(x) { Debug.Log( Hello World! ); } else { Debug.Log( Goodbye World! ); }

Boolean operators Booleans has their own set of operators boolean operator Math operation True False && and true && true false && true false && false or true false true true false false! not!true!false

String Variable type

Strings Strings look like this: string word = Hello World! ; Debug.Log(word); Basically, they contain words and sentences. Anything between the two quotes will be treated as a single variable.

Strings Strings has to be declared in the same line. The following code will cause an error: string word = Hello World! ; Debug.Log(word);

Adding special characters Each letter, space, number, and symbol in a string is called a character. Characters that cannot be entered normally uses \ followed by another character to represent it. Character Name Notes \ quote Add quotes into a string, e.g. \ Hello\ \\ backslash true\\false \t tab \n newline Creates a new line, like hitting enter key \0 end string Don t use this character, ever.

String operators Strings has their own set of operators string operator Operation Example + concatenation string word = back + pack // word is now backpack == equals bool isequal = ( a == a ) // isequal is now true!= not equals bool isnotequal = ( a!= a ) // isnotequal is now false

Other string tricks If a concatenation operation starts with a string, the next value can be an integer, float, or boolean. int number = 6; string word = Device + number; Note: this is a C# feature. Many programming languages do not support this.

Built-in functions and variables More power!

Functions Remember this? f(x) = x 2 f(x, y) = x + y

Functions Functions runs a series of instructions, and optionally returns a value. They re great for running common mathematical formulas. We ll go over how to make your own function in Part 2, but first, let s go over functions we get for free.

Function Syntax Like if-conditionals, functions are always followed by (), which depending on the function, may require variables. Unlike conditionals, they don t use {}. Debug.Log(typeof(int)); // The typeof() is a function.

Function Syntax Many built-in functions come from a suite of functions (called class). These functions starts with the class name first, then period, then function: Debug.Log( Hello World! ); // Debug is the class, and //Log() is the function.

Mathf If a function returns a value, you can treat the function like a value (1, 2.0f, Hello, etc.). Take Unity s Mathf as an example: float x = Mathf.Pow(3, 2); Debug.Log(x); // x is 9, since 3 to the // second power is 9.

Mathf All Mathf functions are listed in http://docs.unity3d.com/scriptreference/mathf.html. Some notable ones are: Function Notes Example Mathf.Sqrt(float) Square Root float x = Mathf.Sqrt(9); //x is 3f Mathf.Sin(float) Mathf.Cos(float) Mathf.Tan(float) Mathf.Approximately( float, float) Sin, Cosine, and Tangent in trigonometry Checks if 2 floats are about equal bool x = Mathf.Approximately(2.5f, 5f / 2f); //x will consistently be true Mathf.Round(float) Rounds a float float x = Mathf.Round(3.2f); //x is 3f Mathf.Clamp(float, float min, float max) Prevents the first value from going beyond the bounds of the next two float x = Mathf.Clamp(-1f, 0f, 2f); //x is 0f float y = Mathf.Clamp(4f, 0f, 2f); //x is 2f

Random Unity also has Random: http://docs.unity3d.com/scriptreference/random.html Function Notes Example Random.Range(int min, int max) Random.Range( float min, float max) Gets a random value between min and max. The returned value may be min, but will not be max. int x = Random.Range(1, 11); // 1 <= x < 11, or 1 <= x <= 10 float y = Random.Range(0f, 4f); // 0f <= y < 4f

About variables int, float, bool, and string also contains a suite of functions on their own! int x = int.parse( 123 ); Debug.Log(x);

int, float, bool, and string Function Notes Example int.parse(string) float.parse(string) bool.parse(string) string.format(string, anything, anything...) string.isnullorempty (string) Converts a string to int, float, or bool Creates a new string where {0} is replaced by the first anything, {1} is replaced by the second anything, and so forth. Checks if string is empty (we ll go over what s null in part 3) int x = int.parse( 83 ); //x is 83 float y = float.parse( 0.3 ); //y is 0.3f bool z = bool.parse( True ); //z is True string x = string.format( {0} is {1}!, \ 1.4f, Sparta ); // x is 1.4 is Sparta! string y = string.format( {1} over {0}!, \ false, Eggs ); // y is Eggs over False bool x = string.isnullorempty(null); //true x = string.isnullorempty( ); //true x = string.isnullorempty( ); //false

Function syntax Like classes, variables can also contain functions: float x = 4f; string y = x.tostring(); Debug.Log(y); int, float, bool, and string doesn t have many, however.

int, float, and string Notable functions that int, float, and string variables share: Function Notes Example CompareTo(int) CompareTo(float) CompareTo(string) Returns an integer that is negative if the left variable is less than the right, positive if greater, and 0 if both are about equal. float x = 4f; int y = x.compareto(3f); //y is positive string z = alpha ; y = z.compareto( beta ); //y is negative ToString() Converts the variable into a string. int x = 25; string y = x.tostring() + years //y is 25 years

More string functions Function Notes Example Replace(string, string) Substring(int index, int length) Replaces one string with another Gets a string with defined length, starting from index string x = Hello World! ; string y = x.replace( Hello, Goodbye ); //y is Goodbye World! string x = Hello World! ; string y = x.substring(0, 5); //y is Hello Remove(int index, int length) Removes a string of defined length, starting from index string x = Hello World! ; string y = x.remove(0, 6); //y is World! ToUpper() Returns uppercase string string x = tvgs ; string y = x.toupper(); //y is TVGS ToLower() Returns lowercase string string x = TVGS ; string y = x.tolower(); //y is tvgs

Built-in variables Classes may also contain pre-defined variables. Like functions, you access them with the class name first, then period, then the name of the variable. No (), though: Debug.Log( Mathf.PI ); // 3.14159265358979 These values can be read-only (i.e. can t be changed).

Mathf All Mathf variables are listed in http://docs.unity3d.com/scriptreference/mathf.html. Some notable ones (all read-onlys) are: Variables Notes Example Mathf.PI Pi (as a float) float radius = 10f; float area = Mathf.PI * (radius * radius); Mathf.Infinity Mathf.NegativeInfinity Mathf.Deg2Rad Mathf.Rad2Deg Positive or negative infinity (as a float) Values to convert from degrees to radians, and vice-versa float degrees = 90f; float radians = degrees * Mathf.Deg2Rad; // radians is about (Math.PI / 2f) degrees = radians * Mathf.Rad2Deg // degrees is about 90f

Time All Time variables are listed in http://docs.unity3d.com/scriptreference/time.html. Some notable ones are: Variables Notes Readonly? Example Time.time Seconds passed since the game started Yes Time.timeScale How quickly time is passing, as percent No Time.timeScale = 0; //Stops time Time.timeScale = 0.5f; // time moves half the speed Time.deltaTime Time.unscaledDeltaTime Seconds passed between frames (usually a fraction) Seconds passed between frames, ignoring Time.timeScale Yes float x = 0; x = x + 2 * Time.deltaTime; //frame-independent change in value Yes float x = 0; x = x + 2 * Time.unscaledDeltaTime; //frame-independent change in value

int and float int and float also have variables, too. The notable ones are: Variables Notes Example int.maxvalue float.maxvalue int.minvalue float.minvalue float.nan Maximum limit for int and float, respectively Minimum limit for int and float, respectively Not-a-number. A result of divide-by-zero. float x = float.nan; float y = 0f / 0f; bool isnan = float.isnan(x); //true isnan = float.isnan(y); //true

Homework For part 2

Hypotenuse Given float variables side1 and side2, make a program that prints the hypotenuse of a right-triangle. hypotenuse side2 side1

Integer s state Given int variables number, make a program that prints either Negative, Positive or Zero based on the whether the number is negative, positive, or zero.