 
                                INF160 IS Development Environments
AUBG, COS dept
Lecture 06
Title:
Dev Env: Code::Blocks
(Extract from Syllabus)
Reference: www.codeblocks.org
1
Lecture Contents:
 Code::Blocks – introduction
 Code::Blocks – functionality
 Code::Blocks – configuration
2
Code::Blocks – introduction
 Code::Blocks: The open source, cross platform, free C, C++ and
Fortran IDE.
 Code::Blocks is a free C, C++ and Fortran IDE built to meet the
most demanding needs of its users.
 Built around a plugin framework, Code::Blocks can be extended
with plugins. Any kind of functionality can be added by
installing/coding a plugin. For instance, compiling and debugging
functionality is already provided by plugins!
 Code::Blocks 13.12 is here! (as of March 2014)
3
Code::Blocks functionality
 Code::Blocks includes:
Code Editor
Compiler
Debugger
Other SW tools
4
Code::Blocks
How to Use?
5
Code::Blocks
how to use
 To download and set up Dev-C++:
Already installed in COS lab120
6
Code::Blocks
how to use
 To start Code::Blocks:
Start Menu >All Programs >CodeBlocks >CodeBlocks
Read and Close the “Tip of the Day” dialog box
7
Code::Blocks
how to use
To create project .cbp file
File > New > Project…
Select project category/type
Name the project – select project title
Locate the project – select folder to locate project in
8
Code::Blocks
how to use
 To add a new source file to an open project, in
case your choice was Empty project
File > New > Empty File
Type the source text of C++ program.
Save the file
• File > Save As
9
Code::Blocks
how to use
 To add an existing file to an open project:
Project > Add Files…
Locate and then click the name of the file you want
to add to the project, and then click the Open
button
10
Code::Blocks
how to use
To run a C++ program:
Type your source text
Save your project: How? (File > Save All)
Compile the source: How? (Build > Build)
Read, Analyze Compiler Progress messages
Run the program: How? (Build > Run)
11
Code::Blocks
how to use
 To debug a C++ program:
If there are compiler errors, you should re-edit
your source text in order to get successful
compilation
12
Code::Blocks
how to use
 To print program’s instructions:
File > Print…
Dialog box opens (check box line numbers?)
13
Code::Blocks
how to use
 To close a project:
File > Close Project
or
 File > Close all Projects
or
 File > Close workspace
14
Code::Blocks
how to use
 To open an existing project, .cbp file:
File > Open…
Open File dialog box gets opened
Navigate to the folder that contains the project
.cbp file
Click Open button
15
Code::Blocks
How to Configure?
16
Code::Blocks
how to configure
 Note: The asterisk on the
MyFirstSourceFile.cpp tab indicates that the
changes made to the file have not been saved.
17
Code::Blocks
how to configure
 NOTE: The font type and size used by default
are Courier New and 14 point, respectively. If
you want to change your editor window’s font
type or size, click
 Settings > Editor… > Editor settings tab, click
Choose
 When you are finished, click the OK button.
18
Code::Blocks
how to configure
 NOTE: You can change the appearance (for
example, the font, size, colors, and so on) of
the Command Prompt window by right-clicking
the window’s title bar and then clicking
Properties.
 When you are finished, click the Ok button to
close the Properties window.
19
Code::Blocks
how to configure
 NOTE:To display lines numbers in the editor
window:
 1. Settings > Editor… > Editor settings tab,
 2. Section other options, select the Line
Numbers check box.
20
Code::Blocks
how to configure
 Settings > Environment…
 Settings > Editor…
 Settings > Compiler…
 Settings > Debugger…
21
Exercises/Tasks
 Code::Blocks
 Write a C++ program to:
 display your personal data incl name, age, email
address
 Read two numeric data items
 Compute and display result of their addition,
subtraction, multiplication, division and modulus
(in case of integer data).
22
Exercises/Tasks
 To demonstrate advantages of Code::Blocks
 Back to MS Visual Studio
 Write a C++ program to operate on arrays:
#include <iostream>
using namespace std;
void main()
{
int m; // int m=10; cin>>m; const int m=10;
int arr[m];
for(int i=0; i<m; i++) { arr[i]=i*10; cout << arr[i] << ‘ ‘; }
}
23
Exercises/Tasks
 To demonstrate advantages of Code::Blocks
 Back to Code::Blocks
 Write a C++ program to operate on arrays:
#include <iostream>
using namespace std;
void main()
{
int m; // int m=10; cin>>m; const int m=10;
int arr[m];
for(int i=0; i<m; i++) { arr[i]=i*10; cout << arr[i] << ‘ ‘; }
}
24
Exercises/Tasks
 To demonstrate command line arguments in Code::Blocks
 Back to Code::Blocks
 Write a C++ program:
void main(int argc, char *argv[])
{
for(int i=0; i<argc; i++) { cout << ‘\n’ << argv[i]; }
}
 Run the program without command-line arguments
 Run the program with command-line arguments. How to specify?
