Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_IVT.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
11.58 Mб
Скачать

3. Множества

В математике под множеством понимается некоторый неупорядоченный набор элементов. {1,2,3}

В Турбо-Паскале под множеством понимают ограниченный, неупорядоченный набор различных элементов одинакового типа. [1,2,3], [‘A’,’B’,’C’].

Операции над множествами: объединение, пересечение, разность множеств в Паскале: +, *, -. Логическая операция in и ее использование для определения принадлежности элемента множеству.

Использование типа множества в программе.

{таблица простых чисел p < 200}

const m=200;

type mn=set of 2..m;

var p,n:mn;

k,t:integer;

begin clrscr;

p:=[];n:=[2..m];t:=2;

repeat while not(t in n) do t:=t+1;

p:=p+[t];

k:=t;

repeat n:=n-[k];k:=k+t

until k>m

until n=[];

writeln('Простые числа в интервале от 2 до',m:5);

for k:=2 to m do

if k in p then write(k:4);

writeln; readln

end.

4. Записи

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

Общий вид описания записи следующий:

var   <имя_записи>: record         <список_элементов_1>: <тип_1>; {поле 1}         <список_элементов_1>: <тип_1>; {поле 2}         ----------------------------------------------------------------         <список_элементов_1>: <тип_1>; {поле n}         end;

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

<имя_записи>.<имя_элемента>.

Элемент записи используется в программе так же, как и обычная переменная, т.е. элемент записи можно указывать как в левой части оператора присваивания, так и в правой его части (в выражениях). Над элементом записи можно выполнять любые действия, допустимые для данных его типа. Обращение к записи в целом, а не только к ее элементам допускается лишь в операторе присваивания вида S1:=S2;

где S1, S2 - записи с идентичной структурой.

Отметим сходство и различие между массивами, множествами и записями:

1.записи и массивы используют для описания упорядоченной последовательности величин. Множества используют для описания неупорядоченного набора элементов;

2.все элементы массива и множества должны быть одного и того же типа. Записи могут содержать элементы разных типов;

3.к элементам массива и записи делается прямой доступ (по имени элемента массива и составному имени элемента записи), к элементам множества нет прямого доступа.

/*составление списка успевающих студентов-мужчин */

program list_mans;

uses crt;

const mn=10;

type student=record

fio:string[20];

pol:char;

address:string[8];

ex1,ex2,ex3:2..5;

bal:integer;

end;

var x:array[1..mn] of student;

i,k,j,n:integer; s:char;

y:6..15;

z:student;

procedure input;

begin for i:=1 to n do with x[i] do

begin

write('Введи ФИО ',i,' студента: '); readln(fio);

write('введите пол студента: '); readln(pol);

write('введи адрес:');readln(s);

if s='t' then address:='town' else address:='comhouse';

write('Введи его оценки: '); readln(ex1,ex2,ex3);

bal:=ex1+ex2+ex3

end;

end;

begin clrscr; write('Введи кол-во учеников: ');

readln(n); input;

writeln('СПИСОК УСПЕВАЮЩИХ СТУДЕНТОВ-МУЖ. ':45);

for i:=1 to 60 do write('-');writeln;

writeln(' N | ФИО |pol| address| мат| физ| инф| балл| ');

for i:=1 to 60 do write('-'); writeln;

for i:=1 to n do with x[i] do

IF (pol='м') and (ex1>2) and (ex2>2) and (ex3>2) then

writeln(i:3,fio:20,pol:3,address:9,ex1:5,ex2:5,ex3:5,bal:6);

writeln; readln

END.

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