Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию..pdf
Скачиваний:
10
Добавлен:
15.11.2022
Размер:
12.2 Mб
Скачать

S

Array[1981..1990];

 

 

I,

J, К

Integer;

 

 

Begin {__________ Ввод данных

с клавиатуры____________ }

For I :=1981 To 1990 Do

 

 

For J:=1 To 12 Do

 

 

 

Begin

 

 

 

 

 

 

Write(J

2,

>.\ I

4,»: O;

 

 

ReadLn(H[I, J])

 

 

 

End;

 

 

 

 

 

{_Вычисление вектора средних летних температур_}

For I := 1981 То 1990 Do

 

Begin

 

 

 

 

 

 

S[I]

:= 0;

 

 

 

 

For J := 6 To 8 Do

 

 

 

S[I]

:« S[I]

+ HCI,

Я ;

 

 

SCI]

:» SCI]

/ 3

 

 

 

End;

 

 

 

 

 

{_____ Определение года с самым теплым петом____ }

К

:= 1981;

 

 

 

 

For I :=* 1982 То 1990 Do

 

 

If S[I]

> S[K]

 

 

 

Then К :* I;

теплое лето было в

К, '-м году*)

WriteLn(>Самое

End.

 

 

 

 

 

 

Задания

1. Дан вектор {г,}, г = 1,..., 50. Вычислить длину этого вектора:

L = yjz\ 4- z\ Н------

Ь ^5Q.

2. Вычислить полином 10-й степени по формуле Горнера:

Gio^10+ а9я9Н-------b aix + а0= ((... (аюя + а9)я + а8)я Н-------Ь а{)х + а0.

3.Для вектора {я,-}, г = 1,..., 20 подсчитать количество компонент, значения которых лежат в интервале [0, 1].

4.Даны два вектора {я*}, {у*}, г = 1, ..., 10, упорядоченные по воз­ растанию. Слить их в один вектор {г,-}, г = 1,..., 20 так, чтобы сохра­ нилась упорядоченность.

5.Дан массив, состоящий из 100 целых чисел.

а) вывести все числа, которые встречаются в этом массиве не­ сколько раз;

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

6. В целочисленной матрице размером 10 х 10 найти значение и индексы максимального элемента.

7. В двоичной матрице 5x10 определить номер строки с наибольшим количеством нулей.

8. Все строки вещественной матрицы 10 х 15 упорядочить по убы­ ванию значений их элементов.

9. Транспонировать целочисленную матрицу 5x5, т.е. перевернуть вокруг главной диагонали.

10. В двоичной матрице 10 х 10 найти совпадающие строки.

Лекция 12

12.1. П онятие множ ества. М нож ественны й тип

Одним из фундаментальных разделов математики является теория множеств. Некоторые моменты математического аппарата этой тео­ рии реализованы в Паскале через множественный тип данных (мно­ жества).

М н ож еством назы вается совокупность однотипны х эле­ м ентов, рассм атриваем ы х как единое целое. В Паскале могут быть только конечные множества. В Турбо-Паскале множество может содержать от 0 до 255 элементов.

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

Тип элементов множества называется базовым типом. Базовый тип может быть любым скалярным, за исключением типа real.

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

[3, 4, 7, 9, 12] — множество из пяти целых чисел; [1..100] — множество целых чисел от 1 до 100;

[’а\ V , ’с’] — множество, содержащее три литеры а, Ь, с;

pa’.-’z’, ’ ?’, ’ !’] — множество, содержащее все прописные латинские буквы, а также знаки ’?’ и ’!’.

Символы ” []” обозначают пустое множество, т.е. множество, не со­ держащее никаких элементов.

Не имеет значения порядок записи элементов множества внутри конструктора. Например, [1, 2, 3] и [3, 2, 1] — это эквивалентные мно­ жества.

Каждый элемент в множестве учитывается только один раз. По­ этому множество [1, 2, 3, 4, 2, 3, 4, 5] эквивалентно [1..5].

Переменные множественного типа описываются так: Var <идентификатор> set o f <базовый тип>.

Var A, D Set Of Byte;

В Set Of 'a* ’ z ’ ;

C Set Of Boolean;

Нельзя вводить значения в множественную переменную оператором ввода и выводить оператором вывода. Множественная переменная мо­ жет получить конкретное значение только в результате выполнения оператора присваивания следующего формата:

< множественная переменная> := < множественное выражение>

Например:

А

[50,

100,

150, 200];

В

:* ['m',

,п>,

’к*];

С[True, False];

D :« А;

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

12.2.Операции над множествами

ВПаскале реализованы основные операции математической тео­ рии множеств. Это — ‘‘объединение” , “пересечение” , “разность” мно­ жеств. Во всех таких операциях операнды и результаты есть множест­ венные величины одинакового базового типа.

Объединение множеств. Объединением двух множеств А п В назы­

вается множество, состоящее из элементов, входящих хотя бы в одно из множеств А или В. Знак операции объединения в Паскале “+ ”

На рисунке (а) схематически показан результат объединения двух множеств.

А + В

А * В

А -В

А

В

а)

Cl, 2, 3, 4] + [3, 4, 5, 6] »> [1, 2, 3, 4, Б, 6].

Пересечение множеств. Пересечением двух множеств Аж В назы­ вается множество, состоящее из элементов, одновременно входящих в множество А и в множество В (см. рис. б).

Например:

[1, 2, 3, 4] * [3, 4, 5, 6] => [3, 4].

Разность множеств. Разностью двух множеств А жВ называется множество, состоящее из элементов множества А, не входящих в мно­ жество В (см. рис. в).

Например:

[1,

2,

3,

4]

[3,

4,

5,

6]

=>

[1,

2]

[3,

4,

5,

б]

[1,

2,

3,

4]

=>

[5,

б]

Очевидно, операции объединения и пересечения — перестановочны, а разность множеств — не перестановочная операция.

Операция отношения. Множества можно сравнивать между со­ бой, т.е. выполнять с ними операции отношения. Результатом отно­ шения, как известно, является логическая величина true или faise. Для множеств применимы все операции отношения, за исключением ” > ” и

< ” В таблице описаны операции отношения над множествами. Везде

АжВ обозначают два множества, элементы которых — одного типа.

Отношение

I

АО В

А<= В

А>= В

Результат

True

множества А и В совпадают множества А и В не совпадают все элементы А принадлежат В все элементы В принадлежат А.

____

False

впротивном сПУчае

впротивном сЯУчае

впротивном сЛУчае

впротивном Cjxy4ae_

Вот несколько примеров выполнения операций отношенияПусть переменная М описана в программе следующим образом:

Var М Set Of Byte;

В разделе операторов ей присваивается значение:

м :* [3, 4, 7, 9];