Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Компиляция - что , куда , зачем и как от нее избавиться . Подробнее в тексте вопооса

Сергей Воронин Ученик (156), на голосовании 2 месяца назад
В чем смысл компиляции на андроид/виндоус и т.д.
Почему нельзя сделать как в консоле - написать в блокноте на соответствующем машине языке что-то вроде " пиксель(50,50).краска(255,0,0) " , поменять разрешение на ехе/арк и т.д. , запустить и что бы пиксель с координатами 50,50 стал красным

Ведь можно же в консоли вывести матрицу и управлять ячейках как пикселями . Дак какого черта так нельзя делать с экраном напрямую ? На кой черт создавать кучу нахрен ненужных файлов и папок , а потом ещё это компилировать ?
Будь в консоли ячейки квадратными и консоль не рябила бы ( консоль то ли не успевает очистить, то ли ещё что , но в некоторые моменты часть картинки до события смещается вверх на сотые доли секунды в результате чего накладывается в глазах на изображение после события) при частом обновлении - вопрос бы вообще не возник
Кстати ещё попутный вопрос :
Как сделать ячейки консоли квадратными и как убрать рябь ?
Голосование за лучший ответ
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;
}
Этот код создаст квадратную матрицу с красными ячейками и выведет её на экран консоли.
Сергей ВоронинУченик (156) 3 месяца назад
Ячейки консоли все ещё остаются прямоугольными. Как сделать их квадратными ?
Nikassaiop End Просветленный (45043) 3 месяца назад
Интерпретируемый код не может напрямую взаимодействовать с ресурсами системы, на которой выполняется.
Вся видимая работа представляет собой огромный слоеный пирог, в котором на самом дне находятся наиболее примитивные организационные структуры, на средних уровнях стоят простые программы, которые могут работать друг с другом или выполнять базовые операции с сервисами системы (типа записать биты в память по адресу или поискать различия между двумя записями), чуть выше над ними программы, которые все еще выполняют низкоуровневую работу, но путем манипуляций средствами предыдущего уровня, и только потом высокоуровневые языки, которые выводят привычное нам представление о экране и прочих значимых сервисах. Следовательно, если программа бы выполнялась с самого высокого уровня, время отклика и обработки процессов сильно бы страдало. Поэтому обычно ПО компилируют - т.е. превращают его в программы уровнем ниже, делая их быстрыми и адаптированными под целевую систему.
Оракул Оракул (63320) 3 месяца назад
Охладите возмущение)
Вас никто не заставляет ничего компилировать)
Татьяна Шеховцова Высший разум (531248) 3 месяца назад
На машинном языке, единицах и ноликах, да, можно. Только ты замучаешься на нём писать то, что в высокоуровневых языках делается одной строкой. Причём придётся изучать ещё кучу разных архитектур, один и тот же код на разных машинах не заработает
А компиляция - автоматический перевод с высокоуровневого языка именно на тот, который будет понятен машине, без заморочек человека с архитектурами, заголовками, и прочими тонкостями
Марк Долли безвести пропавшийСтатутмёртв Мастер (2129) 3 месяца назад
Не перестаю говорить об этом
Потому что появились ОС
Похожие вопросы