Смекни!
smekni.com

Свойства информации. Единицы измерения количества информации (стр. 8 из 24)

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

Для полноты классификации следует добавить, что цикл с условием, в свою очередь, тоже может реализо­вываться двумя способами. В первом варианте в начале цикла поверяется условие, а затем, если оно истинно, выполняются операторы цикла и происходит возврат на новую проверку; поскольку здесь условие предше­ствует содержимому цикла, то в литературе его при­нято называть циклом с предусловием. Во втором варианте, напротив, сначала цикл выполняется, а затем

проверяется условие его завершения: в случае ложно­сти цикл повторяется (иначе заканчивается); такой цикл, когда условие ставится после операторов содержимого, называют "с постусловием". Чаше всего только одна из названных разновидностей цикла наилучшим образом подходит к конкретной задаче. Например, если вы со­бираетесь удалить пробелы, стоящие в начале строки, то, скорее всего, выберете цикл с предусловием, потому что надо сначала убедиться, что пробел имеется, и толь­ко затем его удалять (глупо поступать наоборот — сна­чала удалять, а потом проверять, стоило ли это делать, хотя в практической жизни такая, с позволения ска­зать, логика порой встречается...). Зато ввод текста до точки трудно построить иначе как с постусловием, по­скольку сначала требуется ввести очередной символ и только потом сравнивать его с точкой.

Часто одни и те же действия требуется выполнить для различных значений параметра: типичная ситуа­ция — подставить числа от 1 до 10 в какую-нибудь формулу. Для решения такого типа задач лучше всего подойдет цикл с параметром, который возьмет на себя автоматическое изменение переменной цикла и ее сравнение с окончательным значением.

Завершая ответ, необходимо продемонстрировать все перечисленные виды циклов на том языке, который использовался на уроках (блок-схема, алгоритм для исполнителя, язык программирования). По понятным причинам мы не можем здесь предугадать все воз­можности.

Желательно изложить

Циклы с неопределенным количеством повторений, как правило, не имеют каких-то существенных осо­бенностей реализации в различных языках. А вот цикл с параметром (FOR), напротив, часто обладает теми или иными специфическими свойствами. Например, в языке Бейсик, где параметром цикла может быть только числовая переменная (но зато любого типа), разрешается цикл от 0 до 1 с дробным шагом изме­нения 0.1. В Паскале параметр цикла не обязательно числовой, но зато он должен являться порядковым (иметь конечный упорядоченный набор допустимых значений). Таким образом, можно строить циклы по целым, символьным (CHAR), логическим, заданным перечнем своих значений и некоторым другим типам переменных, но зато запрещено использование веще­ственных значений1. Фактически в Паскале при каж­дом новом исполнении цикла берется или следующее, или предыдущее в используемом типе значение. В языке Си цикл FOR еще более интересный. Его заголовок фактически содержит три части: действия по инициа­лизации, действия по проверке окончания цикла и,

1 Хотя бы потому, что для вещественных чисел не определено понятие "следующий": в самом деле, какое значение следует пос­ле 1.1 - 1.2, 1.11 или 1.101?

наконец, действия после каждой итерации. Характер­ной особенностью является возможность иметь в каж­дой части произвольное количество операторов, вклю­чая вариант их отсутствия. Например,

for (i = 0, j = n - 1; i < n; i++, j —) a[i] = a[j];

Настолько общий подход позволяет вообще напи­сать цикл без содержимого: например, сам оператор организации цикла

for (s=0, i = 1; i < 11; s=s+i, i=i+l) уже вычисляет сумму первых 10 натуральных чисел.

Примечание. Ярые приверженцы Си последние два опе­ратора никогда не напишут иначе, чем s += i, i++, давая возможность компилятору составить чуть более эффективную программу. Но мне хотелось сделать текст более удобочитае­мым для тех, чье мышление не связано с конкретными комби­нациями значков.

