Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/76: Рейтинг темы: голосов - 76, средняя оценка - 4.72
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323

Что изучать для совершенствования знаний по C++

08.11.2018, 09:25. Показов 19535. Ответов 361

Изучил уже до ООП, вопрос что делать дальше? Могу ли я уже писать программы, с чего начинать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2018, 09:25
Ответы с готовыми решениями:

Что изучать после получения базовых знаний по c#
В каком направлении дальше двигаться? Или попытаться устроиться стажером для начала? А там дальше скажут в каком направлении двигаться...

Какой язык и технологию изучать после получения средних знаний
Здравствуйте! Я сейчас в 9 классе, буду поступать в техникум...Хорошие знания C#.NET, LINQ, ADO.NET, скоро буду начинать учить ASP.NET, и...

Ссылки для изучения и совершенствования
Ha всякий случай, несколько ссылок, больше на Rutracker. He знаю других трекеров c поиском в этих категориях. Темы c наибольшим спросом...

361
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
06.01.2019, 11:44  [ТС]
8Observer8,

I get error, when use command on terminal
fatal: not a git repository (or any of the parent directories): .git
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
06.01.2019, 12:20
You must run the commands in the folder: "Snake2D_FreeGlutOpenGL11Cpp" which you cloned earlier from https://github.com/8Observer8/... penGL11Cpp

You will see the git repository (.git folder) in the folder "Snake2D_FreeGlutOpenGL11Cpp".
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
11.01.2019, 23:36
I think it is very important to study math for computer graphics. Video tutorial series: Math for Game Developers

P.S. If you cannot study this tutorial now then save it in your bookmarks.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
12.01.2019, 18:19
You can found introduction video lectures about linear algebra and trigonometry here: https://www.khanacademy.org
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
12.01.2019, 22:56
Цитата Сообщение от 8Observer8 Посмотреть сообщение
You need to select "Release" in VS.
Правильное создание релизной версии проекта в Visual Studio
1
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
12.01.2019, 23:07
Цитата Сообщение от Croessmah Посмотреть сообщение
Правильное создание релизной версии проекта в Visual Studio
What is wrong if I just select "Release" and click "Build"?
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
12.01.2019, 23:08
8Observer8, по ссылке более полное описание, так что не думаю, что она здесь будет лишней.
1
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
12.01.2019, 23:34
Цитата Сообщение от Croessmah Посмотреть сообщение
по ссылке более полное описание
Thank you, maybe it will be useful in the future. I did not have problems with building from VS before.

All required dlls we copy automatically from the local Libs folder to the Release folder using these "Post-Build Event" commands:

xcopy /y /d "$(ProjectDir)Libs\freeglut-3.0.0-2\lib\Win32\freeglut.dll" "$(OutDir)"
xcopy /y /d "$(ProjectDir)Libs\irrKlang-1.6.0\lib\Win32\irrKlang.dll" "$(OutDir)"
xcopy /y /d "$(ProjectDir)Libs\irrKlang-1.6.0\lib\Win32\ikpMP3.dll" "$(OutDir)"
xcopy /y /d /i /e "$(ProjectDir)Audio" "$(OutDir)\Audio"
I built to a release (x86) of CyberGame's version. Please, try to run it for a test: SnakeByCyberGame.zip
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
14.01.2019, 13:18
CyberGame, if you do not have time to making the tasks then study this book: Getting Things Done: The Art Of Stress Free Productivity. It will help you to impove your productivity. And learn blind ten-finger (touch-typing) technique with the training: "SOLO: Touch Typing Tutor" in English

Добавлено через 3 минуты
Цитата Сообщение от 8Observer8 Посмотреть сообщение
I built to a release (x86) of CyberGame's version. Please, try to run it for a test: SnakeByCyberGame.zip
Could someone run it and say whether it works or not?
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
14.01.2019, 15:50
Название: ZeroDownloads.png
Просмотров: 70

Размер: 2.0 Кб
It is very sad
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
14.01.2019, 16:23
Цитата Сообщение от CyberGame Посмотреть сообщение
Что изучать для совершенствования знаний по C++
Study this book: Professional C++, 2nd Edition
Especially study the code from the book: Download Code

I like 2nd Edition more than 3rd Edition (or 4th) because 2nd Edition have additional materials like "Design Patterns". You can make this book your handbook.

Game Development with OpenGL/GLSL is one of the best way to study programming, math and physics. It is very fun, interesting and cognitive. See this video and feel how it fun: Math for Game Developers - Jumping and Gravity (Time Delta, Game Loop)

Youtube


0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
14.01.2019, 16:57
I think that one of the best way is studying OpenGL/C++ through WebGL/JavaScript. It is more simple way. It is better to use TypeScript instead JavaScript but it is more complicated. You can make examples in WebGL and translate them to C++/OpenGL. WebGL examples and simple games with be available in all platforms in one click without compilation for all platforms and without downloading and installing.

You can place you examples in the Internet in the Playgrounds like: jsfiddle.com, plnkr.co, codepen.io and so on. Everyone can run, see a code, and edit the code. You can place your games in your website.

