Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги / 277.pdf
Скачиваний:
9
Добавлен:
07.06.2023
Размер:
1.06 Mб
Скачать

всех описанных процедур данные дополнительно сжимаются общепринятыми методами, подобно тому, как это делается при архивации файлов.

В последнее время все большее распространение получает технология под названием DivX (происходит от сокращения слов Digital Video Express, обозначающих название видеосистемы, которая «прославилась» неудачной попыткой взимать небольшую оплату за каждый просмотр видеодиска; к собственно технологии DivX это никакого отношения не имело). Благодаря DivX удалось достигнуть степени сжатия, позволившей вмесить качественную запись полнометражного фильма на один компакт-диск - сжать 4,7 Гб DVD-фильма до 650 Мб. И хотя это достижение, к сожалению, чаще всего используется для пиратского копирования, сам по себе этот факт не умаляет достоинств новой технологии. Как и то, что самая первая версия сжатия DivX была сработана французскими хакерами из MPEG-4 - современные версии DivX уже не имеют к этому событию никакого отношения.

Наиболее популярные программы проигрывания видеофайлов позволяют использовать замещаемые подсистемы сжатия и восстановления видеоданных - кодеки (от англ. compression/decompression - codec, сравните с образованием термина «модем").

Такой подход позволяет легко адаптировать новые технологии, как только те становятся доступными. Замещаемые кодеки хороши как для пользователей, так и для разработчиков программного обеспечения. Тем не менее, большое разнообразие кодеков создает определенные трудности для производителей видеопродукции. Часто в качестве выхода из создавшегося положения необходимые кодеки помещают на компакт-диск с фильмами или даже поставляют видеоматериалы в нескольких вариантах, предоставляя тем самым возможность выбрать подходящий. Все больше распространяется автоматизация распознавания, когда плейер, обнаружив информацию об отсутствующем кодеке, загружает его из Интернет.

Введение в программирование на языке Си

Язык Си является языком программирования общего назначения. Появление его тесно связано с созданием операционной системы UNIX, ибо он разрабатывался специально для этой системы и на нем написана большая часть системного программного обеспечения UNIXа. Однако язык Си не ориентирован на работу только лишь в одной операционной системе или на какой-либо конкретной машине. Он представляет собой универсальный, машинно-независимый, легко переносимый язык программирования, в равной степени подходящий как для системного программирования, так и для решения задач вычислительной математики, технических и коммерческих приложений. Язык Си является

43

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

Этапы решения задачи на ЭВМ

Так как ЭВМ является «слепым» исполнителем программ, то успешное решение задачи полностью определяется квалификацией программиста.

В общем случае решение задачи на ЭВМ можно разбить на следующие этапы:

¾постановка задачи;

¾разработка алгоритма;

¾составление программы;

¾трансляция программы;

¾отладка и выполнение программы;

¾анализ результатов.

Слово «алгоритм» произошло от имени узбекского математика Аль Хорезми, который в IX в. разработал правила четырех арифметических действий над числами в десятичной системе счисления. Примерами алгоритмов могут служить врачебные и кулинарные рецепты, способы решения квадратных и дифференциальных уравнений.

АЛГОРИТМ – это формальное однозначное описание последовательности действий.

Под программой понимают описание, воспринимаемое ЭВМ и достаточное для решения на ней определенной задачи. Самому написать программу на машинном коде весьма сложно, причем эта сложность резко возрастает с увеличением размера программы и трудоемкости решения нужной задачи. Поэтому сегодня практически все программы создаются с помощью языков программирования.

Языки программирования – искусственные языки. От естественных они отличаются ограниченным числом «слов», значение которых понятно транслятору, и очень строгими правилами записи команд (операторов). Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка

его семантику.

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

44

Транслятор — это программа, осуществляющая перевод текстов с одного языка на другой, т. е. с входного языка (Паскаль, Си и т. д.) на машинный язык реальной ЭВМ.

Программа, попадающая на вход транслятора, называется исходной, а результат трансляции - объектной программой.

Графический способ описания алгоритмов

Одним из самых трудоемких этапов решения задачи на ЭВМ является разработка алгоритма. Человечество разработало эффективный алгоритм завязывания шнурков на ботинках. Многие дети с пятилетнего возраста могут это делать. Но дать чисто словесное описание этого алгоритма без картинок и демонстрации - очень трудно.

При разработке алгоритмов чаще всего используют следующие способы их описания: словесный, графический, с помощью языков программирования. Рассмотрим два способа: графический и с помощью языков программирования.

Графический способ записи алгоритмов — наиболее наглядный и распространенный. Он основан на использовании геометрических фигур (символов), краткого пояснительного текста и соединяющих линий. Схемы могут применяться на различных уровнях детализации, причем число уровней зависит от размеров и сложности задачи обработки данных. Уровень детализации должен быть таким, чтобы различные части и взаимосвязь между ними были понятны в целом. Каждый символ отображает конкретный этап процесса обработки данных. Символы соединяются между собой прямыми линиями, называемыми линиями потока. Обозначение и назначение основных символов графических схем алгоритмов приведено в табл. 1. (ГОСТ 19.701-90, ИСО 5807-85). В поле каждого символа указывают выполняемую функцию. При необходимости справа можно поместить комментарии, относящиеся к данному блоку, группе блоков, обведенных пунктиром, или направлению потока.

45

Таблица 1

Символ

Назначение

 

 

1

2

 

 

 

Терминатор. Начало и завершение

 

схемы алгоритма, прерывание

 

процесса обработки данных или

 

выполнения программы.

 

Процесс. Выполнение операции

 

или группы операций, в

 

результате которых изменяются

 

значение, форма представления

 

или расположение данных.

 

Решение. Выбор одного из ряда

 

альтернативных выходов в

 

зависимости от вычисления

 

условия внутри символа.

 

Ввод-вывод . Преобразование

 

данных в форму, пригодную для

 

обработки или регистрации

 

результатов обработки.

 

Предопределенный процесс.

 

Вызов подпрограммы: функции

 

или процедуры.

 

Соединитель. Указывает связь

 

между прерванными линиями

 

потока.

 

Указания последовательности

 

связей между символами схемы

 

алгоритма.

 

Комментарии.

 

 

По своей структуре различают следующие типы алгоритмов: линейные, разветвляющиеся и циклические. В линейных схемах алгоритмов все предписания выполняются одно за другим. Например, алгоритм вычисления длины окружности по известной площади круга (рис. 1). В разветвляющихся схемах алгоритмов для конкретных исходных данных выполняются не все заданные предписания. Однако какие именно предписания будут выполняться, конкретно определяется по ходу алгоритма в результате проверки некоторых условий. Разветвляющийся

46

Соседние файлы в папке книги