§1 General information about the language. Stages of program design

The C/C++ Standard Library includes a number of functions for reading and writing to the console (keyboard and monitor). These functions read and write data as a simple stream of characters.

The concept of stream, used in programming, is closely related to the ordinary, everyday understanding of this word. The input stream can be compared to a pipe through which water (information) enters a pool (computer memory), and the output stream can be compared to a pipe through which water leaves the pool. An important feature of this pipe is that data can only move in one direction at a time. Even if the same pipe is used for input and output, this cannot happen at the same time: to switch the flow direction, it must be stopped, some action must be performed, and only then the flow can be directed in the opposite direction. Another feature of the stream is that it almost never runs dry. Sometimes it dries out, but this period cannot be long if the system is functioning normally.

The standard output function printf()

The printf() function is a standard output function. Using this function, you can display on the monitor screen a string of characters, a number, the value of a variable...

The printf() function has a prototype in stdio.h
int printf(char *control string, ...);

If successful, printf() returns the number of characters printed.

The control line contains two types of information: characters that are directly printed to the screen, and format specifiers that specify how the arguments are printed.

The printf() function is a formatted output function. This means that in the function parameters it is necessary to specify the format of the data that will be output. The data format is specified by format specifiers. The format specifier begins with a % character followed by a format code.

Format specifiers:

%With symbol
%d integer decimal number
%i integer decimal number
%e decimal number in the form x.xx e+xx
%E decimal number in the form x.xx E+xx
%f
%F decimal floating point number xx.xxxx
%g %f or %e, whichever is shorter
%G %F or %E, whichever is shorter
%o octal number
%s character string
%u unsigned decimal number
%x hexadecimal number
%X hexadecimal number
%% symbol %
%p pointer
%n pointer

In addition, l and h modifiers can be applied to format commands.

%ld print long int
%hu stamp short unsigned
%Lf long double stamp

In the format specifier, after the % symbol the precision (number of digits after the decimal point) can be specified. The precision is set as follows: %.n<код формата>. Where n is the number of digits after the decimal point, and<код формата>- one of the codes given above.

For example, if we have a variable x=10.3563 of float type and we want to display its value accurate to 3 decimal places, then we should write:

printf("Variable x = %.3f",x);

Result:
Variable x = 10.356

You can also specify the minimum width of the field allocated for printing. If the line or number is larger than the specified field width, then the line or number is printed in full.

For example, if you write:

printf("%5d",20);

then the result will be as follows:
20

Please note that the number 20 was not printed from the very beginning of the line. If you want the unused spaces of the field to be filled with zeros, then you need to put a 0 symbol in front of the field width.

For example:

printf("%05d",20);

Result:
00020

In addition to data format specifiers, the control line may contain control characters:

\b BS, bottom
\f New page, page change
\n New line, line feed
\r Carriage return
\t Horizontal tabulation
\v Vertical tab
\" Double quote
\" Apostrophe
\\ Backslash
\0 Null character, null byte
\a Signal
\N Octal constant
\xN Hexadecimal constant
\? Question mark

Most often you will use the \n character. With this control character you can go to a new line. Look at the example programs and you will understand everything.

Examples of programs.

/* Example 1 */
#include

void main(void)
{
int a,b,c; // Announcement variables a,b,c
a=5;
b=6;
c=9;
printf("a=%d, b=%d, c=%d",a,b,c);
}

Result of the program:
a=5, b=6, c=9

/* Example 2 */
#include

void main(void)
{
float x,y,z;

X=10.5;
y=130.67;
z=54;

Printf("Object coordinates: x:%.2f, y:%.2f, z:%.2f", x, y, z);
}

Result of the program:
Object coordinates: x:10.50, y:130.67, z:54.00

/* Example 3 */
#include

void main()
{
int x;

X=5;
printf("x=%d", x*2);
}

Result of the program:
x=10

/* Example 4 */
#include

void main(void)
{
printf("\"Text in quotes\"");
printf("\nOxygen content: 100%%");
}

Result of the program:
"Text in quotes"
Oxygen content: 100%

/* Example 5 */
#include

void main(void)
{
int a;

A=11; // 11 in decimal is equal to b in hexadecimal
printf("a-dec=%d, a-hex=%X",a,a);
}

Result of the program:
a-dec=11, a-hex=b

