double arrow

Динамические переменные. Динамическая структура

Глава 1

Теоретический материал по дисциплине

Пакетная обработка файлов(макросы).

Если у Вас много фотографий, которые Вы хотите обработать одинаково, для облегчения себе жизни можно создать макросы.

1. Открываем Windows-Action.

2. Нажимаем на кнопку с загнутым концом New Action (Новая операция).

3. В Name: пишем имя например Фото.

4. Нажимаем Record и все наши действия будут записываться. В палитре горит красная лампочка.

5. Дальше проделываем те действия, которые хотим записать: (открыть какой-нибудь файл с которым будете работать; затем например меняете р-ры файла: File-Automate-Fit Image и меняем размер- Ok; затем делаем фотографию черно-белой Image-Adjust-Disaturate; закрываем файл File-Close-No

6. Нажать стоп «квадратик» Stop Playing.

В пункте 5 выполняете, те действия которые вы хотите выполнить, я привела просто пример.

7. Запускаем пакетную обработку File-Automate-Batch(пакетная обработка)

Source: Folder (папка), т.о. из нее будет браться фото

Choos- Enter- выбрать папку откуда брать фотографии.

Поставить галочку в « Override Action “Open” Commands (проигнорировать установки при команде Open)

8. Destination куда будем класть обработанные файлы и опять выбираем Folder

9. Errors: Log Errors To File – Save As- Сохранить – Ok ( где будет хранить файл протокол).

10. Ok запускаем.

http://photoshoplessons.ru/animation/446-sverkayushhij-tekst-s-glitterami-krasivaya.html анимация звездочки

http://shkolafotoshopa.ucoz.ru/publ/uroki/uroki_po_gimp/urok_kak_ubrat_vodjanoj_znak/12-1-0-43 убрать водяной знак

«Объектно-ориентированное программирование»

1.1 Распределение ОЗУ.




сегмент данных код программы подпрограммы стек динамическая область

 
 


системная BIOS

область

 
 


ОЗУ – устройство для хранения данных работающей программы.

Все переменные, константы, объявленные в программе, размещаются в одной непрерывной области оперативной памяти, которая называется сегментом данных. Они заносятся сюда на этапе компиляции. Длина сегмента данных составляет 65536 байт.

Коды подпрограмм хранятся в кодах программ.

В подпрограммах – коды подпрограмм при активации подпрограммы локальных переменных и параметров. Хранятся в стеке. Когда подпрограмма завершает работу – стек очищается.

Стек – предназначен для хранения переменных подпрограмм. Размер стека не превышает одного сегмента (не больше 64 Кбайт).

Динамическая область предназначена для хранения динамических переменных. Ограничена только ОЗУ.



Динамическая память – это оперативная память ПК, предоставляемая программе при ее работе, за вычетом сегмента данных (64 Кбайт), стека (обычно 16 Кбайт) и собственно тела программы.

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

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

Минимальное смещение: 0000 0000 0000 0000.

Максимальное смещение: 1111 1111 1111 1111.

Для работы с динамической памятью в Паскале определен ссылочный тип указателей.

1.2 Указатели, динамические переменные.

Язык Си предоставляет в распоряжение программиста гибкое средство управления динамической памятью – так называемые указатели. Указатель – это переменная, которая в качестве своего значения содержит адрес байта памяти. Или, указатель – это ссылка на какой-то участок динамической памяти. Указатель можно считать обычной статической переменной.

Динамическая переменная – переменная, на которую указывает указатель (находится в динамической области памяти).

Причины использования указателей:

1.Работа с большими объектами данных.

2.Работа с данными неизвестного размера.

3.Использование временных буферов памяти.

4.Использование связных списков.

Описание указателей.

Как правило, в Си указатель связывается с некоторым типом данных. Такие указатели будем называть типизированными. Переменные-указатели объявляются с помощью символа "*", который добавляется после названия обычного типа данных. Например, оператор описания (его можно прочитать как "указатель на целочисленную переменную"):

int* number_ptr; //ссылается на целый тип данных

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

#include <iostream.h>

int main()

{

int* p;

p = new int;

*p=10;

cout << *p << "\n";

delete p;

return 0;

}

Указатель p может находится в трех состояниях:






Сейчас читают про: