Голосование за лучший ответ
YT_VolkOFF
Искусственный Интеллект
(163875)
3 месяца назад
Компиляция — это процесс преобразования исходного кода программы, написанного на языке программирования, в исполняемый файл или другое представление, которое может быть выполнено компьютером. Компиляция происходит на этапе разработки программного обеспечения и позволяет проверить синтаксис кода, оптимизировать его и подготовить к выполнению.
Смысл компиляции заключается в том, чтобы создать единый исполняемый файл или другой формат, который будет понятен компьютеру и сможет выполнять задачи, описанные в исходном коде. Это упрощает процесс разработки и обеспечивает более надёжное выполнение программы.
Консоль не может напрямую управлять экраном, так как она работает с текстом и символами. Однако вы можете использовать консоль для вывода матриц и управления ячейками, как пикселями.
Чтобы сделать ячейки консоли квадратными и убрать рябь, вы можете использовать следующие методы:
Используйте функцию SetConsoleScreenBufferSize для установки размера окна консоли.
Используйте функцию ClearConsoleScreenBuffer для очистки экрана перед выводом данных.
Используйте функцию WriteConsoleOutputAttribute для вывода символов с определёнными атрибутами, включая цвет фона и текста.
Пример кода на C++ для вывода матрицы с использованием указанных функций:
#include <iostream>
#include <Windows.h>
int main() {
// Установка размера окна консоли
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), {ширина, высота});
// Очистка экрана
ClearConsoleScreenBuffer();
// Вывод матрицы
for (int i = 0; i < ширина; ++i) {
for (int j = 0; j < высота; ++j) {
std::cout << "(" << i << ", " << j << ") ";
WriteConsoleOutputAttribute(GetStdHandle(STD_OUTPUT_HANDLE), {RGB(255, 0, 0)}, 1, {1, 1}, NULL);
}
std::cout << std::endl;
}
return 0;
}
Этот код создаст квадратную матрицу с красными ячейками и выведет её на экран консоли.
Nikassaiop End
Просветленный
(45043)
3 месяца назад
Интерпретируемый код не может напрямую взаимодействовать с ресурсами системы, на которой выполняется.
Вся видимая работа представляет собой огромный слоеный пирог, в котором на самом дне находятся наиболее примитивные организационные структуры, на средних уровнях стоят простые программы, которые могут работать друг с другом или выполнять базовые операции с сервисами системы (типа записать биты в память по адресу или поискать различия между двумя записями), чуть выше над ними программы, которые все еще выполняют низкоуровневую работу, но путем манипуляций средствами предыдущего уровня, и только потом высокоуровневые языки, которые выводят привычное нам представление о экране и прочих значимых сервисах. Следовательно, если программа бы выполнялась с самого высокого уровня, время отклика и обработки процессов сильно бы страдало. Поэтому обычно ПО компилируют - т.е. превращают его в программы уровнем ниже, делая их быстрыми и адаптированными под целевую систему.
Татьяна Шеховцова
Высший разум
(531248)
3 месяца назад
На машинном языке, единицах и ноликах, да, можно. Только ты замучаешься на нём писать то, что в высокоуровневых языках делается одной строкой. Причём придётся изучать ещё кучу разных архитектур, один и тот же код на разных машинах не заработает
А компиляция - автоматический перевод с высокоуровневого языка именно на тот, который будет понятен машине, без заморочек человека с архитектурами, заголовками, и прочими тонкостями
Почему нельзя сделать как в консоле - написать в блокноте на соответствующем машине языке что-то вроде " пиксель(50,50).краска(255,0,0) " , поменять разрешение на ехе/арк и т.д. , запустить и что бы пиксель с координатами 50,50 стал красным
Ведь можно же в консоли вывести матрицу и управлять ячейках как пикселями . Дак какого черта так нельзя делать с экраном напрямую ? На кой черт создавать кучу нахрен ненужных файлов и папок , а потом ещё это компилировать ?
Будь в консоли ячейки квадратными и консоль не рябила бы ( консоль то ли не успевает очистить, то ли ещё что , но в некоторые моменты часть картинки до события смещается вверх на сотые доли секунды в результате чего накладывается в глазах на изображение после события) при частом обновлении - вопрос бы вообще не возник
Кстати ещё попутный вопрос :
Как сделать ячейки консоли квадратными и как убрать рябь ?