Метка: Код
Джефф Уилсон — ведущий мировой аниматор
Джефф Уилсон рассуждает о следующем поколении анимации лица, программе Softimage и вообще о CG индустрии в целом. Каким образом вы оказались в СG индустрии задолго до популяризации данного направления в компьютерной среде?
Мой отец работает инженером и занимается настройкой различных автоматических систем, поэтому компьютеры вошли в мою жизнь с появления VIC — 20. В действительности были и другие компьютеры до этого, но именно Commodore приоткрыл мне удивительный мир компьютерных технологий. На крючок CG я попался с появления Koala Paint для С64. Далее,...
Ролевики с этническим колоритом
Целых два совсем схожих, полностью классических по форме но нетипических по содержанию ролевика с этническим колоритом обрушились нежданно на юзеров РС: Вlаdе & Swоrd переносит игрока в мир легенд Старого Китая, а Аnitо, являясь продуктом создателей точно родом откуда-то с тихоокеанских островов — разворачивается необычной фантазией на базе смеси местных легенд и исторических событий, связанных с колонизацией этого куска мира (по всей видимости, испанцами — но в то же время с иной стороны, по всей видимости, Китаем).
Настойчивость...
Компьютерные игры
КОМПЬЮТЕРНЫЕ ИГРЫ – это совокупность игр, предназначенных для использования на персональном компьютере. Развлекательные компьютерные игры наиболее популярны.
Компьютерные развлекательные игры можно условно разделить на жанры: ролевые игры, стрелялки, приключения, логические игры, аркадные игры, стратегии, игры гонки, симуляторы, развивающие игры, драки, эротические игры, спортивные игры. Это разделение компьютерных игр весьма условно, так как, игра может одновременно относится и к гонкам и к симуляторам, или ролевая игра может быть...
История успеха Google
Судьбы основателей Google Сергея Брина (Sergey Brin) и Ларри Пейджа (Larry Page) – замечательный пример того, как научный талант, творческий поиск, смелость и любовь к эксперименту способны проложить путь к успеху. Поистине, стремительный взлет двух молодых миллиардеров можно назвать воплощением традиционной американской мечты в век компьютеров и Интернет.
Если один из создателей Google является урожденным американцем, то второй — выходец из России, вернее, бывшего СССР. Сергей Михайлович Брин родился 21 августа 1973 года в Москве в семье еврейских...
Выполнение цепочки операций
Как показывает рассмотренный пример, выполнение установленного действия обеспечивается
нажатием клавиши = , в этом, собственно, и состоит ее назначение. Однако в МК этим свойством обычно обладают и операционные клавиши + , — , X , -т-: если вместо клавиши =
в рассмотренном примере нажать одну из операционных клавишей, то на индикаторе высветится тот же результат, что и в предыдущем случае, но, кроме этого, МК будет подготовлен к выполнению над полученным результатом арифметической операции, клавиша которой была нажата последней. Это свойство...
Совершенствование функциональных свойств
Дальнейшее совершенствование функциональных свойств инженерных калькуляторов привело к появлению новых дополнительных возможностей: расширению числового диапазона путем удлинения разрядной сетки и введения плавающей формы представления чисел; увеличению числа дополнительных регистров памяти; исключению режима совмещения клавиш, что экономит время вычислителя, хотя и приводит к расширению клавиатуры; введению приоритета операций, а также скобок, регулирующих порядок выполнения действий. Последнее существенно облегчает производство...
Плавающая запятая
Перевод в режим чисел с плавающей запятой производится — одна из цифровых клавиш, командой arc определяющая количество десятичных знаков после запятой в мантиссе М при условии, что 1Л4<10.
Замечательной особенностью рассмотренных режимов индикации чисел в МК-41 является то, что изображение результатов вычислений с установленным количеством разрядов после запятой сопровождается округлением младшего сохраняемого разряда по правилу: если первая из отбрасываемых цифр больше или равна 5, последняя сохраняемая цифра увеличивается на единицу.
Исключением...
Определение количества верных цифр по относительной погрешности приближенного числа
Количество верных значащих цифр в приближенном числе и величина относительной погрешности этого числа взаимосвязаны. Эта связь со всей очевидностью вытекает уже из того, что по величине 8х, учитывая формулу, можно вычислять абсолютную погрешность: Дх = х -бл:, величина которой, как следует из определения верных значащих цифр, явно влияет на их количество в приближенном числе. Впрочем, иногда на практике удобнее пользоваться правилом, устанавливающим взаимосвязь количества верных цифр непосредственно с величиной относительной погрешности.
Рассмотрим...
Массивы
В подавляющем большинстве практических задач, связанных с обработкой числовой информации, приходится иметь дело с конечными числовыми последовательностями, образование членов в которых не всегда подчиняется какой-либо зависимости и не может быть связано с заранее заданной формулой, как это было в примерах предыдущего пункта. В общем случае элементы каждой такой совокупности чисел могут быть обозначены одной и той же буквой с различными индексами, например:
Х, Х2> ЛТз, ..., Хп—
Такие конечные совокупности чисел будем называть массивами....
Подчиненные алгоритмы
При записи алгоритмов могут использоваться алгоритмы, составленные раньше. Алгоритмы, целиком используемые в составе других алгоритмов, будем называть подчиненными алгоритмами или, коротко, подалгоритмами. В принципе не исключено, что алгоритм, содержащий в своем описании подчиненные алгоритмы, сам в определенной ситуации может выступать в роли подалгоритма. Составление и использование подалгоритмов находят широкое применение в практике алгоритмизации и являются одним из наиболее значительных и интересных в идейном отношении ее...
Программирование
В этой записи рассматриваются элементы программирования на алгоритмическом языке Бейсик, который построен по принципу построчной алгоритмической нотации, а также проводится первоначальное знакомство с языками структурного программирования Паскаль и Рапира. Язык Бейсик, так же как языки Паскаль и Рапира, реализуется на отечественных микро ЭВМ, которые получают в настоящее время распространение в средней школе.
Начальные понятия языка Бейсик
Язык программирования Бейсик существует уже более 20 лет и является в настоящее время наиболее...
Стратегия и проектирование
Написание программы во многом напоминает пошив одежды или постройку дома. Прежде чем начинать что-либо делать, Вы должны тщательно обдумать, что Вы хотите получить в результате, и составить план работы. В этой главе рассматривается начальный этап проектирования, включая пути, позволяющие вообще избежать написания новой программы
Подход к решению задачи
Человек в период изучения вводного учебного курса часто обнаруживает, что написанная им программа работает не так, как предполагалось, и выясняется, что во время написания программы он...
Параллельность и одновременность
Во введении к этому разделу алгоритм был определен как набор, а не как последовательность инструкций. Различие между этими двумя терминами состоит в том, что второй предполагает некоторую упорядоченность инструкций, тогда как первый этого не предполагает. Однако все алгоритмы, которые мы рассматривали до сих пор, в некотором смысле были упорядочены. Например, были пронумерованы шаги, и мы ссылались на нормальный порядок выполнения, который соответствовал этой нумерации. Отсюда возникают вопросы: так ли необходимо было слово набор? Существуют...
Два примера
Мы завершим этот раздел подробным рассмотрением двух примеров. Умение читать программы, в противоположность умению их писать, как правило, недооценивается, но регулярные упражнения в этом приведут не только к улучшению понимания программирования, но и позволят читателю оценить значение хорошо структурированных, понятных программ. Каждый из выбранных примеров сам по себе верен, поскольку было бы малоинтересно пытаться усовершенствовать примеры, начиная с абсолютной ерунды. Вместо этого мы рассмотрим, как применение сформулированных...
Сегментация
Альтернативный способ, сегментация, во многом аналогичен предыдущему и в смысле действий программиста, и в смысле их результатов. Программист так же разбивает свою программу на логические секции, в данном случае называемые сегментами . Организация сегментов программы в памяти описывается при помощи иерархической древовидной структуры. Основное различие между этими способом и организацией оверлейной структуры состоит в том, что загрузка сегмента производится автоматически, когда на него происходит ссылка.
R —корневой сегмент, который...
Консультации
В этом разделе мы рассмотрим работу с другими людьми с целью получения у них консультаций. Всем программистам, от новичка до самого опытного, время от времени требуется помощь. Следует заметить, что в программировании консультация значит помощь — помощь в разрешении проблем.
Двумя основными источниками информации являются люди и печатный материал. В этом разделе будут рассмотрены консультации с людьми, поскольку о пользовании печатным материалом говорилось в разделе. Программист, в основном работающий в одиночку, может консультироваться...
Ошибки
К первому относятся ошибки, вызванные неумелым программированием: программа не компилируется из-за синтаксических ошибок в одном или более операторах. Практически проблемы такого типа должны решаться при помощи обращения к руководству изготовителя ЭВМ по языку или к какому-нибудь аналогичному изданию. Большинство компиляторов при обнаружении синтаксической ошибки выдает некоторое сообщение, и, хотя содержание варьируется от явного указания: На оператор номер 23 нет ссылки до туманного: Синтаксическая ошибка перед строкой 0, в общем...
Роль каждого сотрудника в проекте
Этим человеком может быть либо один из членов группы, либо руководитель, занимающийся сразу несколькими проектами. В любом случае руководитель проекта должен определить роль каждого сотрудника в проекте. (Роль руководителя проекта будет рассмотрена в этом разделе, но несколько позже.) После этого каждый отвечает за выполнение порученного ему задания.
Прежде чем начинать работу над проектом, каждый член группы должен суметь ответить на несколько вопросов.
1. Ясны ли цели?
Каждый сотрудник должен убедиться в том, что он полностью представляет...
Продвижение работы
Большинство программистов предпочитает, чтобы результаты их работы не контролировались ежедневно, но такая свобода, в свою очередь, предполагает, что каждый обязан информировать руководителя проекта обо всех проблемах, которые могут помешать продвижению работы. Если соблюдение сроков становится невозможным, программист должен как можно быстрее предупредит руководителя проекта, чтобы можно было принять соответствующие меры. Своевременная реакция может сэкономить много времени в дальнейшем, а стремление выполнить работу в очевидно...
Этапы разработки программного обеспечения
Типичный проект разработки программного обеспечения проходит следующие этапы.
1. Составление функциональной спецификации.
Точное и как можно более подробное описание всех функций, которые должна выполнять система.
2. Проектирование системы.
Проектирование всего программного обеспечения, необходимого для выполнения описанных в функциональной спецификации функций.
3. Составление программной спецификации.
Описание и документирование всех программ, интерфейсов между программами и структур данных.
4. Кодирование. Написание отдельных...
Язык программирования Форт
Раздел является первой крупной отечественной публикацией по языку Форт. Этот язык, получивший широкое распространение за рубежом (особенно как средство программирования для персональных ЭВМ), стал привлекать внимание и советских программистов благодаря особенностям своей методологии. Язык Форт сочетает в себе достоинства интерпретирующих и компилирующих систем и ориентирован на диалоговый режим работы. В книге приведено большое количество примеров.
Книга рассчитана на широкий круг инженеров-программистов и может быть полезна пользователям...
Работа в диалоговом режиме
Программирование на языке Форт является существенно диалоговым. Работая за терминалом, программист вводит слова-команды, а загруженная в память ЭВМ форт-система, т. е. реализация языка Форт на данной ЭВМ, немедленно выполняет обозначаемые этими словами действия. О своей готовности к обработке очередной строки текста форт-система обычно сообщает программисту специальным приглашением (например, знаком < , который печатается на терминале). Получив такое приглашение, программист набирает на терминале очередную порцию форт-текста, заканчивая...
Введение новых слов
Замечательное свойство языка Форт — это возможность вводить в него новые слова, расширяя тем самым набор его команд в нужном программисту направлении. Для введения новых слов чаще всего используется определение через двоеточие — определение нового слова через уже известные. Такое определение начинается словом : (двоеточие) и заканчивается словом ; (точка с запятой). Сразу после двоеточия идет определяемое слово, а за ним — последовательность слов, через которые оно определяется.
Например, текст : S2 DUP * SWAP DUP * + ; определяет слово S2 , вычисляющее...
Текстовый интерпретатор
Проследим за работой текстового интерпретатора по обработке уже рассмотренного определения слова : S2 DUP * SWAP DUP * + ; . Предположим, что перед началом обработки введенной строки интерпретатор находится в состоянии исполнения. Первым словом является : (двоеточие), которое исполняется. Его семантика состоит в том, что из входной строки выбирается очередное слово и запоминается в качестве определяемого, а интерпретатор переключается в состояние компиляции. Следующие слова, которые интерпретатор будет извлекать из входной строки ( DUP , # , SWAP и...
Логические операции
В языке Форт имеется только один тип значений — 16-разрядные двоичные числа, которые, как мы видели, рассматриваются в зависимости от ситуации как целые числа со знаком или как адреса и т. д. Точно так же подходят и к проблеме представления логических значений ИСТИНА и ЛОЖЬ: число 0, в двоичном представлении которого все разряды нули, представляет значение ЛОЖЬ, а любое другое 16-разрядное значение понимается как ИСТИНА.
Вместе с тем стандартные слова, которые должны возвращать в качестве результата логическое значение, из всех возможных представлений...
Понятие вектора
Рассмотрим другой пример. Введем понятие вектора. При создании вектора будем указывать размер (число элементов), а при обращении к нему — индекс (номер) элемента, в результате чего получается адрес данного элемента. Этот адрес можно разыменовать и получить значение элемента или можно заслать по этому адресу новое значение. Если желательно контролировать правильность индекса при обращении к вектору, то определение может выглядеть так:
ОШИБКА В ИНДЕКСЕ" ABORT j
Разберем, как работает данное определение при создании вектора 10 вектор X.
Создающая...
Структура словарной статьи
Каждое слово-команда, известное форт-системе, хранится в оперативной памяти (в словаре) в виде специальной структуры данных — словарной статьи, состоящей из поля имени, поля связи, поля кода и поля параметров. Стандарт не фиксирует порядок взаимного расположения этих полей, оставляя его на усмотрение разработчиков реализации. Как правило, поля располагаются подряд в том порядке, как они перечислены выше.
Поля имени и связи вместе образуют заголовок словарной статьи, который нужен для поиска статьи по имени слова. Результатом поиска являются...
Управление поиском слов
Множество слов, «известных» форт-системе, хранится в словаре в виде одного или более цепных списков словарных статей, соединенных через поле связи. Порядок поиска статей в этих списках обратен порядку их включения в словарь по времени определения: статья последнего определенного слова находится в начале списка. Такой порядок делает естественным исключение слов из словаря с помощью слова FORGET : нужный список просто усекается до соответствующего места.
Являясь самостоятельной структурой данных, список слов имеет и соответствующее определяющее...
FORTH
В конечном счете любой список заканчивается словами списка FORTH , который уже не имеет базового. На рис. 2.7 показаны поля параметров списков А , В и FORTH . Список В является базовым для А и, в свою очередь, базируется на списке FORTH. Слова Аь ..., А/ входят в список А ; Bi, ... , В* — в В и Fi, ... , F„ — в FORTH.
Показанный на рисунке порядок поиска слов соответствует исполнению текста В DEFINITIONS А, в результате чего сначала будут просмотрены списки А , В , FORTH , а затем В , FORTH .
Чтобы обеспечить большую гибкость в управлений порядком поиска слов и иметь возможность переопределять...
Реализация определяющих слов
Механизм определяющих слов составляет одно из основных достоинств языка Форт, главную «находку» его создателей. С его помощью программист может вводить свои типы данных и структуры управления, задавая их внешнее синтаксическое оформление и внутреннюю семантическую реализацию. Исходный строительный материал программист может брать из сравнительно небольшого исходного запаса слов-команд языка или создавать сам.
Широкие выразительные возможности и вместе с тем компактность реализации этого механизма вытекают из того, что в его основе...