/* Example 6 */
#include

void main(void)
{
char ch1,ch2,ch3;

Ch1="A";
ch2="B";
ch3="C";

Printf("%c%c%c",ch1,ch2,ch3);
}

Result of the program:
ABC

/* Example 7 */
#include

void main(void)
{
char *str="My string.";

Printf("This is %s",str);
}

Result of the program:
This is My line.

/* Example 8 */
#include

void main(void)
{
printf("Hello!\n"); // After printing there will be a transition to a new line - \n
printf("My name is Pavel."); // This will be printed on a new line
}

Result of the program:
Hello!
My name is Pavel.

The standard input function scanf()

The scanf() function is a formatted input function. With its help, you can enter data from a standard input device (keyboard). Input data can be integers, floating point numbers, characters, strings, and pointers.

The scanf() function has the following prototype in stdio.h:
int scanf(char *control string);

The function returns the number of variables that have been assigned a value.

The control string contains three types of characters: format specifiers, spaces, and other characters. Format specifiers begin with the % character.

Format specifiers:

When entering a string using scanf functions() (format specifier %s), the line is entered before the first space!! those. if you enter the string "Hello world!" using scanf() function


scanf("%s",str);

then after entering the resulting string, which will be stored in the str array, will consist of one word “Hello”. THE FUNCTION ENTERS A STRING BEFORE THE FIRST SPACE! If you want to enter strings with spaces, then use the function

char *gets(char *buf);

With the gets() function you can enter full strings. The gets() function reads characters from the keyboard until the newline character (\n) appears. The newline character itself appears when you press enter. The function returns a pointer to buf. buf - buffer (memory) for the input string.

Although gets() is not the topic of this article, let's write an example program that allows you to enter an entire line from the keyboard and display it on the screen.

#include

void main(void)
{
char buffer; // array (buffer) for the input string

Gets(buffer); // enter a line and press enter
printf("%s",buffer); // output the entered string to the screen
}

Another important note! To enter data using the scanf() function, it needs to pass variable addresses as parameters, not the variables themselves. To get the address of a variable, you need to precede the variable name with an & (ampersand). The & sign means taking the address.

What does address mean? I'll try to explain. In the program we have a variable. A variable stores its value in computer memory. So this is the address that we get using & is the address in the computer memory where the value of the variable is stored.

Let's look at an example program that shows us how to use &

#include

void main(void)
{
int x;

Printf("Enter variable x:");
scanf("%d",&x);
printf("Variable x=%d",x);
}

Now let's return to the control line of the scanf() function. Again:

int scanf(char *control string);

The space character on the control string commands one or more spaces to be skipped in the input stream. In addition to the space, a tab or newline character can be perceived. A non-null character indicates that the character is read and discarded.

The separators between the two numbers you enter are space, tab, or newline. The * after the % and before the format code (format specifier) ​​commands the data type to be read, but not assigned to that value.

For example:

scanf("%d%*c%d",&i,&j);

entering 50+20 will set variable i to 50, variable j to 20, and the + character will be read and ignored.

The format command can specify the largest field width to be read.

For example:

scanf("%5s",str);

indicates the need to read the first 5 characters from the input stream. If you enter 1234567890ABC, the str array will only contain 12345, the remaining characters will be ignored. Separators: space, tab and newline - when entering a symbol, they are treated like all other characters.

If any other characters occur in the control string, they are intended to identify and skip the corresponding character. Character stream 10plus20 operator

scanf("%dplus%d",&x,&y);

will assign the value 10 to the variable x, the value 20 to the variable y, and will skip the plus characters because they occur in the control string.

One of the powerful features of the scanf() function is its ability to specify a scanset. The search set defines the set of characters with which the characters read by the scanf() function will be compared. The scanf() function reads characters as long as they appear in the search set. As soon as the character that is entered is not found in the search set, the scanf() function moves to the next format specifier. The search set is defined by a list of characters enclosed in square brackets. The % sign is placed before the opening bracket. Let's look at this with an example.

#include

void main(void)
{
char str1, str2;
scanf("%%s", str1, str2);
printf("\n%s\n%s",str1,str2);
}
Let's enter a set of characters:
12345abcdefg456

The program will display on the screen:
12345
abcdefg456

