Уважаемые Хабровчане, представляю вашему вниманию продолжение изысканий на тему поиска подходящих теней для 2D рогалика.
Данный пост является сиквелом публикации, своеобразной работой над ошибками и дальнейшее развитие идеи.
Читать полностью »
Уважаемые Хабровчане, представляю вашему вниманию продолжение изысканий на тему поиска подходящих теней для 2D рогалика.
Данный пост является сиквелом публикации, своеобразной работой над ошибками и дальнейшее развитие идеи.
Читать полностью »
Building a Brainfuck translator in TurboAssembler.
To begin with, we will write an interpreter in a high-level language, for example, in Pascal.
Let's write a program that outputs a character whose ascii-code corresponds to the number of +
Therefore, we only need the bf-commands + and .
var
data_mem: array[1..10] of integer; // data array
command_mem: string; // command array
i: integer; // index of command array
j: integer; // index of data array
begin
j:=1;
readln(command_mem);
for i:=1 to length(command_mem) do begin // in the cycle we process the string
if (command_mem[i]='+') then data_mem[j]:= data_mem[j]+1;
if (command_mem[i]='.') then write(chr(data_mem[j]));
end;
end.
bf-code +++++++++++++++++++++++++++++++++. will issue !
(the ascii-code of the symbol ! is 33).
The efficiency of the program can be checked in online ide ideone.com.
Читать полностью »
Времена старого и доброго Pascal закончились. Пришло время новых сред разработки под этот язык. Появилось множество диалектов этого языка. Хотя все они имели что-нибудь общее. Сегодня поговорим о диалекте PascalABC.Net и о том почему же стоит от него отказаться, если Вы всерьез хотите заняться программированием и считаете, что это Ваше будущее.
Читать полностью »
Часто бывает необходимо писать плагины для программ. Но из-за бинарной несовместимости классов эти плагины придётся писать на том же языке, что и основная программа. В С++ принято располагать таблицу виртуальных функций первой в классе. Если пользоваться определенными правилами (не использовать множественное наследование интерфейсов) и использовать абстрактные классы-то можно добиться возможности запуска плагинов, скомпилированных под разными компиляторами С++.
В этой статье я покажу как использовать плагин написанный с использованием компилятора Free Pascal Compiler в программе на с++ (только общая идея, а не реальный плагин).
Читать полностью »
(Источник)
Как известно, истина в математике и естествознании не определяется голосованием. Это относится и к информатике (computer science – CS). Несмотря на это, по одной из самых острых проблем CS: уже проводилось несколько голосований, в которых участвовали ведущие мировые эксперты:
На начало 2000-х гг. большинство математиков считают, что эти классы не равны. Согласно опросу, проведённому в 2002 году среди 100 учёных, 61 человек считает, что ответ — «не равны», 9 — «равны», 22 затруднились ответить и 8 считают, что гипотеза не выводима из текущей системы аксиом и, таким образом, не может быть доказана или опровергнута.
(Википедия )
Воспользуемся этим примером и предложим опрос по наиболее острым вопросам школьной информатики, которые выявило недавнее обсуждение.
Читать полностью »
Изучать ООП (объектно-ориентированное программирование) можно двумя способами: или прочитать сотню книжек, в которых дается голая теория об устройстве классов и принципах наследования, полиморфизма, инкапсуляции, но так ничему и не научиться, или перестать беспокоиться и попытаться на практике освоить новые приемы, переработав, к примеру, готовые коды, а лучше с нуля изготовив что-то простое, но красивое.
Во всех книгах, посвященных паскалю, delphi и lazarus (я нашел аж целых две о последнем), очень схожая часть, посвященная ООП. По этим книгам можно много узнать о том, насколько круче ООП устаревшего структурного подхода, но так и не получить достаточных навыков применения этого на практике. Конечно, любой программист, использующий визуальные IDE, уже по умолчанию использует ООП, так как все компоненты и структурные элементы визуального приложения представляют собой объекты, однако свои собственные структуры и абстракции перенести в парадигму ООП бывает очень сложно. Чтобы понять всю прелесть и оценить открывающиеся перспективы, я решил сделать небольшое приложение, которое в конечном итоге превратилось в простенький screensaver. Заодно вспомнил о существовании тригонометрии.
Приложение будет рисовать на экране в случайных местах пятьдесят полярных роз с разными характеристиками: размер, цвет, количество лепестков. Потом их же затирать и рисовать новые, и т.д. Используя принципы структурного программирования, можно, конечно, сделать обычный многомерный массив объемом на 50 и в нем сохранять все уникальные характеристики. Однако стоит вспомнить, что паскаль подразумевает строгую типизацию данных, а, следовательно, массив не может состоять их элементов с разными типами. Можно сделать массив из записей (record), но чего уж мелочиться, от записи до класса — один шаг. Вот его мы и сделаем.
2016 год уже на исходе, но его вклад в игроиндустрию останется с нами надолго. Во-первых, видеокарты из красного лагеря получили неожиданно удачное обновление в среднем ценовом диапазоне, ну а во-вторых NVIDIA в очередной раз доказала, что не зря занимает 70% рынка. Maxwell’ы были хороши, GTX 970 по праву считалась одной из лучших карточек за свои деньги, но Pascal — совсем другое дело.
Новое поколение железа в лице GTX 1080 и 1070 буквально похоронило результаты прошлогодних систем и рынок флагманского б/у железа, а «младшие» линейки в лице GTX 1060 и 1050 закрепили успех в более доступных сегментах. Владельцы GTX980Ti и прочих Titan’ов рыдают крокодильими слезами: их убер-пушки за много тысяч рублей разом потеряли 50% стоимости и 100% понтов. Сама NVIDIA заявляет, что 1080 быстрее, чем прошлогодний TitanX, 1070 легко «наваляет» 980Ti, а сравнительно бюджетная 1060 сделает больно владельцам всех остальных карточек.
Так ли это, откуда растут ноги высокой производительности и что с этим всем делать в преддверии праздников и внезапных финансовых радостей, а также чем именно себя порадовать, можно узнать в этой длинной и немного занудной статье.
Читать полностью »
Некоторые считают, что современный мир почти не знает Никлауса Вирта и даже не догадывается о его огромном вкладе в мировую компьютерную науку. Кто-то полагает его «отцом Паскаля». Вирта вспоминают не только педагоги в ВУЗах, когда преподают студентам Turbo Pascal, но и коммерческие разработчики, пишущие на Delphi.
На самом деле, Никлаус Вирт является инженером с большой буквы, его вклад в развитие языков программирования не ограничивается Паскалем, а только начинается с него. Кроме того, Вирт — педагог, общественный деятель и, можно сказать, философ. Попробуем оценить реальный масштаб его личности и вклад в ИТ-индустрию.Читать полностью »
Если стационарный компьютер или ноутбук ориентирован на новые и требовательные видеоигры, а также работу с системами автоматизированного проектирования и другими специализированными приложениями, то в нём чаще всего установлен видеоускоритель либо компании Nvidia, либо AMD. Текущее поколение видеоускорителей представлено девятисотой серией GeForce и трёхсотой серией чипов Radeon. Обе постепенно заполняются моделями разной направленности: Nvidia начала делать это осенью 2014 года, AMD — в прошлом июне.
Новая линейка появится в 2016 году. Производители предоставляют скудную информацию о новых продуктах. Возможно, они опасаются эффекта Осборна: рассказ о более совершенном последователе состарит текущую модель в общественном восприятии, что негативно отразится на продажах последней. А ещё разработчики и сами могут не знать, как будет выглядеть конечный продукт на прилавке. Но какая-то информация есть уже сейчас.
Читать полностью »
Год назад на Международной выставке потребительской электроники CES 2015 производитель видеоускорителей Nvidia показал свой продукт для беспилотных автомобилей. Это был компьютер Drive PX. В этом году на CES 2016 глава Nvidia Жэнь-Сунь Хуан рассказал о обновлении этого продукта. Новый компьютер носит название Drive PX 2, обладает тепловыделением 250 ватт и системой жидкостного охлаждения.
Читать полностью »