Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб.раб. программирование.pdf
Скачиваний:
111
Добавлен:
21.05.2015
Размер:
764.95 Кб
Скачать

2.Найти элементы массива не равные четным числам и вывести их индексы.

3.В двумерном массиве найти сумму элементов всех диагоналей матрицы

4.Вывести массив следующего вида. Размерность произвольная.

1 2 2 2

3 1 2 2

3 3 … 2

3 3 3 1

Вариант 4.

1.Заполнить массив случайными числами, вывести этот массив, уменьшить все элементы в три раза и снова вывести получившийся массив на экран.

2.Найти элементы массива не равные 10 и вывести их индексы.

3.В двумерном массиве найти сумму элементов главной диагонали.

4.Вывести массив следующего вида. Размерность произвольная.

0 0 0 0

0 1 0 0

0 0 … 0

00 0 N-1

Лабораторная работа 7. Множества

Множество – любой набор объектов, который понимается как единое целое. Объекты – элементы множества. Множества равны, если они содержат одни и те же элементы.

Множество в языке программирования – набор элементов базового типа. Базовый тип должен быть порядковым типом. Количество значений базового типа не может превышать 256. Номера значений 0..255.

Пример базового типа: BYTE, CHAR, 25..30

Пример множеств – [1,2,5], ['0'..'9']

Неправильные примеры: [1,2,'А'], [0,9,3.5]

Определение типа: TYPE <имя типа> = SЕT OF <базовый тип>;

© ИМПИ ОГПУ

Примеры:

TYPE NUMB = SET OF BYTE; DAY = SET OF 1..31;

Переменная базового типа может содержать любое подмножество базового типа. Порядок элементов не имеет значения. [1,2] = [2,1].

Пример: Написать в алфавитном порядке все буквы, введенные в заданную строку.

Program Primer;

Type qset = set of char; Var s : string; m : qset;

c : char; begin

write(‘Введите строку’); readln(s);

m := [];

for i :=1 to length(s) do

m := m+ [s[i]];

for c := ‘a’ to ‘z’ do

if c in m then write(с,‘ ’); end.

Задания для самостоятельной работы

Пример. Из двух первых сотен натуральных чисел найти все простые.

program primer;

 

const n = 200;

of 2..n;

type

mnog = set

var

pq, qq : mnog;

 

p, k : 2..n;

 

begin

{ Множество проверяемых чисел }

qq := [2..n];

pq := [];

{ Множество найденных простых чисел }

p

:= 2;

{ Первое простое число }

repeat

in qq) do p := p+1;{ Ищем следующее простое }

 

while not(p

 

pq := pq+[p]; { Добавляем его к уже найденным }

k := p; {Удаляем из мн-ва проверяемых все числа, кратные

найденному простому:}

repeat qq := qq-[k]; k := k+p until k>n; until qq=[];

{ Печатаем простые числа } for k := 2 to n do

if k in pq then write(k,' ');

© ИМПИ ОГПУ

writeln

 

 

 

 

 

end.

 

 

 

 

 

1.

Изучите

работу программы.

Протестируйте

программу, изменяя

значения константы N. Измените программу так, чтобы

она выводила все

составные числа из интервала [2..N] в порядке убывания.

 

2.

Дана непустая

последовательность символов. Требуется построить и

напечатать множество,

элементами

которого являются встречающиеся в

последовательности:

 

 

 

 

Вариант 1.

Буквы от "Т" до "Х" и знаки препинания.

Вариант 2.

Цифры от "5" до "9" и знаки арифметических операций.

Вариант 3.

Знаки арифметических операций и знаки препинания.

Вариант 4.

Цифры и знаки арифметических операций.

Лабораторная работа 8. Комбинированный тип данных (Запись)

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

Запись – структура данных, состоящая из фиксированного числа компонентов, называемых полями. Поля могут быть разных типов. Поэтому записи – наиболее общий и гибкий тип данных.

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

Их отличия от массивов:

1)компоненты записи могут быть различных типов;

2)обращение к элементам массива производится по индексам, а к полям - по именам.

©ИМПИ ОГПУ

Описание записи:

Record

{описание полей} <имя поля1> : <тип>;

end;

Примеры:

Program Primer;

Type Address = Record

City : string;

Street : string;

House : integer;

End;

Flat : integer;

mas = array [1..5] of Address;

Procedure In_Adr (var a : address);

Begin

Write ('city '); Readln(a.city);

Write ('street '); Readln(a.street);

Write ('house, flat '); Readln(a.house, a.flat);

End;

Procedure In_Mas(var m : mas); var i : integer;

begin

for i := 1 to 5 do In_Adr(m[i]); end;

Procedure Out_Adr(a : address);

Begin

Writeln('г.',a.city,'ул.',a.street,'д.',a.house,' кв.',a.flat)

End;

Procedure Search(m : mas); var i : integer;

begin

For i := 1 to 5 do

end;If m[i].city='Оренбург' then Out_Adr(m[i]);

Var x : mas; i : integer;

Begin

In_Mas(x);

Search(x)

End.

© ИМПИ ОГПУ