Typed programming language. Scanf C function: description General characteristics c

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, synthesis digital devices 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, she changed the model so much finite state machine, which 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.

C++ programming language

Last update: 08/28/2017

The C++ programming language is a high-level compiled general-purpose programming language with static typing, which is suitable for creating the most various applications. Today, C++ is one of the most popular and widespread languages.

It has its roots in the C language, which was developed in 1969-1973 at Bell Labs by programmer Dennis Ritchie. In the early 1980s, Danish programmer Bjarne Stroustrup, then working at Bell Labs, developed C++ as an extension to the C language. In fact, in the beginning, C++ simply supplemented the C language with some object-oriented programming capabilities. And that’s why Stroustrup himself initially called it “C with classes.”

Subsequently, the new language began to gain popularity. New features were added to it that made it not just an addition to C, but a completely new programming language. As a result, “C with classes” was renamed to C++. And from then on, both languages ​​began to develop independently of each other.

C++ is a powerful language, inheriting rich memory capabilities from C. Therefore, C++ often finds its application in system programming, in particular, when creating operating systems, drivers, various utilities, antiviruses, etc. By the way, Windows OS is mostly written in C++. But only system programming the use of this language is not limited. C++ can be used in programs of any level where speed and performance are important. It is often used to create graphic applications, various application programs. It is also especially often used to create games with rich, rich visualization. In addition, recently the mobile direction has been gaining momentum, where C++ has also found its application. And even in web development, you can also use C++ to create web applications or some supporting services that serve web applications. In general, C++ is a widely used language in which you can create almost any type of program.

C++ is a compiled language, which means that the compiler translates source in C++ executable file, which contains a set of machine instructions. But different platforms have their own characteristics, so compiled programs cannot simply be transferred from one platform to another and run there. However, at the source code level, C++ programs are largely portable unless some OS-specific functions are used. And the availability of compilers, libraries and development tools for almost all common platforms allows you to compile the same C++ source code into applications for these platforms.

Unlike C, the C++ language allows you to write applications in an object-oriented style, representing a program as a collection of classes and objects interacting with each other. Which simplifies the creation of large applications.

Main stages of development

In 1979-80, Bjarne Stroustrup developed an extension to the C language - "C with Classes". In 1983 the language was renamed C++.

The first one was released in 1985 commercial version language C++, as well as the first edition of the book "The C++ Programming Language", which represented the first description of this language in the absence of an official standard.

Was released in 1989 a new version C++ 2.0 language, which included a number of new features. After this, the language developed relatively slowly until 2011. But at the same time, in 1998, the first attempt was made to standardize the language by the ISO organization (International Organization for Standardization). The first standard was called ISO/IEC 14882:1998, or C++98 for short. Subsequently, in 2003, a new version of the C++03 standard was published.

In 2011 it was published new standard C++11, which contained many additions and enriched the C++ language with a large number of new functionality. Following this, a small addition to the standard, also known as C++14, was released in 2014. And another key release of the language is scheduled for 2017.

Compilers and development environments

To develop programs in C++, you need a compiler - it translates the source code in C++ into an executable file, which you can then run. But at the moment there are many different compilers. They may differ in various aspects, in particular in the implementation of standards. A basic list of compilers for C++ can be found on Wikipedia. It is recommended for development to choose those compilers that are developing and implement all the latest standards. Thus, throughout this tutorial we will primarily use the freely available g++ compiler developed by the GNU Project.

You can also use integrated development environments (IDEs) to create programs, such as Visual Studio, Netbeans, Eclipse, Qt, etc.

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++

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
}

One more 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);
}

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 code or simply 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 standard functions, which 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 in 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.