CAD practical programming part I C++ initiation and introduction to Gnurbs

Size: px
Start display at page:

Download "CAD practical programming part I C++ initiation and introduction to Gnurbs"

Transcription

1 CAD practical programming part I C++ initiation and introduction to Gnurbs Introduction to C++ Download the archive CAD_TP1_Code.zip on the course web page ( In the folder 1erMaster on the desktop, create a folder in your name. Then unzip the archive there. The archive contains three folders for each program that we will use in this lab. Getting Started with the Development Environment During these labs you will use the programming software Code::Blocks to edit the source code of your programs, compile the source (i.e. turn it into executable) and run your executable. For practical reasons, the programs written in C++ are often written using separate files. Therefore, development environments such as Code::Blocks propose to combine the source files of a program as a Project. Besides the list of source files involved, the project also contains instructions for compiling and executing. It can also ease the navigation into the source code. The first step before you start programming with Code::Blocks is to create the project. In order to start, go to the folder of the first example program ( example1 ). Although this is not very useful here because our current program consist in a single file, we will use CMake to generate the Code::Blocks Project. The procedure will remain the same for future programs. The advantage of CMake is that it can generate projects for several compilers (Code::Blocks, Borland C++, Visual Studio...) and several operating systems (Linux, Windows, Mac...) from the same source files. Creating the Project Start CMake: click on the CMake button on the menu on the left. In the input field Where is the source code enter the name of the directory where is your source code. Normally it is: /home/user/bureau/1ermaster/lastnames/example1 In the Where to build the binaries field, enter the same path and add /project at the end. It is in this directory that will be generated the Code::Blocks project. Then click Configure to start the configuration. Click Yes when CMake asks if the directory project should be created. In the window that appears select CodeBlocks Unix Makefiles in the drop-down menu. Then confirm by clicking Finish. 1

2 The configuration takes a few seconds, after which CMake displays several variables. Keep the default values. Confirm the values by clicking again on Configure and then Generate in order to generate the project. Your folder /home/user/bureau/1ermaster/lastnames/example1/project now contains a file named EXEMPLE1.cpb. This file is the Code::Blocks project generated by CMake. Open the project file. Development environment The opening of the project file triggers the display of the Code::Blocks development environment. A window similar to the one shown below appears. The main elements of the development environment are: The browser that allows you to list the source files and open them in the editor. For example, you can open the source file main.cpp (single file in this example program) to display it in the editor. The source code editor to modify it. Toolbars. You can for example select the target to compile or run and then compile and run the program. The Build target selector allows selection of a particular target to build. This is useful when a project contains several executables or if we want to build debugs versions of a given executable. The message window that display errors and compilation warnings. 2

3 As we will see, this example program is very simple. Before launching, it is mandatory to compile, which means converting the human-readable source code (text files) into machine code (executable file.exe). Before starting the compilation, select the target EXEMPLE1 in the menu Build target. To start the compilation, simply click on the button in the toolbar. Once the compilation is complete, the executable EXEMPLE1.exe is created in the directory /home/user/bureau/1ermaster/lastnames/example1/project. You can run it by clicking on the button located right next to the button Compile. The window shown on the right then opens. Description of the source code The program is very short; it only displays the text Hello World! on the screen and ends by returning the value 0. To study its running, return to the Code::Blocks and edit the file main.cpp. It contains a single function called main. main is the name given conventionally main function in C and C++. During the program execution, the main function is always the function that will be executed first. Execution occurs line by line, beginning with the first line of the main function. Its source code is the following: #include <iostream> int main() std::cout<<"hello world!"<<std::endl; return 0; It contains various elements: The file begins with the keyword include, preceded by the character #. This character # means that we call a special feature of the compiler, named the preprocessor. Before the compilation itself the preprocessor will scan all source files in search for texts to include, replace, concatenate, etc. Here the keyword include followed by a file named iostream means: include the code of the file iostream at this location of the current file main.cpp. The file iostream (for input/ouput stream ) is part of the C++ Standard Template Library (STL) and regroups several functions (and classes) for performing input and output operations on the screen and the keyboard. There are numerous other files in the STL providing useful other functions. The next keyword is int which means integer. It defines the type of the value returned by the function. Other basic (primitive) types exist in C/C++. Later we will use e.g. the type double corresponding to a floating point number in double precision. Then we have the function name main followed by the argument list () which is empty in this case. The function body is delimited by curly brackets. The implementation of the function begins with and ends with. 3

4 The line std::cout << Hello world! << std::endl; displays the text Hello world! in the console. std::cout is the standard output display flux ( std stands for standard ). std::endl indicates the need to put a new line after the string Hello world!. ( endl means end of line ) Note that the line code ends with a semicolon ;. Indeed, this line corresponds to one instruction and each instruction has to finish with a semicolon. If you forget the semicolon after one instruction, this will lead to a compilation error. The statement return 0; causes the end of the main function with the return value of 0, which is an integer as indicated at the beginning of the function. The end of the main marks the end of the program. How to add comments into the code: You can insert a comment line by starting a line with // // This is a comment on one line. The multi-line comments start with /* and end with */ /* These are comments on several lines. Comment 1... Comment Comment n... */ It is recommended to add comments describing your code in order to improve the readability of your prose to other people (and to yourself!) Changing the program To practice, we will modify the program to be able to orthogonalize two vectors. Vectors To use the vector in C++, you must first add at the beginning of the file main.cpp : #include <vector> Then in the main function, if you want to create a vector of double (double precision floating point number) called x and that has three components, use the following syntax: std::vector<double> x(3); 4

5 This syntax works with all types of data, for example, if you want to create a vector of integers, we replace double by int. At this point two major differences are to be emphasized in regards to the programming languages you are accustomed: The index of the first element of the vector is 0 (not 1 as in Matlab). Vector operations such as the scalar product, the addition, subtraction... of two vectors are not defined in C++ (not for std::vector< >). Therefore these operations must be done component-wise using a loop. After creating (declaring) the vector x, we have to initialize its components. Component are accessed with the [] and assigned with = x[0]= 1.5; x[1]= 2.3; x[2]=-1.0; Loops The C++ provides various types of loops. In this introduction, we will limit ourselves to the for loop. The generic syntax of a for loop is as follows: int i; for(i=0; i<10; i++)... The first line is simply a declaration of an integer variable i (which is the index of our loop). The for loop begins at the second line. i=0 means that we assign (initialize) the value 0 to i at the beginning of the loop. The instruction i<10 indicates that the loop will be repeated while i is strictly smaller than 10. And finally, i++ means that i will be incremented by one at each iteration of the loop (i++ is equivalent to i=i+1). As with functions, the content of the loop is enclosed by curly brackets. For example, if we want to compute the dot product of two vectors x and y with three components, we use the following instructions: double prosca=0; int i; for(i=0; i<3; i++) prosca += x[i]*y[i]; prosca double precision variable is declared and initialized to 0 at the first line. The loop then calculates the dot product component by component using the += operator to shorten the writing. The instruction: prosca += x[i]*y[i]; is in fact equivalent to: prosca = prosca + x[i]*y[i]; These two instructions are equivalent and mean: Set the new value of prosca as the old value of prosca plus the value of x[i]*y[i]. 5

6 An example for the whole code can be the following: Program 1 #include <iostream> #include <vector> int main() // The execution begins here // Declares two vectors x and y of length 3. std::vector<double> x(3), y(3); // Initializes vector x. x[0]= 1.5; x[1]= 2.3; x[2]=-1.0; // Initializes vector y. y[0]= 2.5; y[1]=-2.1; y[2]=-0.2; // Computes the dot product of two vectors x and y. double prosca=0; int i; for(i=0; i<3; i++) prosca += x[i]*y[i]; // Show the result. std::cout<< Dot product: <<prosca<<std::endl; // End of the execution Returns 0 ( everything went ok ) to the OS. return 0; 6

7 Global functions Functions are used to avoid code duplication. Using functions increases code readability and performances. For example, in program 1, the loop computing the dot product of two vectors should be put into a function. In so doing, we can use the same code for computing dot product between different vectors without copying it again and again. Application: modify program 1 by adding the following code before the main function. double prodscal(std::vector<double> a, std::vector<double> b) double prosca = 0; int i; int taille = a.size(); for(i=0; i<taille; i++) prosca += a[i]*b[i]; return prosca; As we can see, the definition of a global function is very similar to the main function. The main features of this function are the following: The signature of the function is: double prodscal(std::vector<double> a, std::vector<double> b) The signature contains three items: 1. The returned type. Here the function returns a scalar value of type double. 2. The name. The function s name is here prodscal 3. The list of arguments. Here, the function gets to arguments a and b which are std::vector of double. Functions with different signatures are considered to be different. It is then possible to define two different functions with the same name; as long as their signatures (returned value and/or list of arguments) are different. It is however recommended to define different functions with different names in order to avoid any confusion. The body of the function is delimited by braces. int taille = a.size(); allows to retrieve the size/length of vector a. return prosca; tells what is the returned value of the function. Here, it is the value computed in prosca. In the main function, we can now use the function prodscal instead of the loop: double prosca = prodscal(x, y); 7

8 Application: orthogonalization of two vectors. The orthogonalization of two vectors x and y is done by subtracting to y its projection on x: Where the projection p is: Implement this orthogonalization process and check at the end of the program that x and y are indeed orthogonal by recomputing their dot product. Tips: Use the above function prodscal for computing the dot product. Define a new function double norm(std::vector<double> x) which computes the euclidean norm of a vector. This function will use the function prodscal and the function double sqrt(double), which computes the square root of a number. You will need to add the line #include <cmath> at the beginning of the file. This file defines mathematical functions as sin, cos, tan, etc. Pointers and references In C++ two main mechanisms are used to store the address of a variable: pointers and references. Pointers Variables are stored in the RAM. To each variable an address is associated. A pointer is a variable that stores the address of another variable. RAM name : var value : 2 address : 0x3452ef34 name : p value : 0x3452ef34 address : 0xafd4e567 A pointer p to a variable of type type (int, double, std::vector ) is declared with the following syntax: type *p; 8

9 The pointer p is set to point to the variable var as follow: p = &var; Where the symbol & means get the address of var. Pointers must be handled with care. Indeed, uninitialized pointers can point anywhere in the RAM. Manipulating uninitialized pointers can lead to uncontrolled behavior and even destabilize the entire OS. It is therefore always a good idea to initialize a pointer. If the initialization value is not known, it is always possible to initialize the pointer to the NULL value. This value means: this pointer is pointing to nowhere. type *p = NULL; // Default value: p is pointing to nowhere. // Some code. p = &var; // p is pointing to variable var. The access to the value of var through the pointer p is done by dereferencing the pointer thanks to the dereference operator *. Here are some examples: double var=2; // Declares a variable of type double and set it to 2. double *p = &var; // p now points to var. std::cout<<*p<<std::endl; // Shows the value of var: 2. *p = 3; // var is now equal to 3. std::cout<<var<<std::endl;// Shows the value of var. std::cout<<p<<std::endl; //!! Shows the ADDRESS of var. Pointers are useful for avoiding the copy of arguments when they are passed to a function. For example, when the function prodscal is called, its arguments a and b are temporary copied. double prodscal(std::vector<double> a, std::vector<double> b) There are three main disadvantages to this approach: Increase in the RAM usage because of the copy of two vectors that can be potentially very long. Loss of computation time due to the copy of the two vectors. The function prodscal cannot modify the original vectors as it works with copies. RAM std::vector x Function prodscal std::vector a copy of x std::vector y std::vector b copy of y 9

10 Pointers can address these problems by using the following modified function prototype: double prodscal(std::vector<double> *a, std::vector<double> *b) The problems are then solved in the following way: Only pointers are copied. The increase in the RAM usage is only a few bits, regardless of the length of the vectors. Copying pointers is very fast. The function prodscal can now modify the original vectors. RAM std::vector x Function prodscal std::vector y *a *b However, the drawback is that pointers require changes in the implementation of the function. a.size() must be replaced by a->size() because the calling convention of a function by a pointer is different from the one used by a variable. a[i] and b[i] have to be replaced by (*a)[i] and (*b)[i] because it is necessary to dereference a pointer before using operators such as []. References References address the drawbacks of pointers and are more handy and transparent than pointers. A reference r to a variable var of type type is declared and initialized as follow: type &r = var; Note that, unlike pointers, a reference must always be initialized when declared. For accessing the value of var through its reference r, it is not necessary to dereference a reference. Technically, a reference is a dereferenced constant pointer. pointer: because, like pointers, a reference does not involve memory copy of the variable it refers to. constant: because, unlike pointers, a reference can only refer to one object and cannot be set to refer another object. dereferenced: because a reference does not need the dereference operator * for accessing the content of a variable. References can be seen as aliases of variables: the same memory content is referenced by two different names; as the two names Don Diego de la Vega and Zorro refer to the same person. 10

11 The above examples given for pointers can be translated for references as follows: double var=2; // Declares a variable of type double and set it to 2. double &r = var; // r now refers to var. std::cout<<r<<std::endl; // Shows the value of var: 2. r = 3; // var is now equal to 3. std::cout<<var<<std::endl;// Shows the value of var. std::cout<<r<<std::endl; //!! Shows the CONTENT of var. References can be used for passing arguments to a function with all the advantages of pointers and without the drawbacks of pointers. For example, the prototype of the function prodscal becomes: double prodscal(std::vector<double> &a, std::vector<double> &b) And that s it! No further changes are required in the body of the function. RAM std::vector x std::vector y Function prodscal kown as std::vector a kown as std::vector b Application: By starting from your last code for orthogonalizing two vectors, define a function orthogonalize which gets two vectors x and y passed by reference. At the end of the function, the argument y must be modified by the function orthogonalize. 11

12 GNURBS Gnurbs is a small software written in C++ that allows creating, visualizing and manipulating curves and surfaces. Adding features to this code is the topic of the next practical sessions. During this session, we will limit ourselves to a few simple exercises in order to better understand the organization of the code. Creating the Code::Blocks project and compiling. The first step is to create the Code::Blocks project and to compile a first executable. Gnurbs source code is included in the archive CAD_TP1_Code.zip. 1. Run CMake and change fields values Where is the source code and Where to build the binaries as follows: a. Where is the source code /home/user/bureau/1ermaster/lastnames/tp1/gnurbstp1 b. Where to build the binaries /home/user/bureau/1ermaster/lastnames/tp1/gnurbstp1/project 2. Then, click on Configure. Under Linux, CMake automatically locates the VTK libraries. On Windows it is necessary to change the value of the parameter VTK_DIR to C:/VTK/lib/cmake/vtk Click again on Configure and then click Generate. 4. Open the Code::Blocks project created into the project folder. 5. Select the Build target curve-static corresponding to the example program. 6. Run the compilation. 7. Execute the example program. The executable example shows a Lagrange curve on the screen. Control points of this curve are aligned with each other. There are different ways of interactions with the graphical interface: Mouse: Left button: rotates the camera. Scroll wheel: zoom. Left click on a control point: move the control point. Keyboard: r: replace the camera at its default position. q: close the window. 12

13 Homework When writing codes, humans are error prone. Luckily, the compiler can catch most of these errors and tells humans where they are wrong. It is therefore important to understand the compiler messages. The following pieces of code contain errors. Try to detect and correct them with the help of the compiler. Warning: some errors will NOT be detected by the compiler. #include <iostream> int main() int a = 3; std::cout << A << std::endl; return 0; #include <iostream> int main() int a = 3 std::cout << a << std::endl; return 0; #include <iostream> int main() double x = 2; std::cout << "Square of x = " << sqr(x) << std::endl; return 0; double sqr(double a) return (a*a); #include <iostream> // No compilation error here, but the answer is wrong. // Can you guess why? int main() double x = 10e e38; std::cout << x << std::endl; return 0; #include <iostream> #include <vector> int main() // Segmentation fault* at the execution here. Why? //* Means out of memory access. std::vector<double> a; a[0] = 9.0; std::cout << a[0] << std::endl; return 0; 13

14 Main primitive types in C/C++ Type Description Typical bit width Typical range char character 1 byte -127 to 127 unsigned char unsigned character 1 byte 0 to 255 int integer 4 bytes -2,147,483,648 to 2,147,483,647 unsigned int unsigned integer 4 bytes 0 to 4,294,967,295 short int short integer 2 bytes -32,768 to 32,767 unsigned short int unsigned short integer 2 bytes 0 to 65,535 long int (64 bits systems only) unsigned long int (64 bits systems only) long integer 4 bytes 9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 unsigned long integer 4 bytes 0 to 18,446,744,073,709,551,615 float floating number 4 bytes +/- 3.4 x 10 +/- 38 (~7 digits) double void double precision number empty or undefined(!) type 8 bytes +/- 1.7x 10 +/- 308 (~15 digits) not applicable How to navigate the STL: C++ Reference not applicable The web site C++ Reference ( or just type C++ Reference in Google) is a comprehensive listing of all the C and C++ standard functions and classes. If you wonder how to use a given function or class, you can just look for it in this website. For example, by typing vector into the search field at the top of the page, you can see that the class vector<any_type> owns a function returning its size. We strongly recommend you to first refer to this web site when you have questions like Does that function exist? or What does that function? Moreover, this website shows numerous and easy to understand example of how using a given function/class. Where to learn more about C++? The website openclassroom (former site du zero ) provides extensive lessons for a lot of programming languages and is very well suited for beginners. See for more information. 14

Sources: On the Web: Slides will be available on:

Sources: On the Web: Slides will be available on: C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,

More information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

Appendix K Introduction to Microsoft Visual C++ 6.0

Appendix K Introduction to Microsoft Visual C++ 6.0 Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):

