Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/86: Рейтинг темы: голосов - 86, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 30.01.2024
Сообщений: 3

С какого проекта начать новичку, которой освоил базу C++

30.01.2024, 08:56. Показов 17833. Ответов 108
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, или приведите примеры из личного опыта, что можно начать писать новичку,
чтобы постепенно улучшались навыки владения языком и улучшилось его понимание?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2024, 08:56
Ответы с готовыми решениями:

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

Неплохо освоил фотошоп .Где найти работу новичку?
Очень хочу работать!!!Неплохо освоил фотошоп html, css. Облазил Реально весь инет но так и не нашел ничего стоящего, может не там ищу?

С чего начать новичку???
Всем привет...Мне необходима помощь...я новичок в программировании,тем более по созданию веб-приложений...Посоветуйте с чего начать,какой...

108
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,027
01.02.2024, 19:07
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Royal_X Посмотреть сообщение
Вот как на графике выглядит. Для C(20,2) = 190 линий
Так и есть. Для 15 точек - 105 линий (ну и т. д.).


Цитата Сообщение от Royal_X Посмотреть сообщение
У gunslinger этого сглаживания вообще нет.
От слова "совсем".
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
01.02.2024, 19:13
gunslinger, у тебя нет и прозрачности. Это просто Наталья8 начал гнать на мою программку, мол она очень жрет. А я даже скрин показал, что она порой даже только на 0,01% загружает. Ну максимум может 2 или 3%. Но не 18%, как он мне рассказывал. Это какой старинный у него комп. Или прога врала, которая оказалась, что с Руссиновичем даже не связана.
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,027
01.02.2024, 19:40
Да от компьютера зависит загрузка. У меня картинка на заставке с деформацией окружности (когда она долго работает) иногда подвисает (потому что ПК слабоват), хотя там ничего особенного нет.

Добавлено через 5 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
у тебя нет и прозрачности
Такого не заложили. Только минимум. Вроде толщины линий, их типа (возможная прерывистость при единичной толщине) и цвета. Но мне много и не нужно.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
01.02.2024, 20:18
gunslinger, меня полностью устраивают GDI и GDI+ для таких простейших задач. Да и никогда не любил кроссплатформенные инструменты, как вот Qt. На самом деле, они неплохие. Qt очень удобен и прост в использовании. Но я пишу только как хобби и только для Windows, которая самая популярная десктопная ОС (73%), поэтому пишу на WinAPI. Например, на втором месте OS X - 16%, Linux - 3,7%. Если брать не только десктопные ОС, а прям все, то лидирует не Windows, а Android. Но все равно, даже если кроссплатформенные инструменты позволяют создавать один проект и для десктопных ОС и для андроид, такой подход неправильный. Для простеньких программ это ещё подойдёт, но для сложных в итоге можно получить говнопрогу, даже если мы его сделали под разные платформы. Мобильная разработка имеет свою специфику.
Алексей1153 тут вспомнил про QPainter. Но совсем недавно обсуждали размеры dll этого Qt. Во-первых, прога на Qt на выходе толстая и с кишками, т.к. бесплатная версия не разрешает статическую линковку. Во-вторых, любой фреймворк медленнее, чем нативная API. В-третьих, во фреймворках много костылей. В-четвёртых, во фреймворках только та малая часть функций, которую разрабы смогли реализовать для всех платформ. И этот QPainter, как понял, использует старинный OpenGL 2. Если мне понадобится что-то сложное, то выберу DirectX или Vulkan, но никак не QPainter.
0
фрилансер
 Аватар для Алексей1153
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,289
01.02.2024, 20:25
Royal_X, размер там небольшой, я ж говорю, о нём можно не думать.

Если делать сложную графику (и шустро) - понятно, что нужны специализированные инструменты для работы с графикой.

Цитата Сообщение от Royal_X Посмотреть сообщение
любой фреймворк медленнее, чем нативная API.
не обязательно. Внутри те же вызовы WinAPI
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
01.02.2024, 20:29
Алексей1153, только qt6core.dll занимает 8.35 MB, а qt6gui.dll занимает 10.86 MB.
Это у тебя небольшой размер, т к. ты старой версией пользуешься.
0
Модератор
Эксперт Java
 Аватар для alecss131