Open cmd line window and run the program
25
Exercises/Tasks
 Write CompactProg project to calculate
Factorilal: facti(7), factr(7)
GCD: gcdi(40,15), gcdr(40,15)
Fibonacci: fibi(5), fibr(5)
 All functions and main() in the same file
26
Exercises/Tasks
#include <cstdlib>
#include <iostream>
using namespace std;
int factr(int); int facti(int);
int gcdr(int, int);
int fibr(int);
int main(int argc, char *argv[])
{
cout << factr(6) << “ “ << facti(6)<< “ “;
cout << ‘\n’ << gcdr(40,15);
cout ,, ‘\n’ << fibr(5);
system("PAUSE");
return EXIT_SUCCESS;
}
27
Exercises/Tasks
int factr(int n)
{
if (n==0 ) return 1;
return n *factr(n-1);
}
int facti(int n)
{
if (n==0 ) return 1;
int res=1;
for (int i=1; i <=n; i++) res *=i;
return res;
}
28
Exercises/Tasks
int gcdr(int m, int n)
{
if (n==0 ) return m;
return gcdr(n, m%n);
}
int fibr(int n)
{
if (n==0 || n==1 ) return 1;
return fibr(n-1) + fibr(n-2);
}
29
Exercises/Tasks
 To demonstrate:
How to create a static library
How to use a static library
30
Exercises/Tasks
 Write SBCreateStaticLib project to create a static
library .a file
 All functions definitions in one or more files
 File > New > Project… Select Static Library >Go
 Type project title
 Type folder to create project in
 Select Debug / Release option
 Build > Build
Static library .a file gets created
31
File functions01.cpp
//
// factorial - recursion, iteration
//
int factr(int n)
{
if (n==0 ) return 1;
return n *factr(n-1);
}
int facti(int n)
{
if (n==0 ) return 1;
int res=1;
for (int i=1; i <=n; i++) res *=i;
return res;
}
//
// greatest common divisor - recursion, iteration
//
int gcdr(int m, int n)
{
if (n==0 ) return m;
return gcdr(n, m%n);
}
int fibr(int n)
{
if (n==0 || n==1 ) return 1;
return fibr(n-1) + fibr(n-2);
}
32
Exercises/Tasks
 Write SBUseStaticLib project to use static library .a
file
 Source file – only main() function
 File > New > Project… Select Console Application >Go
 Type project title
 Type folder to create project in
 Select Debug / Release option
 Attention! It’s must to add the user library file. How?
33
Exercises/Tasks
 How?
 1. To set the location of the user library file
 2. to set the library name
34
Exercises/Tasks
 1. To set the location of the user library file
Settings >Compiler… > Search Directories tab
select Linker Tab
Add the folder where the library file is in
35
Exercises/Tasks
 2. to set the library name
Right click on the bolded project name
Choose Build options
Click the linker tab. Under the “Link libraries”
window, press the “Add” button and add the
library you wish your project to use.
Press OK button
36
Exercises/Tasks
 To run the application
Build > Build
Build > Run
Or
Build > Build and Run
37
File mainUseStaticLib01.cpp
#include <cstdlib>
#include <iostream>
using namespace std;
int facti(int), factr(int), fibr(int), gcdr(int, int);
int main(int argc, char *argv[])
{
cout << "\n Factoial = " << factr(6) << " " << facti(6);
cout << "\n GCDivisor = " << gcdr(40,15);
cout << "\n Fibonacci = " << fibr(4);
}
system("PAUSE");
return EXIT_SUCCESS;
38
Exercises/Tasks
 To demonstrate:
How to create a second static library
How to use a second static library
39
File functions02.cpp
#include <iostream>
void MyName()
{
std::cout << "\n\n My name is Stoyan\n";
}
void MyAddress()
{
std::cout << "\n\n My address is 1504 Sofia, BG\n";
}
40
File mainUseStaticLib02.cpp
#include <cstdlib>
#include <iostream>
using namespace std;
void MyName(), MyAddress();
int main(int argc, char *argv[])
{
MyName();
MyAddress();
system("PAUSE");
return EXIT_SUCCESS;
}
41
Exercises/Tasks
 To demonstrate:
How to use two static libraries in the same project
42
File mainUseTwoLibraries.cpp
#include <cstdlib>
#include <iostream>
using namespace std;
int facti(int), factr(int), fibr(int), gcdr(int, int);
void MyName(), MyAddress();
int main(int argc, char *argv[])
{
cout << "\n Factoial = " << factr(6) << "
cout << "\n GCDivisor = " << gcdr(40,15);
cout << "\n Fibonacci = " << fibr(4);
}
MyName();
MyAddress();
system("PAUSE");
return EXIT_SUCCESS;
" << facti(6);
43
Thank You
For
Your Attention!
44