When specifying a search set, you can also use the hyphen character to specify spacing, as well as the maximum width of the input field.

scanf("%10", str1);

You can also define characters that are not included in the search set. The first of these characters is preceded by a ^. Many characters differentiate between lowercase and uppercase letters.

Let me remind you that when using the scanf() function, you need to pass variable addresses to it as parameters. The code above was written:

char str; // array of 80 characters
scanf("%s",str);

Note that str is not preceded by &. This is done because str is an array and the array name - str is a pointer to the first element of the array. Therefore, the & sign should not be used. We already pass the address to the scanf() function. Well, simply put, str is the address in computer memory where the value of the first element of the array will be stored.

Examples of programs.

Example 1.
This program displays the request "How old are you?:" and waits for data input. If, for example, you enter the number 20, the program will display the line “You are 20 years old.”. When calling the scanf() function, we put an & sign in front of the age variable, since the scanf() function needs variable addresses. The scanf() function will write the entered value to the specified address. In our case, the entered value 20 will be written to the address of the age variable.

/* Example 1 */

#include

void main(void)
{
int age;

Printf("\nHow old are you?:");
scanf("%d",&age);
printf("You are %d years old.", age);
}

Example 2.
Calculator program. This calculator can only add numbers. When you enter 100+34, the program will produce the result: 100+34=134.

/* Example 2 */

#include

void main(void)
{
int x, y;

Printf("\nCalculator:");
scanf("%d+%d", &x, &y);
printf("\n%d+%d=%d", x, y, x+y);
}

Example 3.
This example shows how to set the reading field width. In our example, the field width is five characters. If you enter a line with big amount characters, then all characters after the 5th will be discarded. Notice the scanf() function call. The & sign does not precede the array name name because the array name name is the address of the first element of the array.

/* Example 3 */

#include

void main(void)
{
char name;

Printf("\nEnter your username (no more than 5 characters):");
scanf("%5s", name);
printf("\nYou entered %s", name);
}

Example 4.
The last example in this article shows how a search set can be used. After starting the program, enter a number from 2 to 5.

/* Example 4 */

#include

void main(void)
{
char bal;

Printf("Your rating is 2,3,4,5:");
scanf("%", &bal);
printf("\nRating %c", bal);
}

1. Introduction

Programming requires new universal algorithmic models, and hardware implements algorithms not only in a different form, but also on the basis of a different algorithmic model - automata. Borrowing technology from hardware development is the key idea behind automata programming. However, digital device synthesis is different from programming. But when borrowing a model, on the one hand, it is not advisable to change it significantly, and, on the other hand, one cannot ignore the already existing theory and practice of programming.

Next, we will look at the SWITCH technology for designing automata programs, in which you encounter similar processes all the time. On the one hand, it changed the finite state machine model so much that it actually took it beyond the scope of automata theory. And, on the other hand, it introduces concepts into programming that are difficult for programmers to perceive, and, at times, are simply superfluous, because there are more familiar analogues from program theory and programming practice.

As a basis for discussing the problems of automatic programming, we will take the recent lecture by Shalyto A.A. and his “programming” articles towards the definition of the automatic programming paradigm.

These tutorials are for everyone, whether you're new to programming or have extensive programming experience in other languages! This material is for those who want to learn the C/C++ languages ​​from its very basics to the most complex structures.

C++ is a programming language, knowledge of this programming language will allow you to control your computer on top level. Ideally, you will be able to make the computer do whatever you want. Our site will help you master the C++ programming language.

Installation /IDE

The very first thing you should do before you start learning C++ is to make sure that you have an IDE - an integrated development environment (the program in which you will program). If you don't have an IDE, then here you go. Once you decide on the choice of IDE, install it and practice creating simple projects.

Introduction to C++

The C++ language is a set of commands that tell the computer what to do. This set of commands is usually called source or just code. The commands are either "functions" or " keywords" Keywords (C/C++ reserved words) are the basic building blocks of the language. Functions are complex building blocks because they are written in terms of simpler functions - you'll see this in our very first program, which is shown below. This structure of functions resembles the contents of a book. The content can show the chapters of the book, each chapter in the book can have its own content consisting of paragraphs, each paragraph can have its own subparagraphs. Although C++ provides many common functions and reserved words that you can use, there is still a need to write your own functions.