More information

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program. Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

More information

Illustration 1: Diagram of program function and data flow

Illustration 1: Diagram of program function and data flow The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline

More information

The programming language C. sws1 1

The programming language C. sws1 1 The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan

More information

How to test and debug an ASP.NET application

How to test and debug an ASP.NET application Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult

More information

Creating Database Tables in Microsoft SQL Server

Creating Database Tables in Microsoft SQL Server Creating Database Tables in Microsoft SQL Server Microsoft SQL Server is a relational database server that stores and retrieves data for multi-user network-based applications. SQL Server databases are

More information

arrays C Programming Language - Arrays

arrays C Programming Language - Arrays arrays So far, we have been using only scalar variables scalar meaning a variable with a single value But many things require a set of related values coordinates or vectors require 3 (or 2, or 4, or more)

More information

Informatica e Sistemi in Tempo Reale

Informatica e Sistemi in Tempo Reale Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)

More information

AutoDWG DWGSee DWG Viewer. DWGSee User Guide

AutoDWG DWGSee DWG Viewer. DWGSee User Guide DWGSee User Guide DWGSee is comprehensive software for viewing, printing, marking and sharing DWG files. It is fast, powerful and easy-to-use for every expert and beginners. Starting DWGSee After you install

More information

Code::Blocks Student Manual

