- •Задание 1. Вычисление выражений. Использование стандартных функций.
- •Задание 2. Построение таблиц функций.
- •Задание 3. Организация циклов в программе
- •Задание 4. Работа с массивами чисел.
- •Задание 5. Работа с множественными типами данных
- •Задание 6. Операции над множествами
- •Задание 7. Работа с комбинированными типами данных
- •Задание 8. Работа с внешними файлами
- •Задание 9. Работа с упорядоченными файлами
Задание 4. Работа с массивами чисел.
Упорядочить по не возрастанию массив, содержащий 25 вещественных чисел.
Program dz4;
uses crt;
var
a:array[1..25] of real;
max, zap : real;
i, j, n_max : integer;
begin
clrscr;
writeln ('Заполнение массива случайными числами');
writeln;
randomize;
for i:= 1 to 24 do
a[i]:=random(1001)/(1+random(1000))-random(101)/(1+random(100));
a[25]:=0;
writeln('Исходный массив');
writeln;
for i:= 1 to 25 do
write(' ',a[i]);
writeln;
for i:= 1 to 25 -1 do
begin
n_max:=i;
max:=a[i];
for j:= i+1 to 25 do
if a[j]> max then
begin
max:= a[j];
n_max:=j;
end;
zap:=a[n_max];
a[n_max]:=a[i];
a[i]:=zap;
end;
writeln;
writeln('--------------массив после сортировки--------------');
writeln;
for i:= 1 to 25
do write(' ',a[i]);
writeln;
readln;
end.
Результаты выполнения программы:
Заполнение массива случайными числами
Исходный массив
1.88095238095238 -1.0693058733791 13.519696969697 0.33035757371037 2.19172413793103
-0.516508662961752 0.537649219467401 1.45 0.163203764456374 -1.17732884399551 0.2
-11.8571428571429 -0.762223436219612 0.755920820077766 -1.04939209726444
-0.664654226125137 3.1959559916741 -0.818415217644999 -1.63772796352584 0.127959632552723 0.816676077545643 0.483413141136397 -0.643972602739726 0.873150887573965
-0.292757242757243
--------------массив после сортировки--------------
13.519696969697 3.1959559916741 2.19172413793103 1.88095238095238 1.45 0.873150887573965 0.816676077545643 0.755920820077766 0.537649219467401 0.483413141136397 0.33035757371037 0.2 0.163203764456374 0.127959632552723 -0.292757242757243 -0.516508662961752 -0.643972602739726 -0.664654226125137 -0.762223436219612 -0.818415217644999 -1.04939209726444 -1.0693058733791 -1.17732884399551 -1.63772796352584 -11.8571428571429
Задание 5. Работа с множественными типами данных
Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности знаки операций отношения.
Program dom5;
uses crt;
Var c,i,j:char;
lb:set of '<'..'>';
Begin
clrscr;
writeln('Введите строку символов(x-конец строки)');
write('=>');
lb:=[];
repeat
read(c);
if c in ['<'..'>'] then lb:=lb+[c]
until c='x';
writeln('Знаки операций отношения:');
for i:='<' to '>' do
if i in lb then write(i:2);
writeln;
readln(c);
readln(c);
End.
Результаты выполнения программы:
Введите строку символов(x-конец строки):
=>ghHJKL<jivf+vjo=kod>>vdjo<<dsx
'Знаки операций отношения:
< = >
Задание 6. Операции над множествами
В техникуме имеются секции по следующим видам спорта: лыжи, коньки, хоккей, футбол, регби и самбо. Известны виды спорта, которыми занимаются учащиеся каждой группы. Количество групп N указано в варианте.
1. Требуется построить и распечатать множество видов спорта:
а) которыми занимаются во всех группах (N=10);
б) которыми занимаются хотя бы в одной группе (N=l0);
в) которыми не занимаются ни в одной из групп (N=10).
г) которыми занимаются хотя бы в 5-и группах (N=10).
program dz6;
const n=10;
type sports=(skiing, skating, hockey, football, rugby, sambo);
group=set of sports;
groups=array[1..n] of group;
var m1:groups;
x:sports;
A,B,C,D,xm1:group;
i,j,iw,l:integer;
counter: array[sports] of integer;
s:string;
ch:char;
begin
writeln('Номера спортивных секций: 1-лыжи, 2-коньки, 3-хоккей, 4-футбол, 5-регби, 6-самбо');
for j:=1 to n do begin
writeln('введите номера секций ', j,'-ой группы');
readln(s);
l:=length(s);
for i:=1 to l do begin
ch:=s[i];
case ch of
'1': x:=skiing;
'2': x:=skating;
'3': x:=hockey;
'4': x:=football;
'5': x:=rugby;
'6': x:=sambo;
end;
m1[j]:=m1[j]+[x];
end;
end;
A:=m1[1]; B:=[]; C:=[skiing .. sambo];
for i:=1 to n do begin
A:=A*m1[i]; (*по крайней мере в одном*)
B:=B+m1[i]; (*во всех*)
C:=C-B; (*нет ни в одном*)
end;
for i:=1 to 3 do begin
case i of
1: writeln('секции которыми занимаются во всех группах');
2: writeln('секции которыми занимаются хотя бы в одной группе ');
3: writeln('которыми не занимаются ни в одной из групп ');
end;
for x:=skiing to sambo do
if x in A then
case x of
skiing: writeln('лыжи');
skating: writeln('коньки');
hockey: writeln('хоккей');
football: writeln('футбол');
rugby: writeln('регби');
sambo: writeln('самбо');
end;
if i=1 then A:=B else A:=C;
end;
writeln('секции которые есть хотя бы в 3-х техникумах:');
for x:=skiing to sambo do begin
for i:=1 to n do begin
if(x in m1[i]) then inc(counter[x]);
end;
end;
for x:=skiing to sambo do begin
if(counter[x]>2) then case x of
skiing: writeln('лыжи');
skating: writeln('коньки');
hockey: writeln('хоккей');
football: writeln('футбол');
rugby: writeln('регби');
sambo: writeln('самбо');
end;
end;
end.
Результаты выполнения программы:
Номера спортивных секций: 1-лыжи, 2-коньки, 3-хоккей, 4-футбол, 5-регби, 6-самбо
введите номера секций 1-ой группы
123
введите номера секций 2-ой группы
123
введите номера секций 3-ой группы
234
введите номера секций 4-ой группы
234
введите номера секций 5-ой группы
52
введите номера секций 6-ой группы
425
введите номера секций 7-ой группы
32145
введите номера секций 8-ой группы
425
введите номера секций 9-ой группы
23
введите номера секций 10-ой группы
21
секции которыми занимаются во всех группах
коньки
секции которыми занимаются хотя бы в одной группе
лыжи
коньки
хоккей
футбол
регби
которыми не занимаются ни в одной из групп
самбо
секции которые есть хотя бы в 3-х техникумах:
лыжи
коньки
хоккей
футбол
регби