Разумеется, рассказанный в предыдущем абзаце материал не предназначен для включения в ответ це­ликом. Просто подчеркнуто, что ученику желательно раскрыть особенности цикла FOR в том языке, кото­рый он изучал (а приведенные примеры просто ука­зывают те места, где эти особенности надо искать).

И в заключение еще одно важное с практической точки зрения замечание. При некорректной организации не­которых циклов может возникнуть эффект так называе­мого "зацикливания", когда действия внутри цикла не могут создать условия, требующиеся для его заверше­ния. Следует всячески избегать подобных ситуаций пу­тем тщательного анализа условий работы цикла.

Примечание для учителей

В литературе обычно используется термин "цикл с параметром", а не "цикл со счетчиком".

Примечание для учеников

Как обычно, при подготовке вопроса необходимо продумать и подобрать на изученном языке примеры циклических алгоритмов. Вне зависимости от языка при ответе желательно использовать блок-схемы.

2. Двоичное кодирование графической информации. Растр. Пиксель. Глубина цвета

Базовые понятия

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

Пиксель — логический элемент изображения.

Обязательно изложить

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

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

Ссылка на материалы вопроса

"Информатика" № 14, 2003, с. 3 — 8.

2. Двоичное кодирование звуковой информации. Глубина кодирования и частота дискретизации

Базовые понятия

Дискретная и непрерывная форма представления информации. Аналого-цифровой и цифро-аналоговый преобразователи.

Дискретизация звукового сигнала по времени и ам­плитуде.

Теорема Найквиста для выбора частоты дискрети­зации звука.

Обязательно изложить

Звуковые сигналы в окружающем нас мире нео­бычайно разнообразны. Для их записи с целью пос­ледующего воспроизведения необходимо как можно точней сохранить форму кривой зависимости интен­сивности звука от времени. При этом возникает одна очень важная и принципиальная трудность: звуковой сигнал непрерывен, а компьютер способен сохранить в памяти пусть очень большое, но конечное число дискретных величин. Следовательно, в процессе записи звуковая информация должна быть "оцифрована", т.е. из аналоговой непрерывной формы переведена в циф­ровую дискретную. Данную функцию выполняет спе­циальный блок, входящий в состав звуковой карты, который называется аналого-цифровой преобразова­тель — АЦП.

Каковы основные принципы работы АЦП?

Во-первых, он производит дискретизацию записы­ваемого звукового сигнала по времени. Это означает, что измерение уровня интенсивности звука ведется не непрерывно, а, напротив, в определенные фиксиро­ванные моменты времени (удобнее, разумеется, через равные временные промежутки). Частоту, характери­зующую периодичность измерения звукового сигнала, принято называть частотой дискретизации. Вопрос о ее выборе далеко не праздный, и ответ в значитель­ной степени зависит от спектра сохраняемого сигна­ла: существует специальная теорема Найквиста, соглас­но которой частота "оцифровки" звука должна как минимум в 2 раза превышать максимальную частоту, входящую в состав спектра сигнала.

Во-вторых, АЦП производит дискретизацию амп­литуды звукового сигнала. При измерении имеется "сетка" стандартных уровней (например, 256 или 65 536 — это количество характеризует глубину коди­рования) , и текущий уровень измеряемого сигнала ок­ругляется до ближайшего из них.

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

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

Остается рассмотреть обратный процесс — воспро­изведение записанного в компьютерный файл звука. Здесь имеет место преобразование в противополож­ном направлении — из дискретной цифровой формы представления сигнала в непрерывную аналоговую, поэтому вполне естественно соответствующий узел компьютерного устройства называется ЦАП — циф­ро-аналоговый преобразователь. Процесс реконструк­ции первоначального аналогового сигнала по имею­щимся дискретным данным нетривиален, поскольку никакой информации о форме сигнала между сосед­ними отсчетами не сохранилось. В разных звуковых картах для восстановления звукового сигнала могут использоваться различные способы. Наиболее нагляд­ный и понятный из них состоит в том, что по имею­щимся точкам рассчитывается степенная функция, проходящая через заданные точки, которая и прини­мается в качестве формы аналогового сигнала.