Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Множества. Массивы (Delphi)

Содержание

Троицкий Д.И. Программирование на языке высокого уровняМножество (set) – особый тип данных, строящийся на основе перечислимого типаTYPE TS=SET OF CHAR;Множество отвечает на вопрос: «Присутствует ли во множестве некоторое значение»Множество – это не массив!Нельзя обратиться к конкретному
Троицкий Д.И. Программирование на языке высокого уровняМножества. МассивыКафедра «Автоматизированные станочные системы»Dept. Of Automated Manufacturing Systems Троицкий Д.И. Программирование на языке высокого уровняМножество (set) – особый тип данных, Троицкий Д.И. Программирование на языке высокого уровняВ памяти каждый элемент множества представляется Троицкий Д.И. Программирование на языке высокого уровняКак задаются множестваTYPE ts=SET OF CHAR; Троицкий Д.И. Программирование на языке высокого уровняОперации над множествамиa IN b – Троицкий Д.И. Программирование на языке высокого уровняОбъединение множествTYPE ts=SET OF CHAR; VAR Троицкий Д.И. Программирование на языке высокого уровняПересечение множествTYPE ts=SET OF CHAR; VAR Троицкий Д.И. Программирование на языке высокого уровняВычитание множествTYPE ts=SET OF CHAR; VAR Троицкий Д.И. Программирование на языке высокого уровняМассив (array) – самый распространенный сложный Троицкий Д.И. Программирование на языке высокого уровняОписание массива=два типа данных: 1.Тип данных Троицкий Д.И. Программирование на языке высокого уровняВыделение памяти под массив:TYPE TA=ARRAY[1..1000] OF Троицкий Д.И. Программирование на языке высокого уровняОбщий размер памяти, занимаемый одним массивом, Троицкий Д.И. Программирование на языке высокого уровняНельзя сразу присвоить одно и то Троицкий Д.И. Программирование на языке высокого уровняОбращение к отдельному элементу массива – Троицкий Д.И. Программирование на языке высокого уровняМногомерные массивыБазовым типом массива может быть Троицкий Д.И. Программирование на языке высокого уровняСтатические и динамические массивыВсе обычные массивы
Слайды презентации

Слайд 2 Троицкий Д.И. Программирование на языке высокого уровня
Множество (set)

Троицкий Д.И. Программирование на языке высокого уровняМножество (set) – особый тип

– особый тип данных, строящийся на основе перечислимого типа
TYPE

TS=SET OF CHAR;

Множество отвечает на вопрос: «Присутствует ли во множестве некоторое значение»

Множество – это не массив!
Нельзя обратиться к конкретному элементу множества, можно только узнать, есть он или нет


Слайд 3 Троицкий Д.И. Программирование на языке высокого уровня
В памяти

Троицкий Д.И. Программирование на языке высокого уровняВ памяти каждый элемент множества

каждый элемент множества представляется одним битом (1 – элемент есть,

0 – элемента нет).

В множестве не может быть более 255 элементов

TYPE TS=SET OF INTEGER;

Set base type out of range

Допустимые базовые типы: BYTE, CHAR, диапазоны, перечислимые с числом элементов не более 255

Множества нельзя вывести на экран или ввести с клавиатуры


Слайд 4 Троицкий Д.И. Программирование на языке высокого уровня
Как задаются

Троицкий Д.И. Программирование на языке высокого уровняКак задаются множестваTYPE ts=SET OF

множества
TYPE ts=SET OF CHAR; VAR s:ts; … s:=[‘A’,’B’,’C’,’D’..’H’];
Тогда в множестве s

содержатся элементы: A, B, C, D, E, F, G, H

Представление в памяти:


Слайд 5 Троицкий Д.И. Программирование на языке высокого уровня
Операции над

Троицкий Д.И. Программирование на языке высокого уровняОперации над множествамиa IN b

множествами
a IN b – проверяет наличие элемента a в

множестве b:

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
BEGIN IF key IN [‘y’,’Y’,’д’,’Д’] THEN …

Операции над двумя множествами с одинаковым базовым типом:
объединение a + b пересечение a*b вычитание a-b


Слайд 6 Троицкий Д.И. Программирование на языке высокого уровня
Объединение множеств
TYPE

Троицкий Д.И. Программирование на языке высокого уровняОбъединение множествTYPE ts=SET OF CHAR;

ts=SET OF CHAR; VAR a,b,c:ts; … a:=[‘a’..’c’]; b:=[‘d’..’f’]; c:=a+b;
В c получим элементы a,b,c,d,e,f


Слайд 7 Троицкий Д.И. Программирование на языке высокого уровня
Пересечение множеств
TYPE

Троицкий Д.И. Программирование на языке высокого уровняПересечение множествTYPE ts=SET OF CHAR;

ts=SET OF CHAR; VAR a,b,c:ts; … a:=[‘a’..’d’]; b:=[‘d’..’f’]; c:=a*b;
В c получим элемент d


Слайд 8 Троицкий Д.И. Программирование на языке высокого уровня
Вычитание множеств
TYPE

Троицкий Д.И. Программирование на языке высокого уровняВычитание множествTYPE ts=SET OF CHAR;

ts=SET OF CHAR; VAR a,b,c:ts; … a:=[‘a’..’d’]; b:=[‘d’..’f’]; c:=a-b;
В c получим элементы a,b,c


Слайд 9 Троицкий Д.И. Программирование на языке высокого уровня
Массив (array)

Троицкий Д.И. Программирование на языке высокого уровняМассив (array) – самый распространенный

– самый распространенный сложный тип данных
Массив однороден: все его

элементы имеют один и тот же базовый тип

Массив в памяти – структура данных с прямым доступом к каждому элементу (в отличие от файла на диске)

Нужный элемент в массиве находится по его индексу

Тип индекса также надо указывать


Слайд 10 Троицкий Д.И. Программирование на языке высокого уровня
Описание массива=два

Троицкий Д.И. Программирование на языке высокого уровняОписание массива=два типа данных: 1.Тип

типа данных: 1.Тип данных каждого элемента массива 2. Тип данных индекса

массива.

Примеры:


Слайд 11 Троицкий Д.И. Программирование на языке высокого уровня
Выделение памяти

Троицкий Д.И. Программирование на языке высокого уровняВыделение памяти под массив:TYPE TA=ARRAY[1..1000]

под массив:
TYPE TA=ARRAY[1..1000] OF REAL;
VAR A:TA;
Элементы массива располагаются в

памяти непрерывно, один за другим

Зачем?

Чтобы легко вычислять адрес каждого элемента


Слайд 12 Троицкий Д.И. Программирование на языке высокого уровня
Общий размер

Троицкий Д.И. Программирование на языке высокого уровняОбщий размер памяти, занимаемый одним

памяти, занимаемый одним массивом, ограничен 64Кб
64Кб – максимальный размер

сегмента памяти в IBM PC

TYPE TA=ARRAY[1..50000] OF REAL;

Structure too large

Вычислим: 50000х8/1024=390.625Кб > 64Кб

Функция SIZEOF(тип) – возвращает объем памяти в байтах, занимаемый значением указанного типа

SIZEOF(REAL) ? 8


Слайд 13 Троицкий Д.И. Программирование на языке высокого уровня
Нельзя сразу

Троицкий Д.И. Программирование на языке высокого уровняНельзя сразу присвоить одно и

присвоить одно и то же значение всем элементам массива:
TYPE

TA=ARRAY[1..10] OF REAL; VAR A:TA; … A:=0;


Если нельзя, но очень хочется, то можно…

Обнуление массива без цикла:

TYPE TA:ARRAY[1..1000] OF REAL; VAR a:TA; … FILLCHAR(a,SizeOf(TA),0);


Слайд 14 Троицкий Д.И. Программирование на языке высокого уровня
Обращение к

Троицкий Д.И. Программирование на языке высокого уровняОбращение к отдельному элементу массива

отдельному элементу массива – по его индексу: a[5]
Индексы можно

вычислять

b:=a[I+1 DIV 4];

Что происходит при вычислении индекса?

Рассчитывается адрес ячейки памяти, начиная с которой лежит элемент массива с затребованным индексом

Адрес к-го элемента=адрес 1 элемента+ (к х размер элемента в байтах)


Слайд 15 Троицкий Д.И. Программирование на языке высокого уровня
Многомерные массивы
Базовым

Троицкий Д.И. Программирование на языке высокого уровняМногомерные массивыБазовым типом массива может

типом массива может быть тоже массив:
TYPE TA1=ARRAY[1..20] OF REAL;

TA2=ARRAY[1..10] OF TA1;

Получаем квадратную матрицу чисел 10х20

В памяти многомерный массив все равно хранится последовательно, по строкам или по столбцам

Размерностей может быть более двух


  • Имя файла: mnozhestva-massivy-delphi.pptx
  • Количество просмотров: 148
  • Количество скачиваний: 0