Code::Blocks Student Manual Code::Blocks Student Manual Lawrence Goetz, Network Administrator Yedidyah Langsam, Professor and Theodore Raphan, Distinguished Professor Dept. of Computer and Information Science Brooklyn College of

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

Data Tool Platform SQL Development Tools

Data Tool Platform SQL Development Tools Data Tool Platform SQL Development Tools ekapner Contents Setting SQL Development Preferences...5 Execution Plan View Options Preferences...5 General Preferences...5 Label Decorations Preferences...6

More information

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T)

Bachelors of Computer Application Programming Principle & Algorithm (BCA-S102T) Unit- I Introduction to c Language: C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating

More information

Beginner s Matlab Tutorial

Beginner s Matlab Tutorial Christopher Lum lum@u.washington.edu Introduction Beginner s Matlab Tutorial This document is designed to act as a tutorial for an individual who has had no prior experience with Matlab. For any questions

More information

Athena Knowledge Base

Athena Knowledge Base Athena Knowledge Base The Athena Visual Studio Knowledge Base contains a number of tips, suggestions and how to s that have been recommended by the users of the software. We will continue to enhance this

More information

Hypercosm. Studio. www.hypercosm.com

Hypercosm. Studio. www.hypercosm.com Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

DWGSee Professional User Guide

