Быстрая шпаргалка: как выровнять div по центру страницы

Ситуация, у нас есть блочный элемент div, например такой.

<div class="testdiv">
    <p>Привет</p>
</div>

Мы хотим поместить его ровнехонько в центр странички.

Первое решение, которое приходит в голову

<div class="testdiv" align="center">
    <p>Привет</p>
</div>

Аналогичное решение с помощью CSS

читать далее «Быстрая шпаргалка: как выровнять div по центру страницы»

Конструкция if __name__ == ‘__main__’: в Python

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

__name__ — это специальная внутренняя переменная, которая инициализируется, как ‘__main__’ если файл с исходным кодом был непосредственно запущен, а не импортирован. При импорте, переменная будет содержать имя модуля, из которого произошел импорт.

читать далее «Конструкция if __name__ == ‘__main__’: в Python»

Измерить время исполнения кода на C/C++ с помощью функции clock()

Доброго времени суток! Представьте, вы написали очень крутую программу, она решает поставленную задачу, алгоритм отточен до мельчайших деталей, код отрефакторен так, что сам господь улыбнется при его чтении, все отлично! Вы пришли на работу(учебу, тусовку пограмистов) и всем его показали, и тут «Васек» спросит: «А быстро работает?». И тут вы понимаете свою ошибку! Не измерили скорость работы программы! Не потестировали с разной нагрузкой, и вообще, там может быть куча дыр связанных, которые покажутся только при стрессовой нагрузке.

Ладно, хватит. На самом деле, я просто хотел написать о том, как измерить скорость исполнения любого участка кода. Сделать это можно на любом языке программирования, каждый язык каким либо образом да сможет обратиться к системе и спросить текущее время в миллисекундах.

Я расскажу про C/C++ просто потому что именно на этих языках чаще всего измерял скорость работы кода, для самых разнообразных учебных задач. От сортировки пузырьком до топологической сортировки графов.

Специальный тип данных clock_t в C/C++

Это не что иное, как алиас(кличка, переименование) стандартного арифметического типа данных. В значение ставится количество процессорных тиков с момента его запуска. Получить это значение можно с помощью функции clock() из библиотеки <time.h>. Для того, чтобы перевести количество тиков в секунды используется константа из той же библиотеки CLOCKS_PER_SEC. Просто делим и получаем ответ.

Пример:

//Специальный тип данных из библиотеки time.h
clock_t currentTime;
//Берем текущее системное время
currentTime = clock();
//Участок кода, который нужно измерить
for(int i = 0; i < 9000; i++) {
    i *= i;
}
//Берем разницу
currentTime = clock() - currentTime;
//Переводим в секунды
currentTime = (double)currentTime / CLOCKS_PER_SEC;

Быстрая шпаргалка: откровение про eof()

Проблема: в программе на C++ из файла считывается лишняя информация, либо последняя строка считывается дважды.

Пример кода

while(!file.eof()) {
    int a;
    file >> a;

    cout << a;
}

Дело в том, что проверять конец файла нужно непосредственно после считывания из него. Например так:

while(true) {
    int a;
    file >> a;

    if(file.eof()) {
        break;
    }
    
    cout << a;
}