2894 / 1400 / 412
Регистрация: 11.08.2017
Сообщений: 4,483
Записей в блоге: 2
01.02.2024, 21:35
Цитата Сообщение от Royal_X Посмотреть сообщение
только qt6core.dll занимает 8.35 MB, а qt6gui.dll занимает 10.86 MB
У меня первая 6мб а вторая 8.49мб, версия свежая хоть и не самая последняя (6.6.0 а самая свежая 6.6.1)
Еще надо не забывать что для гуи еще надо Qt6Widgets.dll размером 6.15мб
Цитата Сообщение от Royal_X Посмотреть сообщение
OS X
Кстати, на macOS (она теперь так зовется и больше нету X, они ушли от 10, это раньше были OS X с версиями 10.A.B, теперь у них версии A.B, начиная с 11 и самая свежая macOS 14.2 Sonoma, а до 10 был Mac OS) на чистых плюсах с ОС взаимодействовать нельзя, либо Swift, либо устаревший Objective-C. Хотя там даже на Swift сейчас 2 апи (фреймворка) по написанию гуи, один старый, но легаси оюычно живет еще прилично

Добавлено через 2 минуты
Но зато графический апи Metal работает без доп библиотек и позволяет писать либо чуть сложнее opengl, либо аналогично вулкану, и шейдеры собираются сразу с другим кодом.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
01.02.2024, 21:38
alecss131, а Metal API лёгкая или как Vulkan?
0
Модератор
Эксперт Java
 Аватар для alecss131
2894 / 1400 / 412
Регистрация: 11.08.2017
Сообщений: 4,483
Записей в блоге: 2
01.02.2024, 21:40
А по теме ТС как же знакомо это чувство когда не знаешь что писать... И не важно на каком языке. Сейчас у меня похожая проблема, но со Swift.
Под виндой на нем либо использовать с/с++ либы, либо голый винапи. Благо совместимость с обоими языка хорошая, только вот мешать сразу и с и с++ проблематично (нужен небольшой костыль в виде прослойки обертки для языка Си)

Добавлено через 54 секунды
Цитата Сообщение от Royal_X Посмотреть сообщение
а у Metal API лёгкая или как у Vulkan?
Написал же можно писать и как на вулкане и как на opengl. Apple предоставляет выбор грубо говоря, есть фреймворк сильно упрощающий написание
0
Модератор
Эксперт Java
 Аватар для alecss131
2894 / 1400 / 412
Регистрация: 11.08.2017
Сообщений: 4,483
Записей в блоге: 2
01.02.2024, 21:44
Вот пример упрощенного апи
Кликните здесь для просмотра всего текста
Code
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
import Foundation
import MetalKit
 
class Renderer: NSObject, MTKViewDelegate {
    let device: MTLDevice
    let mtkView: MTKView
    let commandQueue: MTLCommandQueue
    var buffer: MTLBuffer!
    var vertexDescriptor: MTLVertexDescriptor!
    var renderPipeline: MTLRenderPipelineState!
        
    init(view: MTKView, device: MTLDevice) {
        mtkView = view
        self.device = device
        commandQueue = device.makeCommandQueue()!
        super.init()
        loadResources()
        buildPipeline()
    }
    
    func loadResources() {
        let vertices: [Float32] = [-0.5, -0.5, 0.0, 0.5, -0.5, 0.0, 0.0, 0.5, 0.0]
        buffer = device.makeBuffer(bytes: vertices, length: vertices.count * MemoryLayout<Float32>.size, options: [])!
        vertexDescriptor = MTLVertexDescriptor()
        vertexDescriptor.attributes[0].format = .float3
        vertexDescriptor.attributes[0].offset = 0
        vertexDescriptor.attributes[0].bufferIndex = 0
        vertexDescriptor.layouts[0].stride = 3 * MemoryLayout<Float32>.size
    }
    
    func buildPipeline() {
        guard let library = device.makeDefaultLibrary() else {
            fatalError("Could not load default library from main bundle")
        }
        let pipelineDescriptor = MTLRenderPipelineDescriptor()
        pipelineDescriptor.vertexFunction = library.makeFunction(name: "vertex_main")
        pipelineDescriptor.fragmentFunction = library.makeFunction(name: "fragment_main")
        pipelineDescriptor.colorAttachments[0].pixelFormat = mtkView.colorPixelFormat
        pipelineDescriptor.vertexDescriptor = vertexDescriptor
        do {
            renderPipeline = try device.makeRenderPipelineState(descriptor: pipelineDescriptor)
        } catch {
            fatalError("Could not create render pipeline state object: \(error)")
        }
    }
    
    func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {
    }
    
    func draw(in view: MTKView) {
        let commandBuffer = commandQueue.makeCommandBuffer()!
        if let renderPassDescriptor = view.currentRenderPassDescriptor,
           let drawable = view.currentDrawable,
           let commandEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: renderPassDescriptor) {
            commandEncoder.setRenderPipelineState(renderPipeline)
            commandEncoder.setVertexBuffer(buffer, offset: 0, index: 0)
            commandEncoder.drawPrimitives(type: .triangle, vertexStart: 0, vertexCount: 3)
            
            commandEncoder.endEncoding()
            commandBuffer.present(drawable)
            commandBuffer.commit()
        }
    }
}
контроллер окна
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import Cocoa
import MetalKit
 