DWGSee Professional User Guide DWGSee Professional User Guide DWGSee is comprehensive software for viewing, printing, marking and sharing DWG files. It is fast, powerful and easy-to-use for every expert and beginners. Starting DWGSee

More information

Computer Programming C++ Classes and Objects 15 th Lecture

Computer Programming C++ Classes and Objects 15 th Lecture Computer Programming C++ Classes and Objects 15 th Lecture 엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University Copyrights 2013 Eom, Hyeonsang All Rights Reserved Outline

More information

University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python

University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python Introduction Welcome to our Python sessions. University of Hull Department of Computer Science Wrestling with Python Week 01 Playing with Python Vsn. 1.0 Rob Miles 2013 Please follow the instructions carefully.

More information

ECDL. European Computer Driving Licence. Spreadsheet Software BCS ITQ Level 2. Syllabus Version 5.0

ECDL. European Computer Driving Licence. Spreadsheet Software BCS ITQ Level 2. Syllabus Version 5.0 European Computer Driving Licence Spreadsheet Software BCS ITQ Level 2 Using Microsoft Excel 2010 Syllabus Version 5.0 This training, which has been approved by BCS, The Chartered Institute for IT, includes

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2010 G. Lipari (Scuola Superiore Sant Anna) Introduction

More information

CS 103 Lab Linux and Virtual Machines