What part of the program does it start at? Each program in C++ has one function, it is called the main or main function, program execution begins with this function. From the main function, you can also call any other functions, whether they are ones we wrote or, as mentioned earlier, provided by the compiler.

So how do you access these Standard Features? To access the standard functions that come with the compiler, you need to include the header file using the preprocessor directive - #include . Why is this effective? Let's look at an example work program:

#include << "Моя первая программа на С++\n"; cin.get(); }

Let us consider in detail the elements of the program. #include is a "preprocessor" directive that tells the compiler to put the code from the iostream header file into our program before creating the executable. By connecting a header file to a program, you get access to many different functions that you can use in your program. For example, the cout operator requires iostream . Line using namespace std; tells the compiler to use a group of functions that are part of the std standard library. This line also allows the program to use operators such as cout . The semicolon is part of C++ syntax. It tells the compiler that this is the end of the command. You'll see in a moment that semicolons are used to terminate most commands in C++.

The next important line of the program is int main(). This line tells the compiler that there is a function called main and that the function returns an integer. Curly braces ( and ) signal the start (and end) of a function. Curly braces are also used in other blocks of code, but they always indicate one thing - the beginning and end of the block, respectively.

In C++, the cout object is used to display text (pronounced "C out"). He uses symbols<< , известные как «оператор сдвига», чтобы указать, что отправляется к выводу на экран. Результатом вызова функции cout << является отображение текста на экране. Последовательность \n фактически рассматривается как единый символ, который обозначает новую строку (мы поговорим об этом позже более подробно). Символ \n перемещает курсор на экране на следующую строку. Опять же, обратите внимание на точку с запятой, её добавляют в конец, после каждого оператора С++.

The next command is cin.get() . This is another function call that reads data from the input data stream and waits for the ENTER key to be pressed. This command keeps the console window from closing until the ENTER key is pressed. This gives you time to see the output of the program.

Upon reaching the end of the main function (the closing curly brace), our program will return the value 0 to the operating system. This return value is important because by analyzing it, the OS can judge whether our program completed successfully or not. A return value of 0 means success and is returned automatically (but only for the int data type; other functions require you to manually return the value), but if we wanted to return something else, such as 1, we would have to do it manually.

#include using namespace std; int main() ( cout<<"Моя первая программа на С++\n"; cin.get(); return 1; }

To consolidate the material, type the program code into your IDE and run it. Once the program has run and you've seen the output, experiment a little with the cout statement. This will help you get used to the language.

Be sure to comment on your programs!

Add comments to your code to make it clearer not only for yourself but also for others. The compiler ignores comments when executing code, allowing you to use any number of comments to describe the actual code. To create a comment, use or // , which tells the compiler that the rest of the line is a comment, or /* and then */ . When you're learning to program, it's useful to be able to comment on parts of the code to see how the output of the program changes. You can read in detail about the commenting technique.

What to do with all these types of variables?

Sometimes it can be confusing to have multiple variable types when some variable types seem to be redundant. It is very important to use the correct variable type, as some variables require more memory than others. Additionally, due to the way they are stored in memory, floating point numbers, the float and double data types are "imprecise" and should not be used when a precise integer value needs to be stored.

Declaring Variables in C++

To declare a variable, use the syntax type<имя>; . Here are some examples of variable declarations:

Int num; char character; float num_float;

It is permissible to declare several variables of the same type on one line; to do this, each of them must be separated by a comma.

Int x, y, z, d;

If you've looked closely, you may have seen that a variable declaration is always followed by a semicolon. You can learn more about the convention “on naming variables”.

Common mistakes when declaring variables in C++

If you try to use a variable that is not declared, your program will not compile and you will receive an error message. In C++, all language keywords, all functions, and all variables are case sensitive.

Using Variables

So now you know how to declare a variable. Here is an example program demonstrating the use of a variable:

#include using namespace std; int main() ( int number; cout<< "Введите число: "; cin >>number; cin.ignore(); cout<< "Вы ввели: "<< number <<"\n"; cin.get(); }