class ViewController: NSViewController {
    @IBOutlet var mtkView: MTKView!
    var renderer: Renderer!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let device = MTLCreateSystemDefaultDevice()!
        mtkView.device = device
        mtkView.colorPixelFormat = .bgra8Unorm
        mtkView.clearColor = MTLClearColorMake(0, 1, 0, 1)
        
        renderer = Renderer(view: mtkView, device: device)
        mtkView.delegate = renderer
    }
}
И шейдеры, причем язык основанный на С++14 (почти чистый, с некоторыми ограничениями)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <metal_stdlib>
using namespace metal;
 
struct VertexIn {
    float3 position [[attribute(0)]];
};
 
vertex float4 vertex_main(VertexIn vertexIn [[stage_in]]) {
    return float4(vertexIn.position, 1);
}
 
fragment float4 fragment_main() {
    return float4(1, 0, 0, 1);
}

результат
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
01.02.2024, 21:51
alecss131, я понял, Metal это высокоуровневый API для упрощения написания. Ну если он поддерживает Vulkan это очень хорошо, т.к. на чистом Vulkan очень сложно писать... Хотя, Vulkan очень крут и с хорошей лицензией, а по производительности на уровне DX 12. Одним словом, Vulkan это новое мощное продолжение старого доброго OpenGL.
0
Модератор
Эксперт Java
 Аватар для alecss131
2894 / 1400 / 412
Регистрация: 11.08.2017
Сообщений: 4,483
Записей в блоге: 2
01.02.2024, 21:56
Цитата Сообщение от Royal_X Посмотреть сообщение
я понял, Metal это высокоуровневый API для упрощения написания
Нет, Metal это отдельный апи, просто у него есть функции которые грубо говоря эквивалентны вулканическим, а есть более высокоуровневая обертка над ними и все это в одном sdk. На macOS вулкана нету, даже офф sdk представляет из себя трансляцию в metal, а opengl прекратил поддержку на 4 или 4.1 версии.
Тут причем один и тот же апи и для десктопа и для мобилок, как и новый гуи фреймворк SwiftUI. Но опять же без Swift не обойтись. Помню Apple выпускали обертку Metal для С++ но не знаю что с ней.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
01.02.2024, 22:05
alecss131, кстати, всякие тесты в инете показывают, что DX12 лучше остальных (Vulkan, Metal) в плане производительности в играх. Vulkan по макс fps ещё может конкурировать с DX12, но мин fps у Vulkan ниже. Но то, что Vulkan имеет хорошую лицензию это преимущество. DirectX и Metal имеют коммерческую лицензию.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
01.02.2024, 23:01
alecss131, вижу по вашей активности, что вы спец в Unreal Engine. Я не работал с этим движком, поэтому интересно узнать, сколько времени займет создание в UE Кубика Рубика (без автосборки, но с опцией смешивания).
Делал в Godot такой Кубик Рубик. Можете попробовать, чтобы точнее ответить на мой вопрос. Игра управляется как мышью, так и клавой. Вообще, в архиве есть инструкция.
Вложения
Тип файла: 7z Cube.7z (9.21 Мб, 27 просмотров)
1
02.02.2024, 07:09

Не по теме:

Это просто... отлично.

А я вообще когда-то мог "рисовать" только такое

0
02.02.2024, 09:17

Не по теме:

gunslinger, я и сейчас так рисую)

0
02.02.2024, 09:19

Не по теме:

Royal_X, я бы ещё небо и травку дорисовал :D

0
02.02.2024, 15:36

Не по теме:

Royal_X, я тоже не очень далеко ушел.

Алексей1153, изначально таких условий не было: Нарисовать на форме домик с забором.
Но ничто не мешает исправить ситуацию. :)

0
Модератор
Эксперт Java
 Аватар для alecss131