CS 103 Lab Linux and Virtual Machines 1 Introduction In this lab you will login to your Linux VM and write your first C/C++ program, compile it, and then execute it. 2 What you will learn In this lab you will learn the basic commands and navigation

More information

Exercise 4 Learning Python language fundamentals

Exercise 4 Learning Python language fundamentals Exercise 4 Learning Python language fundamentals Work with numbers Python can be used as a powerful calculator. Practicing math calculations in Python will help you not only perform these tasks, but also

More information

Visual Basic 2010 Essentials

Visual Basic 2010 Essentials Visual Basic 2010 Essentials Visual Basic 2010 Essentials First Edition 2010 Payload Media. This ebook is provided for personal use only. Unauthorized use, reproduction and/or distribution strictly prohibited.

More information

C++ INTERVIEW QUESTIONS

C++ INTERVIEW QUESTIONS C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get

More information

Qlik REST Connector Installation and User Guide

Qlik REST Connector Installation and User Guide Qlik REST Connector Installation and User Guide Qlik REST Connector Version 1.0 Newton, Massachusetts, November 2015 Authored by QlikTech International AB Copyright QlikTech International AB 2015, All

More information

Scoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)

Scoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6) Semantic Analysis Scoping (Readings 7.1,7.4,7.6) Static Dynamic Parameter passing methods (7.5) Building symbol tables (7.6) How to use them to find multiply-declared and undeclared variables Type checking

More information

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint) TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Java - II Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 14, 2011 G. Lipari (Scuola Superiore Sant Anna) Introduction

More information

Tic, Tie & Calculate Quick Start Guide. Quick Start Guide

Tic, Tie & Calculate Quick Start Guide. Quick Start Guide Quick Start Guide 1 Table of Contents Quick Start Guide... 3 Welcome to Tic, Tie & Calculate... 3 Features Overview... 3 Important Installation Notes... 3 Installation... 4 Step 1: Receive Account Creation

More information

C++ Programming Language

C++ Programming Language C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract

More information

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4. 10 Steps to Developing a QNX Program Quickstart Guide Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v 6. 4 10 Steps to Developing a QNX Program Quickstart Guide 2008, QNX Software Systems GmbH & Co. KG. A Harman International Company. All rights

More information

Content Author's Reference and Cookbook

Content Author's Reference and Cookbook Sitecore CMS 6.5 Content Author's Reference and Cookbook Rev. 110621 Sitecore CMS 6.5 Content Author's Reference and Cookbook A Conceptual Overview and Practical Guide to Using Sitecore Table of Contents

More information

A computer running Windows Vista or Mac OS X

A computer running Windows Vista or Mac OS X lab File Management Objectives: Upon successful completion of Lab 2, you will be able to Define the terms file and folder Understand file and memory storage capacity concepts including byte, kilobyte,

More information

An Incomplete C++ Primer. University of Wyoming MA 5310

An Incomplete C++ Primer. University of Wyoming MA 5310 An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages

More information

Getting Started using the SQuirreL SQL Client

Getting Started using the SQuirreL SQL Client Getting Started using the SQuirreL SQL Client The SQuirreL SQL Client is a graphical program written in the Java programming language that will allow you to view the structure of a JDBC-compliant database,

More information

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London

More information

Visual Basic Programming. An Introduction

Visual Basic Programming. An Introduction Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides

More information

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement? 1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members

More information

Visual Studio 2008 Express Editions

