Ознакомление с форматом и способами объявления множества; изучение возможных операций над множествами

Страницы работы

2 страницы (Word-файл)

Содержание работы

Рыбалко Свтеа

Группа 318

Лабораторная работа № 14

Множества

          Цель: ознакомление с форматом и способами объявления множества; изучение возможных операций над множествами.

      Постановка задачи:

1.  Выполнить задание с использованием множества.

2.  Результаты расчета вывести в текстовой файл.

Вариант  заданий № 16

Вариант № 16

Записать в текстовой файл 90 случайных целых чисел в диапазоне [-60..60]. Считать данные группами по три числа, интерпретируя их как координаты 30 точек пространства. Составить множество из номеров точек, удаленных от геометрического центра тяжести системы далее чем на 15.

Текст программы:


PROGRAM lab;{множества}

uses crt;

CONST

     N=90;

     m=30;

TYPE

     SetOfNumber=set of 1..m;   {множество}

     arr=array[1..30,1..3] of integer;

VAR

     mas:arr;

     s:real;

     n1,j1,j,next,i:word;

     n2:integer;

     PrimerSet:SetOfNumber; {искомое множество}

     fo,fi,f:text;

   procedure soz_file(var fo:text);

   var

   j1:word;

   n1:integer;

   begin

   rewrite(fo);

    randomize;

   for j1:=1 to n  do begin

    n1:=random(121)-60;

   write(fo,n1,' ');

            end;end;

  procedure Read_file(var fo,fi:text;var mas:arr);

  var

  i,j:word;

  s,s1,x,y,z,x1,y1,z1:real;

  begin

  reset(fi);;

  s:=0;x1:=0;y1:=0; z1:=0;

  for i:=1 to m   do begin

  for j:=1 to 3 do begin

   read(fi,mas[i,j]);

    end;

    s:=sqrt((mas[i,1]*mas[i,1]+mas[i,2]*mas[i,2]+mas[i,3]*mas[i,3]))+s;{сумма растояний от начала координат}

    x1:=mas[i,1]+x1;

    y1:=mas[i,2]+y1;

    z1:=mas[i,3]+z1;end;

    x1:=x1/30;y1:=y1/30;z1:=z1/30;

    readln;

    for i:=1 to m do

     begin

        x:=mas[i,1];y:=mas[i,2]; z:=mas[i,3];

        writeln(i,' точка: x=',x:3:0,' y=',y:3:0,' z=',z:3:0);

        writeln(fo,i,' точка: x=',x:3:0,' y=',y:3:0,' z=',z:3:0);

        writeln(fo,i,' точка: x=',x:3:0,' y=',z:3:0,' z=',z:3:0);

        s1:=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)+(z-z1)*(z-z1));{растояние от центра тяжести}

        if s1>15 then primerset:=primerset+[i]; {добавление в множество номера точки}

        end;

        writeln('множество точек удаленных от центра тяжести (',x1:2:2,',',y1:2:2,',',z1:2:2,') больше 15:');

        writeln(f,'множество точек удаленных от центра тяжести (',x1:2:2,',',y1:2:2,',',z1:2:2,') больше 15:');

        for i:=1 to 30 do begin

if i in primerset then write(i,',');

                                  end;

       end;

  procedure rez_file(var f:text);

    var

    i:word;

           begin

       for i:=1 to 30 do

if i in primerset then write(f,i,' ');

     end;

  begin

  clrscr;

     assign(fo,'out11n.out');

     soz_file(fo);

          close(fo);

     assign(fi,'out11n.out');

     assign(fo,'exam.dat');

     assign(f,'rezul.dat');

     rewrite(fo);

     rewrite(f);

     read_file(fo,fi,mas);

     close(fi);

     close(fo);

     rez_file(f);

     close(f);

     readln;

END.


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


Файл выводных данных exam.dat :

1 точка: x=-45 y=-43 z= 50

1 точка: x=-45 y= 50 z= 50

2 точка: x= 22 y= -1 z= 26

2 точка: x= 22 y= 26 z= 26

3 точка: x=-57 y= 56 z=  8

3 точка: x=-57 y=  8 z=  8

4 точка: x=-13 y= 22 z= 26

4 точка: x=-13 y= 26 z= 26

5 точка: x=-16 y= -4 z= 20

5 точка: x=-16 y= 20 z= 20

6 точка: x= 58 y=-46 z= 51

6 точка: x= 58 y= 51 z= 51

7 точка: x=  3 y= 52 z= 33

7 точка: x=  3 y= 33 z= 33

8 точка: x= 38 y=-17 z= 46

8 точка: x= 38 y= 46 z= 46

9 точка: x= 36 y=-14 z=  9

9 точка: x= 36 y=  9 z=  9

10 точка: x= 60 y=-41 z= -5

10 точка: x= 60 y= -5 z= -5

11 точка: x=-25 y=-37 z= 54

11 точка: x=-25 y= 54 z= 54

12 точка: x=-51 y= -9 z= -3

12 точка: x=-51 y= -3 z= -3

13 точка: x=-34 y=-34 z=  9

13 точка: x=-34 y=  9 z=  9

14 точка: x=  1 y=-59 z= 60

14 точка: x=  1 y= 60 z= 60

15 точка: x=-12 y=-44 z= -7

15 точка: x=-12 y= -7 z= -7

16 точка: x= 57 y= 59 z= -9

16 точка: x= 57 y= -9 z= -9

17 точка: x= -5 y=-42 z=-15

17 точка: x= -5 y=-15 z=-15

18 точка: x=-53 y= 31 z= 57

18 точка: x=-53 y= 57 z= 57

19 точка: x=-15 y=-11 z= 22

19 точка: x=-15 y= 22 z= 22

20 точка: x=-23 y=-39 z= 13

20 точка: x=-23 y= 13 z= 13

21 точка: x=-25 y=-15 z=  7

21 точка: x=-25 y=  7 z=  7

22 точка: x=-22 y= 59 z= 53

22 точка: x=-22 y= 53 z= 53

23 точка: x=  2 y=-41 z=-47

23 точка: x=  2 y=-47 z=-47

24 точка: x=-37 y= 36 z= 44

24 точка: x=-37 y= 44 z= 44

25 точка: x= 23 y=  1 z=  1

25 точка: x= 23 y=  1 z=  1

26 точка: x= 26 y=-50 z= -4

26 точка: x= 26 y= -4 z= -4

27 точка: x= 44 y= 38 z=-34

27 точка: x= 44 y=-34 z=-34

28 точка: x=-40 y= 31 z=-34

28 точка: x=-40 y=-34 z=-34

29 точка: x= 32 y= 33 z= 16

29 точка: x= 32 y= 16 z= 16

30 точка: x=-59 y=-26 z= 10

30 точка: x=-59 y= 10 z= 10

Файл выводных данных rezul.dat : 

множество точек удаленных от центра тяжести (-4.33,-5.17,15.23) больше 15:

1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30


Вывод: Я ознакомилась с форматом и способами объявления множества; изучила возможные операций над множествами.

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Отчеты по лабораторным работам
Размер файла:
44 Kb
Скачали:
0