See how to draw a square and move it with WASD and Arrow Keys. It is enough from WebGL to make the Snake Game.

Playground: https://jsfiddle.net/tqnfyy53/



You can ask me what you do not understand. I can explaid you every single line. I can to write commentaries.

index.html

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <title>WebGL 1.0. Square translation using WASD and arrow keys</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.4.0/gl-matrix-min.js"></script>
    <style>
        #renderCanvas {
            border: 5px solid #aaaaaa;
        }
    </style>
</head>
 
<body>
    <p>Click here to active the window</p>
    <p>Use WASD or arrow keys</p>
    <canvas id="renderCanvas" width="250" height="250"></canvas>
 
    <script>
        var vertexShaderSource =
            `attribute vec2 a_Position;
            uniform mat4 u_ModelMatrix;
 
            void main()
            {
                gl_Position = u_ModelMatrix * vec4(a_Position, 0.0, 1.0);
            }`;
 
        var fragmentShaderSource =
            `precision mediump float;
            uniform vec3 u_Color;
 
            void main()
            {
                gl_FragColor = vec4(u_Color, 1.0);
            }`;
 
        var gl = document.getElementById("renderCanvas").getContext("webgl");
 
        var vShader = gl.createShader(gl.VERTEX_SHADER);
        gl.shaderSource(vShader, vertexShaderSource);
        gl.compileShader(vShader);
 
        var fShader = gl.createShader(gl.FRAGMENT_SHADER);
        gl.shaderSource(fShader, fragmentShaderSource);
        gl.compileShader(fShader);
 
        var program = gl.createProgram();
        gl.attachShader(program, vShader);
        gl.attachShader(program, fShader);
        gl.linkProgram(program);
        gl.useProgram(program);
 
        var vertices = new Float32Array([
            -0.5, 0.5, -0.5, -0.5, 0.5, 0.5, 0.5, -0.5
        ]);
 
        var vbo = gl.createBuffer();
        gl.bindBuffer(gl.ARRAY_BUFFER, vbo);
        gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
 
        var a_Position = gl.getAttribLocation(program, "a_Position");
        gl.vertexAttribPointer(a_Position, 2, gl.FLOAT, false, 0, 0);
        gl.enableVertexAttribArray(a_Position);
 
        var u_Color = gl.getUniformLocation(program, "u_Color");
        gl.uniform3f(u_Color, 0.635, 0.450, 0.125);
 
        var modelMatrix = mat4.create();
        var pos = { x: 0.1, y: 0.1 };
        var step = 0.2;
 
        window.addEventListener('keydown', function (event)
        {
            if (event.keyCode === 87 || event.keyCode === 38) // W, Up
                pos.y += step;
            else if (event.keyCode === 65 || event.keyCode === 37) // A, Left
                pos.x -= step;
            else if (event.keyCode === 83 || event.keyCode === 40) // S, Down
                pos.y -= step;
            else if (event.keyCode === 68 || event.keyCode === 39) // D, Right
                pos.x += step;
            draw(pos);
        });
 
        draw(pos);
 
        function draw(pos)
        {
            mat4.identity(modelMatrix);
            mat4.translate(modelMatrix, modelMatrix, vec3.fromValues(pos.x, pos.y, 0.0));
            mat4.scale(modelMatrix, modelMatrix, vec3.fromValues(0.2, 0.2, 0.2));
 
            var u_ModelMatrix = gl.getUniformLocation(program, "u_ModelMatrix");
            gl.uniformMatrix4fv(u_ModelMatrix, false, modelMatrix);
 
            gl.clearColor(0.898, 0.984, 0.905, 1.0);
            gl.clear(gl.COLOR_BUFFER_BIT);
 
            gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
        }
    </script>
</body>
 
</html>
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
16.01.2019, 16:36
Цитата Сообщение от CyberGame Посмотреть сообщение
Что изучать для совершенствования знаний по C++
I think, you should not be limited with learning of C++. Try to learn: C#, Python, JavaScript, TypeScript and so on. It is very useful. In this case you can choose which tool is better for your current task. For example, you can learn C++ by creating a simple clone game, for example, Battle City. I think you do not know the Battle City game bacause you too young. You are 15 years old only. If you want to make an application with GUI it is simpler to use C# + WinForms (or WPF; I use WPF because I think it is better).

If you study a several languages these languages with help you to study programming in general. You can apply general knowledges from one project to another, from one book to another, from one tutorial to another and so on.

For example, If you study game development with OpenGL you can use tutorials about OpenGL in several languages. This is the legendary video course about OpenGL + Java: OpenGL 3D Game Tutorial created by guy with nickname ThinMatrix. You can translated the code to C++, C#, JavaScript/WebGL and so on.

I recommend you to complete this very simple text tutorial: Python Snake Game (OpenGL). I think it is useful to study Python with OpenGL by creating simple games.
1
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
21.01.2019, 22:52  [ТС]
8Observer8,
You are 15 years old only.
I played it's game, it's very cool.