Visual Studio 2008 Express Editions Visual Studio 2008 Express Editions Visual Studio 2008 Installation Instructions Burning a Visual Studio 2008 Express Editions DVD Download (http://www.microsoft.com/express/download/) the Visual Studio

More information

JavaScript: Introduction to Scripting. 2008 Pearson Education, Inc. All rights reserved.

JavaScript: Introduction to Scripting. 2008 Pearson Education, Inc. All rights reserved. 1 6 JavaScript: Introduction to Scripting 2 Comment is free, but facts are sacred. C. P. Scott The creditor hath a better memory than the debtor. James Howell When faced with a decision, I always ask,

More information

Lecture 2 Mathcad Basics

Lecture 2 Mathcad Basics Operators Lecture 2 Mathcad Basics + Addition, - Subtraction, * Multiplication, / Division, ^ Power ( ) Specify evaluation order Order of Operations ( ) ^ highest level, first priority * / next priority

More information

3 IDE (Integrated Development Environment)

3 IDE (Integrated Development Environment) Visual C++ 6.0 Guide Part I 1 Introduction Microsoft Visual C++ is a software application used to write other applications in C++/C. It is a member of the Microsoft Visual Studio development tools suite,

More information

Operating Systems. and Windows

Operating Systems. and Windows Operating Systems and Windows What is an Operating System? The most important program that runs on your computer. It manages all other programs on the machine. Every PC has to have one to run other applications

More information

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language

Simple C++ Programs. Engineering Problem Solving with C++, Etter/Ingber. Dev-C++ Dev-C++ Windows Friendly Exit. The C++ Programming Language Simple C++ Programs Engineering Problem Solving with C++, Etter/Ingber Chapter 2 Simple C++ Programs Program Structure Constants and Variables C++ Operators Standard Input and Output Basic Functions from

More information

Xcode Project Management Guide. (Legacy)

Xcode Project Management Guide. (Legacy) Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project

More information

13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES

13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES LESSON 13 Managing Devices OBJECTIVES After completing this lesson, you will be able to: 1. Open System Properties. 2. Use Device Manager. 3. Understand hardware profiles. 4. Set performance options. Estimated

More information

Microsoft Visual Studio 2010 Instructions For C Programs

Microsoft Visual Studio 2010 Instructions For C Programs Microsoft Visual Studio 2010 Instructions For C Programs Creating a NEW C Project After you open Visual Studio 2010, 1. Select File > New > Project from the main menu. This will open the New Project dialog

More information

Creating Web Services Applications with IntelliJ IDEA

Creating Web Services Applications with IntelliJ IDEA Creating Web Services Applications with IntelliJ IDEA In this tutorial you will: 1. 2. 3. 4. Create IntelliJ IDEA projects for both client and server-side Web Service parts Learn how to tie them together

More information

Xcode User Default Reference. (Legacy)

Xcode User Default Reference. (Legacy) Xcode User Default Reference (Legacy) Contents Introduction 5 Organization of This Document 5 Software Version 5 See Also 5 Xcode User Defaults 7 Xcode User Default Overview 7 General User Defaults 8 NSDragAndDropTextDelay

More information

Embroidery Fonts Plus ( EFP ) Tutorial Guide Version 1.0505

Embroidery Fonts Plus ( EFP ) Tutorial Guide Version 1.0505 Embroidery Fonts Plus ( EFP ) Tutorial Guide Version 1.0505 1 Contents Chapter 1 System Requirements.................. 3 Chapter 2 Quick Start Installation.................. 4 System Requirements................

More information

Top 72 Perl Interview Questions and Answers

Top 72 Perl Interview Questions and Answers Top 72 Perl Interview Questions and Answers 1. Difference between the variables in which chomp function work? Scalar: It is denoted by $ symbol. Variable can be a number or a string. Array: Denoted by

More information

Creating Custom Crystal Reports Tutorial

Creating Custom Crystal Reports Tutorial Creating Custom Crystal Reports Tutorial 020812 2012 Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or mechanical,

More information

Waspmote IDE. User Guide

Waspmote IDE. User Guide Waspmote IDE User Guide Index Document Version: v4.1-01/2014 Libelium Comunicaciones Distribuidas S.L. INDEX 1. Introduction... 3 1.1. New features...3 1.2. Other notes...3 2. Installation... 4 2.1. Windows...4

More information

INTRODUCTION to ESRI ARCGIS For Visualization, CPSC 178

INTRODUCTION to ESRI ARCGIS For Visualization, CPSC 178 INTRODUCTION to ESRI ARCGIS For Visualization, CPSC 178 1) Navigate to the C:/temp folder 2) Make a directory using your initials. 3) Use your web browser to navigate to www.library.yale.edu/mapcoll/ and

More information

Quickstart Tutorial. Bradford Technologies, Inc. 302 Piercy Road, San Jose, California 95138 800-622-8727 fax 408-360-8529 www.bradfordsoftware.

Quickstart Tutorial. Bradford Technologies, Inc. 302 Piercy Road, San Jose, California 95138 800-622-8727 fax 408-360-8529 www.bradfordsoftware. Quickstart Tutorial A ClickFORMS Tutorial Page 2 Bradford Technologies. All Rights Reserved. No part of this document may be reproduced in any form or by any means without the written permission of Bradford

More information

- Hour 1 - Introducing Visual C++ 5

- Hour 1 - Introducing Visual C++ 5 - Hour 1 - Introducing Visual C++ 5 Welcome to Hour 1 of Teach Yourself Visual C++ 5 in 24 Hours! Visual C++ is an exciting subject, and this first hour gets you right into the basic features of the new

More information

IBM FileNet eforms Designer

