Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
infa.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
185.72 Кб
Скачать

74.Передача массива в качестве параметра.

Когда массив используется в качестве аргумента функции, передается только адрес массива, а не копия всего массива. При вызове функции с именем массива в функцию передается указатель на первый элемент массива. (Надо помнить, что в С имена массивов без индекса - это указатели на первый элемент массива.) Параметр должен иметь тип, совместимый с указателем. Имеется три способа объявления параметра, предназначенного для получения указателя на массив. Во-первых, он может быть объявлен как массив, как показано ниже: #include <stdio.h> void display(int num[10]); int main (void) /* вывод чисел */ { int  t [10], i; for (i=0; i<10; ++i) t[i]=i; display(t); return 0; } void display(int num[10]) { int i; for (i=0; i<10; i++) printf ("%d", num[i]); } Хотя параметр num объявляется как целочисленный массив из десяти элементов, С автоматически преобразует его к целочисленному указателю, поскольку не существует параметра, который мог бы на самом деле принять весь массив. Передается только указатель на массив, поэтому должен быть параметр, способный принять его.

Следующий способ состоит в объявлении параметра для указания на безразмерный массив, как показано ниже: void display(int num[]) { int i; for (i=0; i<10; i++) printf("%d ", num[i]); } где num объявлен как целочисленный массив неизвестного размера. Поскольку С не предоставляет проверку границ массива, настоящий размер массива не имеет никакого отношения к параметру (но, естественно, не к программе). Данный метод объявления также определяет num как целочисленный указатель.

Последний способ, которым может быть объявлен num, - это наиболее типичный способ, применяемый при написании профессиональных программ, - через указатель, как показано ниже: void display(int *num) { int i; for (i=0; i<10; i++) printf ("%d ", num[i]); } Он допустим, поскольку любой указатель может быть индексирован с использованием [], если он является массивом. (На самом деле массивы и указатели очень тесно связаны друг с другом.) Все три метода объявления параметра приводят к одинаковому результату - указателю.

75. Передача указателей на массивы через список аргументов.

В C++ возможно лишь поэлементное копирование массивов. Объявление одномерного массива-параметра преобразуется к объявлению указателя. При вызове функции передаются либо отдельные элементы массива и тогда мы имеем тривиальный список параметров, либо адреса, которые воспринимаются как адреса начальных элементов массивов. В последнем случае неизвестными оказываются размеры массива, однако, эта проблема решается благодаря введению дополнительного целочисленного параметра, задающего размеры массива, представленного указателем.

76. Виды компьютерной графики. Растровая графика. Разрешение оригинала, экранного изображения, печатного изображения. Понятие линеатуры.

Различают три вида компьютерной графики. Это растровая графика, векторная графика и фрактальная графика. Они отличаются принципами формирования изображения при отображении на экране монитора или при печати на бумаге.

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

Фрактальная графика, как и векторная - вычисляемая, но отличается от неё тем, что никакие объекты в памяти компьютера не хранятся. Изображение строится по уравнению (или по системе уравнений), поэтому ничего, кроме формулы, хранить не надо. Изменив коэффициенты в уравнении, можно получить совершенно другую картину.

В растровой графике изображение представляется в виде набора окрашенных точек. Такой метод представления изображения называют растровым.

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

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

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

Разрешение экранного изображения. Для экранных копий изображения элементарную точку растра принято называть пикселом. Размер пиксела варьируется в зависимости от выбранного экранного разрешения (из диапазона стандартных значений), разрешения оригинала и масштаба отображения. Мониторы для обработки изображений с диагональю 20-21 дюйм (профессионального класса), как правило, обеспечивают стандартные экранные разрешения 640x480, 800x600, 1024x768, 1280x1024, 1600x1200, 1600x1280, 1920x1200, 1920x1600 точек.

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

Разрешение печатного изображения и понятие линеатуры. Размер точки растрового изображения как на твердой копии (бумага, пленка и т. д.), так и на экране зависит от примененного метода и параметров растрирования оригинала. Частота сетки растра измеряется числом линий на дюйм и называется линеатурой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]