C++ алгоритм сортировки простыми вставками (по возрастанию). 1. создание полного пути к файлу или директории char *combinepath(const char *directorypath, const char *filename); 2. рекурсивный обход всех файлов и директорий каталога directorypath с использованием функций _findfirst() и _findnext() и выполнение для каждого файла и каталога функции, переданной с указателя fileobjectprocessor typedef bool (*fileobjectprocessor)(bool isdirectory, const char *fileobjectpath); bool traversedirectory(char *directorypath, fileobjectprocessor fileobjectprocessor); функция обратного вызова, передаваемая при указателя типа fileobjectprocessor, должна возвращать true, если следует продолжать дальнейшую обработку файлов. функция traversedirectory должна возвращать true, если для всех файлов и каталогов функция, передаваемая при указателя типа fileobjectprocessor, вернула true, в противном случае она должна вернуть false. 3. на базе функции traversedirectory реализовать функцию, которая создаст в каждом каталоге, имя которого содержит вашу фамилию, дочерние папки с именами «самостоятельные работы», «контрольные работы» и «практические ». для этого необходимо реализовать функцию создания в указанном каталоге (директории) directorypath папки с именем subdirectoryname (не содержит слешей). bool createdirectory(const char *directorypath, const char *subdirectoryname); функция должна выполнить создание всех отсутствующих в файловой системе частей в directorypath. 4. на базе функции traversedirectory реализовать функции, которые выполняют переименование дочерних папок и файлов, которые содержат вашу фамилию. вместо фамилии в имени папки и файла должно появиться ваше фамилия, имя и отчество. например, папка «петухова» должна стать папкой «петухова надежда николаевна». для этого необходимо реализовать функции переименования файла или каталога (директории): bool renamefile(const char *originalfilepath, const char *newfilename); bool renamedirectory(const char *originaldirectorypath, const char * newdirectoryname); 5. на базе функции traversedirectory реализовать функцию копирования файлов, содержащих вашу фамилию, из исходной директории в целевую директорию с сохранением исходной структуры каталогов (каталоги, не содержащие в себе либо в дочерних каталогах файлов с вашей фамилией, не должны создаваться при копировании). для копирования файлов должна быть реализована и использована функция copyfile, копирующая содержимое файла sourcefilepath в новый файл newfilepath. bool copyfile(const char * sourcefilepath, const char *destinationfilepath, int blocksize); копирование должно осуществляться блоками размером blocksize. провести экспериментальную оценку скорости копирования для блоков разного размера (1 байт, 4096 байтов, 5000 байтов, 65536 байтов). 6. на базе функции traversedirectory реализовать функцию, определяющую количество файлов и размеры файлов в директории. возможно, для этого нужно будет изменить вид функции обратного вызова, передаваемой при указателя. 7. на базе функции traversedirectory реализовать функцию, выполняющую сортировку n целочисленных элементов (в тестах задать n равным номеру варианта + 10), содержащихся по смещению n байтов от начала файла (результат должен быть сохранен в том же файле), в дочерних директориях, содержащих вашу фамилию. при сортировке запрещено использовать временный буфер для чтения и записи из файла размером больше чем sizeof(int). алгоритм сортировки определяется номером варианта.
2). Преимущества и особенности формата RAW вызывают большой интерес у всех любителей фотографии.
Одни слышали, что RAW позволяет получить более качественное изображение, других пугает сложность обработки исходного файла. Как бы то ни было, если понять, что из себя представляет формат RAW, то можно будет осознанно походить к решению снимать в нем или ограничиться JPEG. В этой статье постараемся ответить на два во что такое RAW и каковы его преимущества и недостатки? Так как RAW-файлы для дальнейшего редактирования обычно преобразовывают в формат TIFF, то и его можно считать частью RAW-процесса. Также рассмотрим преимущества и недостатки RAW по сравнению с основной альтернативой ему – форматом JPEG.
В состав процессорного модуля ПЛК входят следующие комплектующие: микропроцессор или ЦПУ (центральное процессорное устройство), часы реального времени, запоминающие устройства и watchdog.
К основным характеристикам микропроцессора относятся: тактовая частота, разрядность, поддержка портов для различных устройств ввода-вывода, архитектура, параметры работо при определенных температурных диапазонах, выполнение операций с плавающей точкой, уровень потребляемой мощности.
Показатели производительности микропроцессоров с одинаковой архитектурой пропорциональны тактовой частоте. В большинстве контроллеров применяются микропроцессоры реализованные на RISC (Reduced Instruction Set Computing) архитектуре, которые имеют сокращенное количество команд. В этом случае микропроцессор использует определенное число команд, обладающих одинаковой длиной, и множество регистров. Благодаря сокращенному набору команд можно создавать компиляторы с большими показателями эффективности, а так же конвейер процессора, который за один такт может выдать результат выполнения действий одной из команд.
Промышленным контроллерам, имеющим дело с интенсивной математической обработкой данных, необходим математический сопроцессор (вс процессор, выполняющий операции с плавающей точкой) или же использование сигнальных процессоров, выполняющих математические операции на протяжении одного такта. Благодаря сигнальным процессорам достигается серьезное ускорение выполнения операций свертки или быстрого преобразования Фурье.
Емкость памяти характеризуется количеством переменных, которые можно обработать за время функционирования ПЛК. Время доступа к памяти микропроцессора – один из наиболее существенных показателей ограничить быстродействие. Из-за этого происходит деление памяти на уровни иерархии, с учетом частоты и скорости использования, имеющихся в ней данных Иерархия памяти – это еще один существенный показатель архитектуры процессора, позволяющий снизить уровень возможного отрицательного воздействия медленной памяти на скорость работы микропроцессора.
Основные типы памяти промышленных контроллеров (ПЛК):
ПЗУ – постоянное запоминающее устройство;
ОЗУ – оперативное запоминающее устройство;
Набор регистров.
Набор регистров - самые быстродействующие элементы памяти, так как их использует АЛУ (арифметико-логическое устройство) для выполнения команд процессора. ПЗУ применяется как место хранения информации, которая редко подвергается изменению – операционная система, загрузчик, драйверы устройств, либо исполняемый модуль какой-либо программы. ОЗУ хранит в себе непосредственно данные подвергающиеся многократному изменению в период работы контроллера. К примеру, информация о проведении диагностики, отображаемые на дисплее переменные, значения тегов, промежуточные вычисления, выводимые на графики данные. В роли ПЗУ (ROM - Read Only Memory), как правило, выступает перепрограммируемая электрически стираемая память (EEPROM - Electrically Erasable Programmable ROM). Кстати, флеш-память по сути - разновидность EEPROM. Принцип действия её заключается в хранении определенного заряда в конденсаторе, который образован подложкой МОП-транзистора и плавающим затвором. Главная особенность флеш памяти – её абсолютная энергонезависимость, т.е. возможность сохранения данных при отсутствии питания. Обновление данных во флеш-памяти происходит не отдельно взятыми ячейками, а за счет применения больших блоков. Все ПЗУ обладают большим недостатком - низким уровенем быстродействия.
Количество циклов ввода информации во флеш-память ограничено всего несколькими десятками тысяч раз. Современными микропроцессорами в качестве ОЗУ применяется статическая память (SRAM - Static Random Access Memory), динамическая память (DRAM- Dynamic Random Access Memory), и синхронная динамическая память (SDRAM - Synchronous DRAM). Выполнение SRAM происходит на триггерах, которые хранить информацию неограниченно долгое время при условии наличия питания. Динамическая память промышленного контроллера сохраняет принадлежащие ей данные на конденсаторах, из-за чего требуется периодическая перезарядка конденсаторов. Основным недостатком триггерной памяти является высокий уровень стоимости и отношения цены к емкости. Это связано с тем, что на одном кристалле помещается относительно небольшое число триггеров. К достоинствам можно отнести высокий уровень быстродействия, исчисляемый гигагерцами, в то время как конденсаторная память не может преодолеть планку в несколько сотен герц. Все виды оперативной памяти отличаются тем, что при отсутствии питания все имеющаяся в них информация не сохраняется. Именно поэтому в некоторых типах ПЛК используется батарейное питание, позволяющее сохранить работо системы при условии кратковременного прерывания питания системы.