IBM FileNet eforms Designer IBM FileNet eforms Designer Version 5.0.2 Advanced Tutorial for Desktop eforms Design GC31-5506-00 IBM FileNet eforms Designer Version 5.0.2 Advanced Tutorial for Desktop eforms Design GC31-5506-00 Note

More information

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This

More information

Code Estimation Tools Directions for a Services Engagement

Code Estimation Tools Directions for a Services Engagement Code Estimation Tools Directions for a Services Engagement Summary Black Duck software provides two tools to calculate size, number, and category of files in a code base. This information is necessary

More information

Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide

Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide Open Crystal Reports From the Windows Start menu choose Programs and then Crystal Reports. Creating a Blank Report Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick

More information

Running your first Linux Program

Running your first Linux Program Running your first Linux Program This document describes how edit, compile, link, and run your first linux program using: - Gnome a nice graphical user interface desktop that runs on top of X- Windows

More information

2Creating Reports: Basic Techniques. Chapter

2Creating Reports: Basic Techniques. Chapter 2Chapter 2Creating Reports: Chapter Basic Techniques Just as you must first determine the appropriate connection type before accessing your data, you will also want to determine the report type best suited

More information

3. Programming the STM32F4-Discovery

3. Programming the STM32F4-Discovery 1 3. Programming the STM32F4-Discovery The programming environment including the settings for compiling and programming are described. 3.1. Hardware - The programming interface A program for a microcontroller

More information

Code::Block manual. for CS101x course. Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai - 400076.

Code::Block manual. for CS101x course. Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai - 400076. Code::Block manual for CS101x course Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai - 400076. April 9, 2014 Contents 1 Introduction 1 1.1 Code::Blocks...........................................

More information

FIRST STEPS WITH SCILAB

FIRST STEPS WITH SCILAB powered by FIRST STEPS WITH SCILAB The purpose of this tutorial is to get started using Scilab, by discovering the environment, the main features and some useful commands. Level This work is licensed under

More information

Lecture 5: Java Fundamentals III

Lecture 5: Java Fundamentals III Lecture 5: Java Fundamentals III School of Science and Technology The University of New England Trimester 2 2015 Lecture 5: Java Fundamentals III - Operators Reading: Finish reading Chapter 2 of the 2nd

More information

TUTORIAL 4 Building a Navigation Bar with Fireworks

TUTORIAL 4 Building a Navigation Bar with Fireworks TUTORIAL 4 Building a Navigation Bar with Fireworks This tutorial shows you how to build a Macromedia Fireworks MX 2004 navigation bar that you can use on multiple pages of your website. A navigation bar

More information

The VB development environment

The VB development environment 2 The VB development environment This chapter explains: l how to create a VB project; l how to manipulate controls and their properties at design-time; l how to run a program; l how to handle a button-click

More information

JetBrains ReSharper 2.0 Overview Introduction ReSharper is undoubtedly the most intelligent add-in to Visual Studio.NET 2003 and 2005. It greatly increases the productivity of C# and ASP.NET developers,

More information

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition 10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can

More information

G563 Quantitative Paleontology. SQL databases. An introduction. Department of Geological Sciences Indiana University. (c) 2012, P.

G563 Quantitative Paleontology. SQL databases. An introduction. Department of Geological Sciences Indiana University. (c) 2012, P. SQL databases An introduction AMP: Apache, mysql, PHP This installations installs the Apache webserver, the PHP scripting language, and the mysql database on your computer: Apache: runs in the background

More information

File Management Windows

File Management Windows File Management Windows : Explorer Navigating the Windows File Structure 1. The Windows Explorer can be opened from the Start Button, Programs menu and clicking on the Windows Explorer application OR by

More information

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage

More information

Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

More information

KPN SMS mail. Send SMS as fast as e-mail!

KPN SMS mail. Send SMS as fast as e-mail! KPN SMS mail Send SMS as fast as e-mail! Quick start Start using KPN SMS mail in 5 steps If you want to install and use KPN SMS mail quickly, without reading the user guide, follow the next five steps.

More information

PCSpim Tutorial. Nathan Goulding-Hotta 2012-01-13 v0.1

PCSpim Tutorial. Nathan Goulding-Hotta 2012-01-13 v0.1 PCSpim Tutorial Nathan Goulding-Hotta 2012-01-13 v0.1 Download and install 1. Download PCSpim (file PCSpim_9.1.4.zip ) from http://sourceforge.net/projects/spimsimulator/files/ This tutorial assumes you

More information

Getting Started with 1. Borland C++Builder Compiler

Getting Started with 1. Borland C++Builder Compiler Getting Started with 1 Borland C++Builder Compiler Objectives To be able to install and configure the Borland C++Builder Compiler. To be able to use a text editor to create C/C++ programs. To be able to

More information

RuleBender 1.1.415 Tutorial

RuleBender 1.1.415 Tutorial RuleBender 1.1.415 Tutorial Installing and Launching RuleBender Requirements OSX Getting Started Linux Getting Started Windows Getting Started Using the Editor The Main Window Creating and Opening Files

More information

Installing Java. Table of contents

Installing Java. Table of contents Table of contents 1 Jargon...3 2 Introduction...4 3 How to install the JDK...4 3.1 Microsoft Windows 95... 4 3.1.1 Installing the JDK... 4 3.1.2 Setting the Path Variable...5 3.2 Microsoft Windows 98...

More information

C++ Language Tutorial

C++ Language Tutorial cplusplus.com C++ Language Tutorial Written by: Juan Soulié Last revision: June, 2007 Available online at: http://www.cplusplus.com/doc/tutorial/ The online version is constantly revised and may contain

More information

Lab 1 Beginning C Program

Lab 1 Beginning C Program Lab 1 Beginning C Program Overview This lab covers the basics of compiling a basic C application program from a command line. Basic functions including printf() and scanf() are used. Simple command line

More information

Eventia Log Parsing Editor 1.0 Administration Guide

Eventia Log Parsing Editor 1.0 Administration Guide Eventia Log Parsing Editor 1.0 Administration Guide Revised: November 28, 2007 In This Document Overview page 2 Installation and Supported Platforms page 4 Menus and Main Window page 5 Creating Parsing

More information

Install Java Development Kit (JDK) 1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.html

Install Java Development Kit (JDK) 1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.html CS 259: Data Structures with Java Hello World with the IntelliJ IDE Instructor: Joel Castellanos e-mail: joel.unm.edu Web: http://cs.unm.edu/~joel/ Office: Farris Engineering Center 319 8/19/2015 Install

More information

Designing and Implementing Forms 34

Designing and Implementing Forms 34 C H A P T E R 34 Designing and Implementing Forms 34 You can add forms to your site to collect information from site visitors; for example, to survey potential customers, conduct credit-card transactions,

More information

Chapter One Introduction to Programming

Chapter One Introduction to Programming Chapter One Introduction to Programming 1-1 Algorithm and Flowchart Algorithm is a step-by-step procedure for calculation. More precisely, algorithm is an effective method expressed as a finite list of

More information

Contents. Launching FrontPage... 3. Working with the FrontPage Interface... 3 View Options... 4 The Folders List... 5 The Page View Frame...

Contents. Launching FrontPage... 3. Working with the FrontPage Interface... 3 View Options... 4 The Folders List... 5 The Page View Frame... Using Microsoft Office 2003 Introduction to FrontPage Handout INFORMATION TECHNOLOGY SERVICES California State University, Los Angeles Version 1.0 Fall 2005 Contents Launching FrontPage... 3 Working with

More information

MS Access: Advanced Tables and Queries. Lesson Notes Author: Pamela Schmidt

MS Access: Advanced Tables and Queries. Lesson Notes Author: Pamela Schmidt Lesson Notes Author: Pamela Schmidt Tables Text Fields (Default) Text or combinations of text and numbers, as well as numbers that don't require calculations, such as phone numbers. or the length set by

More information

Visual C++ 2010 Tutorial

Visual C++ 2010 Tutorial Visual C++ 2010 Tutorial Fall, 2011 Table of Contents Page No Introduction ------------------------------------------------------------------- 2 Single file program demo --------- -----------------------------------------

More information

Microsoft Access 2010 Overview of Basics

Microsoft Access 2010 Overview of Basics Opening Screen Access 2010 launches with a window allowing you to: create a new database from a template; create a new template from scratch; or open an existing database. Open existing Templates Create

More information

Visualization with Excel Tools and Microsoft Azure

Visualization with Excel Tools and Microsoft Azure Visualization with Excel Tools and Microsoft Azure Introduction Power Query and Power Map are add-ins that are available as free downloads from Microsoft to enhance the data access and data visualization

More information

Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved.

Introduction to Java Applications. 2005 Pearson Education, Inc. All rights reserved. 1 2 Introduction to Java Applications 2.2 First Program in Java: Printing a Line of Text 2 Application Executes when you use the java command to launch the Java Virtual Machine (JVM) Sample program Displays

More information

Introduction to Data Structures

Introduction to Data Structures Introduction to Data Structures Albert Gural October 28, 2011 1 Introduction When trying to convert from an algorithm to the actual code, one important aspect to consider is how to store and manipulate

More information

Getting Started with Command Prompts

Getting Started with Command Prompts Getting Started with Command Prompts Updated March, 2013 Some courses such as TeenCoder : Java Programming will ask the student to perform tasks from a command prompt (Windows) or Terminal window (Mac

More information

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage Outline 1 Computer Architecture hardware components programming environments 2 Getting Started with Python installing Python executing Python code 3 Number Systems decimal and binary notations running

More information

Chief Architect X6. Download & Installation Instructions. Chief Architect, Inc. 6500 N. Mineral Dr. Coeur d Alene, Idaho 83815 www.chiefarchitect.

Chief Architect X6. Download & Installation Instructions. Chief Architect, Inc. 6500 N. Mineral Dr. Coeur d Alene, Idaho 83815 www.chiefarchitect. Chief Architect X6 Download & Installation Instructions Chief Architect, Inc. 6500 N. Mineral Dr. Coeur d Alene, Idaho 83815 www.chiefarchitect.com Contents Chapter 1: Installation What s Included with

More information

CS 106 Introduction to Computer Science I

CS 106 Introduction to Computer Science I CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper

More information