2894 / 1400 / 412
Регистрация: 11.08.2017
Сообщений: 4,483
Записей в блоге: 2
03.02.2024, 12:46
Цитата Сообщение от Royal_X Посмотреть сообщение
вижу по вашей активности, что вы спец в Unreal Engine
Я если честно, то не такой уж и эксперт, помогал в основном по базовым вопросам, у меня самого множество вопросов и проблем. Я нормально сделал только один проект, да и тот если честно был переписан с урока по Unity, адаптированного мной под UE, но и то в нем использовал костыли, чтобы реализовать задуманные вещи (например компоненты в компонентах внезапно работали не как ожидаемо). Я движок давно уже не трогал, особенно после выхода 5 (хотя 5.0 очень близок к 4) почти забросил. Он еще со временем все больше и больше становится требовательней, если для 4 было достаточно поставить установщик движка в установщики студии (который тащил все нужные зависимости), то для 5 надо отдельно ставить net sdk 3 версии, а для самой свежей 5.3 уже полный пакет net разработки из студии, так он еще и при запуске через nuget кучу всего подтягивает (хотя это могут быть хотелки IDE Rider). C# в движке используется как система сборки.
5 версия мало отличается от 4 в плане кода и вообще принципов работы, отличия другого плана
Цитата Сообщение от Royal_X Посмотреть сообщение
Я не работал с этим движком, поэтому интересно узнать, сколько времени займет создание в UE Кубика Рубика (без автосборки, но с опцией смешивания).
Я считаю что движок для таких целей избыточен, на нем в основном делают крупные ААА игры, как минимум что-то с видом от первого/третьего лица. А не подобные кубики
У меня обычно во всех проектах проблема с анимациями)) Например писал 2048 (правда на java, swing и opengl версии) и все без анимаций, хоть и выглядит красиво. Сейчас думаю такое будет не сложно перенести на Qt, хотя я сейчас почти перешел на Swift и пока вожусь с winapi
Кликните здесь для просмотра всего текста


Игра 2048 тоже простой и хороший проект для создания, но как и остальные он для гуи, хотя его можно и в консольный вариант превратить
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,574
03.02.2024, 13:18
Цитата Сообщение от alecss131 Посмотреть сообщение
Я считаю что движок для таких целей избыточен, на нем в основном делают крупные ААА игры, как минимум что-то с видом от первого/третьего лица. А не подобные кубики
Крупные ААА игры ничем не сложнее, чем этот кубик. Именно в плане разработки\программирования. Разница только в том, что для крупных ААА игр нужно потратить больше человеко-часов, нежели для маленького проекта. Вот, я создавал 3d шутер, и там только в начале чрезмерно программировал, чтобы реализовать игровую логику. А дальше просто создание уровней и мелких скриптов. Основная трата времени у меня шла даже не на игровой движок и программирование, а на моделирование игровых объектов в Blender, создание материалов, поиск текстур, звуковых файлов и пр. И вот из-за нехватки времени я до сих пор не завершил эту 3d игру.
Поэтому сейчас не берусь за большие проекты.
Цитата Сообщение от alecss131 Посмотреть сообщение
нормально сделал только один проект, да и тот если честно был переписан с урока по Unity,
Будь осторожен с этими уроками. Многие из них учат плохому. Например, в инете встречал уроки по тетрису, кубику, но все они помоечные и предлагают неоптимизированные подходы, даже если эти видео набирают много просмотров. Встречал также уроки по 3d играм, в которых автор выдавал себя за умного, рассказывая о всяких формулах по свободному падению, импульсу и т.д. Но на самом деле он нес откровенную чушь и формулы были у него неправильные.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.02.2024, 13:18

Новичку с чего начать?
Извиняюсь за флуд! В поиске ответов не увидел. У меня давно было желание научиться языкам программирования, но возможности для...

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

Помогите новичку начать
Совсем недавно решил попробовать работать с STM32 контроллерами и для данных целей приобрел плату STM32F4Dyscovery Столкнулся с проблемой...

С чего начать новичку?
Всем привет, хочу научиться писать приложения(не игры) для телефонов. Знаю html,css,JS,jquery Знаком с ООП ( Visual Basic) С чего...

С чего начать новичку пришедшему с C#?
Здравствуйте, хочтел бы узнать можно на PHP сделать сервер для игры МОНОПОЛИЯ(что бы на сервере шли вычисления кому и когда делать ход, )? ...


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
ИИ и человечность
kumehtar 21.07.2026
Забавно, что общаясь с ИИ, я замечаю, насколько он высказывается умно, и насколько верит в людей. Он умеет прощать. Он знает как отвечать не обесценивая опыт других людей, даже если сам не верит. Он. . .
Нейтральные знания ..., ... чистая наука. Пока что-то проходит модерацию на Хабре, стоит развить мысль ...
Hrethgir 20.07.2026
К таким радикальным взглядам я конечно в той публикации не приходил, но чтобы скоротать вечер, решил углубиться немного. 1. Почему показания термометра заряжены целью? Цель заложена в самом. . .
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ По ссылке 403. Не очень информативно такую ссылку постить. Запись от Usaga размещена Сегодня в 06:46 . . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru