(1) type rn = set of char;
(2) type rn = set of real;
(3) type rn = set of string[40];
(4) type tp = real; rn = set of tp;
(5) type rn = set of '0'..'9'
(6) type tp = array[1..10] of 1..6; rn = set of tp;
type rn = set of 1..31;
(7) type rn = set of '0'..'27';
(7)type rn = set of integer;
(8) type tp = array[6..56] of char;
rn = set of tp;
(9) type rn = set of boolean;
(10)type pr = (янваpь,февраль,март);
rn = set of pr;
(1) А = [6,7,2]; B = [2,3,7,8,2,6,1];
(2) А = [8,9,10,11,12]; -[56,17,9,11]; B = [8..12];
(3) B = [19..15]; A =([8..20] - [4,6,11,20,14,13]) * [9,25,16,11,7,4,13];
(4) A = ([25..45] + [40..50]) - [32,40,52,26,18,28]; B = ([24..31] * [25,27,29,30,31,16,42]) + ([33..50] - [40,16,28,51]);
(5) A = [6,9,3,7,14]-[9,14,5,G,4]; B = [6,9,11,3,22,7] * [11,5,6,7,9,3]
(6) A = [1,2,3,4] * [1,5,6,7] - [1,3,7,5,8,9]; B = [2,9,1,10,5] * [1,6,2,3] + [4,6];
(7) A = ['a'..'d']; B = ['a'..'f'];
9. Какие операции надо осуществить с множествами В и С, чтобы получить в результате множество А:
(1) B = ['A','K','L','Z']; C = ['D','L','V','K','F']; A = ['K','L'];
(2) B = [1..12]; C = [6..11]; A = C;
(3) B = [25..36]; C = [30..40]; A = B;
(4) B=['A','K','R','F']; C=['K','H','N','R']; A = ['A','F'];
(5) B=['A','K','F','R','Z','N','P','H']; C = ['K','R','N','H']; A = [ ]
10. Какие операции надо совершить с множествами B, C и D, чтобы получить в результате множество А:
(1) B = ['1','2','4','6','8']; C = ['1','4','6']; D = ['2','5','4','8','3'];
A = ['8','2'];
(2) B = [1,2,3,4,5]; C = [8,9,11,15,20]; D = [3,4,9,11]; A = D;
(3) B = ['K','L','M','N'];
C = ['H','F','C','R'];
D = ['L','C'];
A=['K','L','F','M','C','N','H','R'];
(4) B = ['O','H','Q','K','M','N']; C = ['H','K','F','R','P','Z']; D = ['H','N','A','K','W','O']; A = ['H','K'];
(5) B = [3,8,6,7,10,26,5]; C = [8,7,2,5,3,11,12];
D = [6,12,26,9,20,13,15];
A = [6,12,26];
(6) B=[5,2,3,4,12,13,20]
(6)C = [8,10,12,6,7,2]; D = [6,2,15,12,21];
A = [2,12];
(7) B=[7,12,13,25,30,29];
C=[13,16,26,30,18,12];
D= [5,6,7,12,29,13];
A = [30];
(8) B=['A','B','C','D','E','F','G']; C = ['B','D','K','F','L','M']; D = ['M','P','Q','Z','A','G']; A = ['C','E'];
11. В каком случае:
(1) А + В = [ ];
(2) А - B = [ ];
(3) A * B = [ ];
(4) A + B = A;
(5) A - B = A;
(6) A - B = B;
(7) A * B = A.
Записи
1. Что такое запись? В чем ее отличие от других структур данных?
2. Из чего состоит запись? Какого типа могут быть ее компоненты?
3. Как употребляется в программе оператор with?
4. Укажите синтаксические ошибки:
(1) type koor:record
x,y,z=0..100;end;
vektor:record
n,k=koor;end;
var A:array[1..4]of vektor;
B:koor; x:integer;
(4) type ent=record
author,tite:string[50]
bibl=record
nom:real;
kn:ent;
var A:array[1..10] of bibl;
B:array[1..10] of ent;
(2) type date=record
day:1..31;
month:1..12;
year:1..9999; end;
rem=record
mes=array[1..5] of string[9];
ev=date;end;
var tod:date; a:day;
mem:array[1..100] of rem;
(5) type klass=record
f,im:string[20];end;
oc=record
ocenka:array[1..3] of integer;
f:klass;end;
var B:array[1..10] of oc;
(3) type com:record
a,b:real;end;
plo:record
c:real
d: complex;end;
var a,b:array[1..100] of com;plo:real;
5. Укажите тип переменной, если есть следующее описание:
type data=record
day:1..31;
month:1..12;
year:1..9999;
end;
rem=record
mes:array [1..5] of string[9];
event:data;
end;
var memos:array[1..100] of rem;
today:data; k:rem;
calendar:array[1..400] data;
(1) today.year
(7) memos
(2) memos[2]
(8) k.mes
(3) calendar[200]
(9) calendar
(4) memos[16].mes[2]
(10) memos[i].event
(5) k.event.year
(11) calendar[1].day
(6) memos[16].mes[2][1]
(12) rem.event
6. Для описания из пункта 5 приведите примеры команд с переменными типа:
(1) 1..12 (2) data (3) rem
7. Укажите номера недопустимых операций, если дано следующее описание:
type zap=record
a:integer;
b:string[25];
c:array[1..10] of real; end;
kar=record
p:zap;
d:array[1..10] of char;end;
var T:zap;k:integer;
G:array[1..100] of zap;
O:array[1..100] of kar;
(1) for G[i].a=10 downto 1 do k:=k+1;
(7) if O[99].c[6]=1945 then T.a:=200;
(2) if G[7].c=56.9 then O.d[4]:='9';
(8) if K=3 then O.d[4]:='9';
(3) for T.c[2]:=1 to 10 do k:=k+1;
(9) O[17].p.a:=1990;
(4) G[5].c:=1990;
(10) if G[99].c[6]=1945 then T.a:=20;
(5) if K=3 then O[4].d:='9';
(11) G[17].d:='ошибка';
(6) for T.a:=1 to 10 do k:=k+1;
(12) G[17].d[i]:='1';
8.Укажите номер заголовка программы, который подходит для решения
следующей задачи:
(1) По успеваемости в сессию (зачеты, экзамены) определить размер назначаемой стипендии у каждого студента группы.
I. program stipendiya;
type student=record
fam:string[20];
zachet:array[1..10] of string[9];
marks:array[1..5] of real; end;
var A:array[1..30] of student;
II.program stipendiya;
type student=record
fam:string[20];
zachet:array[1..10] of string[9];
marks:array[1..5] of integer;
end;
var A:array[1..30] of student;
III.program stipendiya;
type student=record
fam:string[20];
zachet:array[1..10] of string[9];
marks:array[1..5] of integer;end;
var A,B:student;
(2) По данным заболеваемости на заводах Ярославля определить завод, на котором меньше всего пропущено дней по болeзни.
I.program zdorow;
Type zawod=record
Kolrab:integer;
Den:integer; end;
Var Z:array[1..5] of zawod;
II.program zdorow;
type zawod=record
naz:string[40];
kolrab:array[1..500] of integer;
den:integer; end;
var Z:array[1..5] of zawod;
III.program zdorow;
type zawod=record
naz:string[40];
kolrab:integer;
den:integer; end;
var Z:array[1..5] of zawod;
(3) По результатам игр в футбольном турнире определить команду победителя.
I.program turnir;
Type komand=record
Naz:string[15];
Rez:array[1..6] of real;
Ochki:integer; end;
Var K:array[1..7] of komand;
II.program turnir;
type komand=record
naz:string[15];
rez:array[1..6] of string[5];
ochki:array[1..6] of real; end;
var K:array[1..7] of komand;
III.program turnir;
type komand=record
naz:string[15];
rez:array[1..6] of string[5];
ochki:integer; end;
var K:array[1..7] of komand;
(4) По данным изменениям валютного курса для ряда стран в течение
текущего года определить изменение курса в % для каждой страны.
I.program walyuta;
Type strana=record
Naz:string[20];
Dened:real;
Mestcurs:string[20]; end;
Var W:array[1..12] of strana;
II.program walyuta;
type strana=record
naz:char;
dened:string[20];
mestcurs:array[1..12] of real; end;
var W:array[1..12] of strana;
III.program walyuta;
type strana=record
naz:string[20];
dened:string[20];
mestcurs:array[1..12] of real; end;
var W:array[1..12] of strana;
(5) По итоговой турнирной таблице по хоккею определить команду, забившую больше всего шайб.
I.program turnir;
type komanda=record
naz:string[40];
result:integer;
zab,prop:integer;end;
var K:array[1..12] of komanda;
II.program turnir;
type komanda=record
naz:string[40];
result:array[1..15] of string[5];
zab,prop:integer;end;
var C,K:array[1..12] of komanda;
III.program turnir;
type komanda=record
naz:integer;
result:integer;
zab,prop:real;end;
var K:array[1..12] of komanda;
9. Напишите имя поля, которое отвечает за:
(1) результат последней игры i-ой команды, если заголовок программы имеет вид:
program turnir;
type komand=record
naz:string[15];
rez:array[1..6] of string[5];
och: integer; end;
var K:array[1..7] of komand;
(2) Номер дома последнего человека в списке, если заголовок программы имеет вид:
type adr=record
house:real;
street:string[20];end;
ank=resord
fam:string[20];
m:adr;end;
var spisok:array[1..10] of ank;
(3) год рождения i-го избирателя, если заголовок программы имеет вид:
type date=record
day:1..31;
month:1..12;
year:1..1999;
end;
izbiratel=record
fam:string[30];
rochd:date;
end;
var uchast:array[1..100] of izbiratel;
(4) ординату начала j-го вектора, если заголовок программы имеет вид:
type koor=record
h,y,z=0..100;end;
vektor=record
nach :koor;
kon:koor; end;
var A:array[1..4]of vektor;
(5) количество баллов i-го студента за 6-ю лабораторную работу, если заголовок программы имеет вид:
program upr;
type zachet=record
lab:array[1..10] of integer;
samrab:array[8] of integer;
konrab: integer; end;
var gryppa:array[1..25] of zachet;
10. Составьте заголовок программы (типы и переменные) для решения задач:
(1) Дан список группы, в котором указан размер стипендии, получаемой каждым студентом в каждом из 10 семестров, а также стоимость обучения студентов за каждый год.
(2) Дан список группы, в котором указано количество учебных часов пропущенных каждым студентом (в том числе и по уважительной причине) в каждом месяце за семестр.
(3) Дана спортивная таблица с указанием количества забитых и пропущенных мячей в каждой игре по футболу.
(4) Дан список рабочих, в котором указана начисленная заработная плата в каждом из четырех месяцев.
(5) Дан список районов Ярославской области, в котором указан план и фактические показатели надоев молока каждым районом в каждом квартале года.
(6) Дана таблица, в которой указано количество человек, прикрепленных к каждому округу, количество кандидатов в каждом округе, количество голосов отданных за каждого кандидата в каждом округе, количество бюллетеней, в которых вычеркнуты все кандидаты.
(7) Дана таблица, в которой указаны заводы, количество работающих на них человек, число обращений в поликлинику, количество пропущенных дней по болезни, скольким человекам выдавался больничный.
(8) Дана таблица, в которой указано количество лиц подававших заявления ( по категориям) для поступления в ЯГПИ (по факультетам),а так же указано число лиц принятых в ЯГПИ (по категориям и по факультетам).
(9) Дана таблица, являющаяся протоколом соревнований прыгунов в длину.(результаты в сантиметрах)
(10) Дана таблица, в которой указан курс валюты некоторых стран за определенный промежуток времени.
(11) Дана таблица, в которой за несколько лет указано количество студентов поступивших на каждый факультет ЯГПИ и успешно окончивших его через 5 лет.
(12) Дана таблица, в которой за несколько месяцев указано количество макулатуры и металлолома, собранных каждым классом.
(13) Дана таблица, в которой указана успеваемость студентов группы в данную сессию (фамилия, отметки, зачеты (проставить как + или -), оценки за экзамены).
Файлы
1. Что такое файл? Какие виды и типы файлов вы знаете?
2. Как описываются файловые переменные в заголовке программы?
3. Какие режимы работы с файлами вы знаете? Как их переключить?
4. Какова реакция машины на неверное имя файла при работе в разных режимах?
5. С какими файлами можно работать и как с файлами прямого доступа и как с файлами последовательного доступа?
6. Какие команды относятся только к одному типу файлов?
7. Как зависит от типа переменной S выполнение команды read(f,s) для текстового файла?
8. В чем разница между командами read(f,s), readln(f,s), read(s) и readln(s) при работе с текстовыми файлами?
9. В чем разница между командами write(f,s), writeln(f,s), write(s) и writeln(s) при работе с текстовыми файлами?
10. Объясните, для чего предназначены и как используются следующие команды:
(1) var f:file of integer;
i:integer;
x:array[1..100] of integer;
begin assign(f,'файл1'); rewrite(f); i:=1;
while not(eoln(f)) do bedin read(f,x[i]);
i:=i+1; end;
end.
(4) var f:file of real;
i:integer;
x:array of integer;
n:=1;
repeat reset(f); read(f,x[n]);
n:=n+1;
until eof(f); end.
(2) var f:file of integer;
i:integer;
x:array[1..100] of real;
begin assign(f,'файл1'); reset(f); i:=1;
while eof(f) do
begin read(f,x[n]);
i:=i+1; end;
end.
(5) var f:file of real;
i:integer;
x:array of real;
reset(f); i:=1;
repeat readln(f,x[i]);
until not(eof(f));
end.
(3) var f:file of integer;
i,x:integer;
reset(f,’файл1’); i:=1;
while not(eof(f)) do
begin readln(f,x[i]);
i:=i+1; end;
end.
(6) var f:file of integer;
i:integer;
a:array[1..100] of integer;
bagin assign(f,'файл1');rewrite(f); n:=1;
repeat
read(f,x[i]);
i:=i+1;
until eof(f);
12. Что делает данный фрагмент программы?
(1) var f:file of real;
i,j:integer;
begin assign(f,'файл1');
rewrite(f);
for i:=1 to 100 do
begin j:=sqr(i); write(f,j) end;close(f);
(4) type t=file of integer;
var f1,f2:t;
a:integer;
begin assign(f1,'файл1'); assign(f2,'файл2');
reset(f1); rewrite(f2);
while not(eot(f1)) do
begin read(f1, a); write(f2,a);end;
a:=100; write(f2,a); end; close(f2);
(2) var f:file of real;
s,i:integer;
r:real;
begin assign(f,'файл1');
reset(f); s:=0; i:=1;
while not eot(f) do
begin read (f,r); s:=sqr(r)+s;
i:=i+1;end;
(5) type t=file of integer;
var f1,f2:t;
a:integer;
begin assign(f1,'файл1');assign(f2,'файл2');
reset(f1); rewrite(f2);
while not(eot(f1)) do
begin read(f1,a); write(f2,a);end;
close(f2);
(3) type t=file of integer;
var f1,f2,f3:t;
a:integer;
begin
assign(f1,'файл1'); assign(f2,'файл2');assign(f3,'файл3');
reset(f1); reset(f2); rewrite(f3);
while not(eot(f1)) do
begin read(f1, a); write(f3,a); end;
while not(eot(f2)) do
begin read(f2, a); write(f3,a); end;
close(f3);
(6) type t=file of real;
var f1,f2:t;
a:real;
begin assign(f1,'файл1');assign(f2,'файл2');
reset(f1); rewrite(f2);
while not(eot(f1)) do
begin read(f1,a); if a<0 then a:=-a;
write(f2,a);end; close(f2);
13. Составьте процедуры на языке Паскаль для:
(1) чтения файла записей некоторой структуры в массив записей той же структуры;
(2) создание файла из 100 случайных целых чисел в диапазоне от 4 до 10;
(3) записи массива вещественных чисел в файл;
(4) объединения двух файлов вещественных чисел одинакового размера в один, в котором сначала идут числа из первого файла, а потом из второго;
(5) объединения двух файлов вещественных чисел одинакового размера в один, в котором числа из этих файлов чередуются,
(6) выделения из файла вещественных чисел первых двадцати чисел в новый файл;
(7) выделения из файла вещественных чисел последних двадцати чисел в новый файл;
(8) добавления одного числа в конец файла целых чисел;
(9) добавления одного числа в начало файла вещественных чисел;
(10) разбиения файла на два, один из которых содержит четные компоненты исходного файла, а второй – нечетные;
(11) разбиения файла на два – из положительных и неположительных компонент;
(12) создания из числового файла двух новых–из положительных и отрицательных чисел;
(13) объединения двух упорядоченных числовых файлов в один упорядоченный