LibCode
C++: Работа с графикой и OpenGL
Цель урока:
Познакомиться с OpenGL и научиться создавать простые графические приложения.
Что мы узнаем:
Теоретическая часть:
OpenGL — это кросс-платформенный API для работы с графикой. Он позволяет создавать 2D и 3D графику.
Пример инициализации OpenGL:
Для создания окна и рендеринга графики используются библиотеки GLFW и GLEW.
Пример рендеринга треугольника:
...
Познакомиться с OpenGL и научиться создавать простые графические приложения.
Что мы узнаем:
- Что такое OpenGL и как его использовать.
- Создание окна и рендеринг графики.
- Работа с вершинами и примитивами.
Теоретическая часть:
Что такое OpenGL?
OpenGL — это кросс-платформенный API для работы с графикой. Он позволяет создавать 2D и 3D графику.
Пример инициализации OpenGL:
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int main() {
glfwInit();
GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL", NULL, NULL);
glfwMakeContextCurrent(window);
glewInit();
while (!glfwWindowShouldClose(window)) {
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}Создание окна и рендеринг графики
Для создания окна и рендеринга графики используются библиотеки GLFW и GLEW.
Пример рендеринга треугольника:
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int main() {
glfwInit();
GLFWwindow* window =- Жалоба
PHP: Динамические свойства
Создание динамических свойств в PHP — это практика добавления новых свойств классу во время выполнения программы, без предварительного объявления этих свойств в определении класса. Несмотря на то, что раньше это считалось нормальным поведением, начиная с версии PHP 8.2, такой подход объявлен устаревшим и в ближайшем будущем будет полностью запрещён.
Динамическое свойство — это свойство класса, которое создаётся "на ходу", без предварительного объявления в определении класса. Ранее PHP позволял добавлять такие свойства в любом месте программы, что могло приводить к путанице и трудно обнаруживаемым ошибкам.
Пример старого стиля:
Создание динамических свойств признано устаревшим по ряду веских причин:
Что такое динамические свойства?
Динамическое свойство — это свойство класса, которое создаётся "на ходу", без предварительного объявления в определении класса. Ранее PHP позволял добавлять такие свойства в любом месте программы, что могло приводить к путанице и трудно обнаруживаемым ошибкам.
Пример старого стиля:
class User {}
$user = new User();
$user->name = "Иван"; // Динамическое создание свойства
echo $user->name; // выведет "Иван"Почему это устарело?
Создание динамических свойств признано устаревшим по ряду веских причин:
- Потеря прозрачности кода: Без явного объявления свойств сложно понять, какие свойства реально
C++: Многопоточность и параллельное программирование
Цель урока:
Познакомиться с многопоточностью в C++ и научиться создавать параллельные программы.
Что мы узнаем:
Теоретическая часть:
Многопоточность позволяет выполнять несколько задач одновременно, что может значительно повысить производительность программы.
Пример создания потока:
Представленный код демонстрирует простой пример использования потоков (
Шаги программы:
Познакомиться с многопоточностью в C++ и научиться создавать параллельные программы.
Что мы узнаем:
- Что такое многопоточность и как её использовать.
- Создание и управление потоками.
- Синхронизация потоков.
Теоретическая часть:
Что такое многопоточность?
Многопоточность позволяет выполнять несколько задач одновременно, что может значительно повысить производительность программы.
Пример создания потока:
#include <thread>
void printHello() {
std::cout << "Привет из потока!" << std::endl;
}
int main() {
std::thread t(printHello);
t.join();
return 0;
}Представленный код демонстрирует простой пример использования потоков (
std::thread) в C++.Шаги программы:
- Объявление функции:
ФункцияprintHello()выводит сообщение"Привет из потока!":void printHello() { std::cout << "Привет из потока!" << std::endl; } - Создание потока:
В основной функцииmainсоздается объект типаstd::thread, передающий функциюprintHello()в качестве аргумента. Это
C++: Исключения и обработка ошибок
Цель урока:
Познакомиться с исключениями в C++ и научиться обрабатывать ошибки.
Что мы узнаем:
Теоретическая часть:
Исключения — это способ обработки ошибок в программе. Они позволяют перехватывать и обрабатывать ошибки, не останавливая программу.
Пример использования:
Блок try содержит код, который может вызвать исключение. Блок catch перехватывает и обрабатывает исключение. Оператор throw генерирует исключение.
Пример использования:
В C++ есть множество стандартных исключений, таких как
Пример ...
Познакомиться с исключениями в C++ и научиться обрабатывать ошибки.
Что мы узнаем:
- Что такое исключения и как их обрабатывать.
- Блоки
try,catch,throw. - Стандартные исключения.
Теоретическая часть:
Что такое исключения?
Исключения — это способ обработки ошибок в программе. Они позволяют перехватывать и обрабатывать ошибки, не останавливая программу.
Пример использования:
try {
int result = 10 / 0;
} catch (const std::exception& e) {
std::cout << "Ошибка: " << e.what() << std::endl;
}Блоки try, catch, throw
Блок try содержит код, который может вызвать исключение. Блок catch перехватывает и обрабатывает исключение. Оператор throw генерирует исключение.
Пример использования:
try {
throw std::runtime_error("Ошибка!");
} catch (const std::exception& e) {
std::cout << "Ошибка: " << e.what() << std::endl;
}Стандартные исключения
В C++ есть множество стандартных исключений, таких как
std::runtime_error, std::logic_error, std::out_of_range.Пример ...
C++: Работа с файлами
Цель урока:
Познакомиться с работой с файлами в C++, а также научиться читать и записывать данные.
Что мы узнаем:
Теоретическая часть:
В C++ для работы с файлами используются потоки ввода-вывода.
Пример записи в файл:
Пример чтения из файла:
Потоки ввода-вывода позволяют удобно работать с файлами и другими источниками данных.
Пример использования потоков:
...
Познакомиться с работой с файлами в C++, а также научиться читать и записывать данные.
Что мы узнаем:
- Как читать и записывать данные в файлы.
- Работа с потоками ввода-вывода.
Теоретическая часть:
Чтение и запись данных
В C++ для работы с файлами используются потоки ввода-вывода.
Пример записи в файл:
#include <fstream>
int main() {
std::ofstream file("example.txt");
file << "Привет, мир!" << std::endl;
file.close();
return 0;
}Пример чтения из файла:
#include <fstream>
int main() {
std::ifstream file("example.txt");
std::string line;
while (std::getline(file, line)) {
std::cout << line << std::endl;
}
file.close();
return 0;
}Работа с потоками
Потоки ввода-вывода позволяют удобно работать с файлами и другими источниками данных.
Пример использования потоков:
#include <iostream>
#include <fstream>
int main() {
std::ifstream file("example.txt");
std::string line;
while