Let's take a look at this program and examine its code, line by line. The keyword int indicates that number is an integer. The cin >> function reads the value into number , the user must press enter after the entered number. cin.ignore() is a function that reads a character and ignores it. We have organized our input into the program; after entering a number, we press the ENTER key, a symbol that is also transmitted to the input stream. We don't need it, so we discard it. Keep in mind that the variable was declared as an integer type, if the user tries to enter a decimal number, it will be truncated (that is, the decimal part of the number will be ignored). Try entering a decimal number or a sequence of characters, when you run the example program, the answer will depend on the input value.

Note that when printing from a variable, quotes are not used. The absence of quotes tells the compiler that there is a variable, and therefore that the program should check the value of the variable in order to replace the variable name with its value at execution. Multiple shift statements on the same line are perfectly acceptable and the output will be done in the same order. You should separate string literals (strings enclosed in quotes) and variables, giving each its own shift operator<< . Попытка поставить две переменные вместе с одним оператором сдвига << выдаст сообщение об ошибке . Не забудьте поставить точку с запятой. Если вы забыли про точку с запятой, компилятор выдаст вам сообщение об ошибке при попытке скомпилировать программу.

Changing and comparing values

Of course, no matter what type of data you're using, variables aren't very interesting without the ability to change their value. The following shows some operators used in conjunction with variables:

  • * multiplication,
  • - subtraction,
  • + addition,
  • / division,
  • = assignment,
  • == equality,
  • >more
  • < меньше.
  • != unequal
  • >= greater than or equal to
  • <= меньше или равно

Operators that perform mathematical functions must be used to the right of the assignment sign in order to assign the result to the variable on the left.

Here are some examples:

A = 4 * 6; // use line comment and semicolon, a is equal to 24 a = a + 5; // equal to the sum of the original value and five a == 5 // does not assign five, checks whether it is equal to 5 or not

You'll often use == in constructs such as conditional statements and loops.

A< 5 // Проверка, a менее пяти? a >5 // Check, is a more than five? a == 5 // Checking, is a equal to five? a != 5 // Check, is it not equal to five? a >= 5 // Check if a is greater than or equal to five? a<= 5 // Проверка, a меньше или равно пяти?

These examples don't show the use of comparison signs very clearly, but when we start studying selection operators, you'll understand why this is necessary.

C++ (read c-plus-plus) is a compiled, statically typed general-purpose programming language in which you can create programs of any level of complexity.
For more than 20 years, this language has been among the three most popular and in-demand programming languages. (You can verify this by visiting the TIOBE website).
The language originated in the early 1980s, when Bell Labs employee Björn Stroustrup came up with a number of improvements to the C language for his own needs.

Bjarne Stroustrup – creator of the C++ language

Stroustrup decided to extend the C language with the capabilities found in the Simula language. C, being the base language of the UNIX system on which Bell computers ran, is fast, feature-rich, and portable. Stroustrup added the ability to work with classes and objects. As a result, practical modeling problems turned out to be easy to solve both in terms of development time (thanks to the use of Simula-like classes) and in terms of computation time (thanks to the speed of C).
Here's how the language developer himself talks about it:



In 1998, the first language standard, known as C++98, was published by a standards committee. C++ continues to evolve to meet today's demands. One of the groups developing the C++ language and submitting proposals for improving it to the C++ Standards Committee is Boost, which is engaged, among other things, in improving the capabilities of the language by adding metaprogramming features to it. The latest standard was released in 2017 and is called C++17. The next standard will not be long in coming and is expected to appear in 2020.
Nobody owns the rights to the C++ language; it is free. In March 2016, a working group WP21 C++ was created in Russia. The group was organized to collect proposals for the C++ standard, send them to a committee and defend them at general meetings of the International Organization for Standardization.
C++ is a multi-paradigm language (from the word paradigm - a style of writing computer programs), including a wide range of different programming styles and technologies. It is often classified as an object-oriented language, but strictly speaking, this is not the case. During the work process, the developer receives absolute freedom in choosing tools so that the problem solved using a particular approach is solved as efficiently as possible. In other words, C++ does not force the programmer to adhere to only one style of program development (for example, object-oriented).
C++ has a rich standard library that includes common containers and algorithms, I/O, regular expressions, multithreading support, and other features. C++ has influenced many programming languages, including: Java, C#, D. Since C++ belongs to a family of languages ​​based on the syntax of the C language, you can easily master other programming languages ​​of this family: JavaScript, PHP, Perl, Objective-C and many others . etc., including the parent language itself - C. ()
During its existence, the C++ language has acquired persistent myths that are easily refuted (see here: Part 1 and Part 2)

History of the language and standards release

1983

The creator of the language is Björn Stroustrup, a Bell Labs employee, introduced an early version of the C++ language (“C with classes”)

1985

First commercial release of C++, the language takes on its modern name

1986

Release of the first edition of The C++ Programming Language - a book dedicated to C++ written by Björn Stroustrup

1998

The international standard for the C++ language has been ratified: ISO/IEC 14882:1998 “Standard for the C++ Programming Language”

2003
2005

Library Technical Report 1 (TR1) has been released. While not officially part of the standard, the report described extensions to the standard library that should be included in the next version of the C++ language.

2011

Release of a new standard – C++11 or ISO/IEC 14882:2011; the new standard included additions to the language core and expansion of the standard library, including most of TR1

2014

Release of the C++14 standard (“International Standard ISO/IEC 14882:2014(E) Programming Language C++”); C++14 can be seen as a small extension over C++11, containing mostly bug fixes and minor improvements

2017

The release of a new standard – C++1z (C++17). This standard introduced many changes and additions. For example, STD included libraries of the C11 standard, a file system based on boost::filesystem, and most of the experimental TS I library.

2020

C++20 is the unofficial name of the ISO/IEC standard for the C++ programming language, which is expected to follow C++17. Draft N4800 standard.

C++ Philosophy

In his book The Design and Evolution of C++ (2007), Björn Stroustrup describes the principles he followed when designing C++ (abbreviated):

  • Get a general-purpose language with static data types, the efficiency and portability of the C language.
  • Directly and comprehensively support a variety of programming styles.
  • Give the programmer freedom of choice, even if it gives him the opportunity to choose wrongly.
  • Maintain compatibility with C as much as possible, thereby making an easy transition from C programming possible.
  • Avoid discrepancies between C and C++: any construct that is valid in both languages ​​must mean the same thing in each of them and lead to the same program behavior.
  • Avoid features that are platform dependent or not universal.
  • “Don't pay for what you don't use” - no language feature should lead to a decrease in the performance of programs that do not use it.
  • Do not require an overly complicated programming environment.

C and C++

The syntax of C++ is inherited from the C language. Although, formally, one of the principles of C++ remains maintaining compatibility with the C language, in fact, the standardization groups for these languages ​​do not interact, and the changes they make not only do not correlate, but often fundamentally contradict each other ideologically. Thus, the elements that the new C standards add to the kernel are in the C++ standard elements of the standard library and are not in the kernel at all, for example, dynamic arrays, arrays with fixed boundaries, parallel processing facilities. According to Stroustrup, combining the development of these two languages ​​would be of great benefit, but it is unlikely to be possible for political reasons. So practical compatibility between C and C++ will gradually be lost.
In this example, depending on the compiler used, either “C++” or “C” will be output:

Program 9.1

#include int main() ( printf("%s\n", (sizeof("a") == sizeof(char)) ? "C++" : "C"); return 0; )

This is due to the fact that character constants in C are of type int , and in C++ they are of type char , but the sizes of these types are different.

Application Lifecycle Models

Life cycle software is a period of time that begins from the moment a decision is made on the need to create a software product and ends at the moment it is completely withdrawn from service. This cycle is the process of building and developing software. There are several life cycle models.
Cascade model life cycle (English waterfall model) was proposed in 1970 by Winston Royce. It provides for the sequential implementation of all stages of the project in a strictly fixed order. The transition to the next stage means the complete completion of work at the previous stage. The requirements determined at the stage of requirements formation are strictly documented in the form of technical specifications and are recorded for the entire development of the project. Each stage culminates in the release of a complete set of documentation sufficient to allow development to be continued by another development team.
Project stages according to the waterfall model:

  1. Formation of requirements;
  2. Design;
  3. Implementation;
  4. Testing;
  5. Implementation;
  6. Operation and maintenance.

In the cascade model, the transition from one project phase to another assumes that the result of the previous phase is completely correct. In large projects this is almost impossible to achieve. Therefore, this model is only suitable for developing a small project. (W. Royce himself did not adhere to this model and used an iterative model).
Iterative model
An alternative to the cascade model is the iterative and incremental development (IID) model, which received from T. Gilb in the 70s. name of the evolutionary model. The IID model involves breaking the project life cycle into a sequence of iterations, each of which resembles a “mini-project”, including all development processes applied to the creation of smaller pieces of functionality compared to the project as a whole. The goal of each iteration is to obtain a working version of the software system, including functionality defined by the integrated content of all previous and current iterations. The result of the final iteration contains all the required functionality of the product. Thus, with the completion of each iteration, the product receives an increment - an increment - to its capabilities, which, therefore, develop evolutionarily.


Various variants of the iterative approach are implemented in most modern development methodologies:

Development Process - Rational Unified Process (RUP)

Rational Unified Process (RUP)(rational unified process) is a software development methodology maintained by Rational Software (IBM). The methodology provides recommendations for all stages of development: from business modeling to testing and commissioning of the finished program. The Unified Modeling Language (UML) is used as a modeling language.
The complete product development life cycle consists of four phases, each of which includes one or more iterations.

  • Initial stage (Inception)
  • Determining the scope of the project and the amount of resources required. The basic requirements, limitations and key functionality of the product are determined. Risks are assessed. Action planning. At the end of the initial phase, the achievement of the Lifecycle Objective Milestone is assessed, which presupposes an agreement between stakeholders to continue the project.

  • Clarification
  • Documenting requirements. Design, implementation and testing of executable architecture. Clarification of terms and costs. Reducing key risks. Successful completion of the development phase means reaching the Lifecycle Architecture Milestone.

  • Construction
  • In the “Build” phase, most of the product’s functionality is implemented: the application design is completed, the source code is written. The Build phase ends with the first external release of the system and the Initial Operational Capability milestone.

  • Introduction
  • In the “Implementation” phase, the final version of the product is created and transferred from the developer to the customer. This includes a beta testing program, user training, and determining the quality of the product. In case the quality does not meet user expectations or the criteria set in the Start phase, the Implementation phase is repeated again. Completing all goals means achieving the Product Release milestone and completing the full development cycle.



"Information technology. System and software engineering. Software life cycle processes". This standard was adopted by the Federal Agency for Technical Regulation and Metrology of the Russian Federation and is similar to the international standard ISO/IEC 12207:2008. This standard establishes a general structure of software life cycle processes that can be followed in the software industry. The standard does not propose a specific life cycle model. Its provisions are common to any life cycle models, methods and technologies for software creation. It describes the structure of life cycle processes without specifying how to implement or complete the activities and tasks included in those processes.

Presentation for the lesson
Message topics
  • Free Software Foundation (FSF)
  • Free software licenses
  • FreeSoftware and Open Source
  • History of the development of programming languages
  • The history of the C language. C and C++
  • Story
  • Criticism of C++
  • History of UNIX
  • Spiral software life cycle model
  • UML (Unified Modeling Language)
  • Microsoft Solutions Framework
  • IDE for C/C++ programming on Windows
  • C/C++ compilers
  • Creating a Console Application on Windows
Questions
  1. Why is the waterfall model of software development not used in large projects?
  2. What is the difference between waterfall and iterative development models?
  3. List the stages of software development in the Rational Unified Process (RUP) methodology

Learning the basics and intricacies of the C++ programming language. A textbook with practical tasks and tests. Do you want to learn to program? Then you are in the right place - here is free programming training. Whether you're experienced or not, these programming lessons will help you get started creating, compiling, and debugging C++ programs in a variety of development environments: Visual Studio, Code::Blocks, Xcode, or Eclipse.

Lots of examples and detailed explanations. Perfect for both beginners (dummies) and more advanced ones. Everything is explained from scratch to the very details. These lessons (200+) will give you a good base/foundation in understanding programming not only in C++, but also in other programming languages. And it's absolutely free!

Also covered is the step-by-step creation of a game in C++, the SFML graphics library and more than 50 tasks to test your skills and knowledge in C++. An additional bonus is.

For reposting +20 to karma and my gratitude!

Chapter No. 0. Introduction. Beginning of work

Chapter No. 1. C++ Basics

Chapter No. 2. Variables and basic data types in C++

Chapter No. 3. Operators in C++

Chapter No. 4. Scope and other types of variables in C++

Chapter No. 5. The order in which code is executed in a program. Loops and branches in C++