Study this book: Professional C++, 2nd Edition
Especially study the code from the book: Download Code
I don't can read book on english language.

I recommend you to complete this very simple text tutorial: Python Snake Game (OpenGL).
My knowledge read for it's game, buy have meaning, after all i, write it's game on C++
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
21.01.2019, 23:14
Цитата Сообщение от CyberGame Посмотреть сообщение
I don't can read book on english language.
"I don't can" --> "I cannot read"

Why? I think you didn't try it yet. You can chose another book if this book is difficult for you.

This quote is from "Professional C++":
The Obligatory Hello, World

In all its glory, the following code is the simplest C++ program you’re likely to encounter:
C++
1
2
3
4
5
6
7
// helloworld.cpp
#include <iostream>
int main()
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}
This code, as you might expect, prints the message “Hello, World!” on the screen. It is a simple
program and unlikely to win any awards, but it does exhibit the following important concepts about
the format of a C++ program.
What is difficult to understand here?

If you don't know words like "unlikely" or "awards" you can use a dictionary. I like "Collins COBUILD Dictionary on CD-ROM 2006". It is very simple dictionary for beginners. You can find simple description and examples.

For example, let's find the word "unlikely":
If you say that something is unlikely to happen or unlikely to be true, you believe that it will not happen or that it is not true, although you are not completely sure.
A military coup seems unlikely...
As with many technological revolutions, you are unlikely to be aware of it...
It's now unlikely that future parliaments will bring back the death penalty...
In the unlikely event of anybody phoning, could you just scribble a message down?
Миниатюры
Что изучать для совершенствования знаний по C++  
0
208 / 95 / 15
Регистрация: 27.07.2018
Сообщений: 323
22.01.2019, 11:21  [ТС]
8Observer8, You understand, what if i was every word found in vocabulary. I will lose meaning
0
 Аватар для COKPOWEHEU
4057 / 2692 / 432
Регистрация: 09.09.2017
Сообщений: 11,990
22.01.2019, 14:59
You can write your translation word-by-word like auto-translator. Then you read the text and rewrite it according to Russian language.
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
22.01.2019, 17:03
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Then you read the text and rewrite it according to Russian language.
I use another way when I translate from English. I translate from English to English (not to Russian). I use Monolingual Dictionaries. This technic is very popular. It means you need to forget Russian. You should to kill Russian translator in yourself. I use Russian only when I need to translate unknown word from Russian to English.

When you say "an apple" you should to imagine an apple. You shouldn't translate it to Russian. At the first time it is very difficult but it become more and more simple with time.

For example, you need to understand the word "hello":

1. You say 'Hello' to someone when you meet them.
Hello, Trish...
Do you want to pop your head in and say hallo to my girlfriend?


2. You say 'Hello' to someone at the beginning of a telephone conversation, either when you answer the phone or before you give your name or say why you are phoning.
A moment later, Cohen picked up the phone. 'Hello?'

3. You can call 'hello' to attract someone's attention.
Very softly, she called out: `Hallo? Who's there?'
You can see transcription and listen how to say this word:

1
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
22.01.2019, 17:05
Цитата Сообщение от CyberGame Посмотреть сообщение
8Observer8, You understand, what if i was every word found in vocabulary. I will lose meaning
It is only at the beginning. You will remember vocabulary in the process naturally. Documentation is your main friend. But documentation is in English only. It is better if you will study C++ in English. In any case, you will study C++ very slowly because it is very difficult language. English will not slow you down very soon. It is very important You will study it all your life. It is better to learn through making simple games and simple game engines using OpenGL and GLSL. But making simple games is not simple. You need to work very hard and spend a lot of time to it.
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
22.01.2019, 17:54
8Observer8, hi I see that u works with webgl, and mb you somehow noticed with some rendering bugs in Firefox 64.0(only on this version)? Actually I get a gray color texture in Firefox but in Chrome/Safari/Edge everything is ok.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2019, 17:54

Какой язык изучать или что изучать?
Здравствуйте форумчане. какой язык программирования изучать чтоб работать дома через интернет? может 1с? я сам живу в деревне работы нет,о...

Подскажите, как лучше всего изучать язык, ежели в академии не дают достаточный объем знаний
хожу на курсы в академию уже 3 месяца, изучаем С++ по либерти, практики нету вообще, просто примеры по книге набираем...в общем туго идет,...

Какие паттерны можно использовать для совершенствования приложения
Доброго времени суток! У меня есть приложение реализованное на Qt C++ - тестирование студентов. Суть приложения заключается в...

Что изучать для работы
Всем здравствуйте. Ребята, такой вопрос. Какие технологии сейчас лучше изучать, чтобы было проще и быстрее, и при этом чтобы можно было...

Что изучать для создания сайтов
Привет всем, всех с новым годом! кто занимается web - разработкой, создание сайтов , хотелось у вас узнать ко э что. В каком порядки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
340
Ответ Создать тему
Новые блоги и статьи
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru