0 / 0 / 0
Регистрация: 26.04.2016
Сообщений: 33
1

Произвести действия над множествами, представленными в виде массивов

28.09.2016, 23:44. Показов 446. Ответов 1
Метки нет (Все метки)

Создать массивы и выполнить действия

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
(A\oplus B)\cup C<br />

вот созданные массивы

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
program aaaa; 
uses crt; 
var 
mas1,mas2,mas3, mas4, mas5: array [1..40] of integer; 
i, j, f, t: integer; 
n:boolean; 
Begin 
randomize; 
for i := 1 to 20 do 
begin 
mas1[i] := random(41); 
mas2[i] := random(41); 
mas3[i] := random(41); 
if (i > 1) then 
for j := i downto 1 do begin 
if (mas1[i] = mas1[j]) then 
mas1[i] := random(41); 
if (mas2[i] = mas2[j]) then 
mas2[i] := random(41); 
if (mas3[i] = mas3[j]) then 
mas3[i] := random(41); 
end; 
end; 
writeln('Масив А:'); 
for i := 1 to 20 do begin 
write(mas1[i]:3); 
end; 
writeln; 
writeln('Масив B:'); 
for i := 1 to 20 do begin 
write(mas2[i]:3); 
end; 
writeln; 
writeln('Масив C:'); 
for i := 1 to 20 do begin 
write(mas3[i]:3); 
end; 
writeln; 
 
for i := 1 to 20 do 
for j := 1 to 20 do 
if (mas2[i] = mas3[j]) then begin 
inc(f); 
mas4[f] := mas2[i]; 
end;
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2016, 23:44
Ответы с готовыми решениями:

Множества. Действия над множествами
Студенты 1 курса (60 человек) получают новые книги в библиотеке.28 человек взяли по учебнику...

Множества. Выполнить действия над множествами: (B - A) * C (по заданным условиям).
Доброго времени суток. Помогите пожалуйста решить задачку по множествам. условие: Задан...

Произвести действия над матрицей
Вариант 10. Дана матрица А(3х4), состоящая из целых чисел. 1)Ввести элементы матрицы, а затем...

Произвести действия над массивом
Создать программу, которая заполняет массив n x n произвольно сгенерированными целыми числами,...

1
CAPITAL OF ROCK!
1280 / 707 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
29.09.2016, 12:32 2
чем ограничено множество значений A, B и C?

Добавлено через 2 часа 31 минуту
вариант чисто на массивах (вариант черновой)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
{$MODE TP}
const
    N = 40;
type
    TLine = Array[0..3 * N - 1] Of Integer;
    TArray = record
        line: TLine;
        len: 0..3 * N;
        c: Char;
    end;
procedure PrintArray(const ar: TArray);
var
    i: 0..3 * N - 1;
begin
    Write(ar.c, ':');
    if (ar.len > 0)
    then
        for i := 0 to ar.len - 1 do
            Write(ar.line[i]:4)
    else
        Write('EMPTY!');
    WriteLn;
end;
procedure InitArray(var ar: TArray; const l: LongWord; const cc: Char; const left, right: Integer);
var
    i: 0..3 * N - 1;
begin
    ar.c := cc; ar.len := l;
    if (ar.len > 0)
    then
    begin
        for i := 0 to ar.len - 1 do
            ar.line[i] := Random(right - left + 1) + left;
        PrintArray(ar);
    end;
end;
function FindInArray(const ar: TArray; const x: Integer): Boolean;
var
    Result: Boolean; //удалить строку при ошибке повторного объявления идентификатора
    i: 0..3 * N - 1;
begin
    i := 0; Result := False;
    while ((Not Result) And (i < ar.len)) do
    begin
        Result := (ar.line[i] = x);
        Inc(i);
    end;
    FindInArray := Result;
end;
var
    a, b, c, d, e: TArray;
    left, right, i: Integer;
begin
    Randomize;
    left := -99; right := 99;
    InitArray(a, N, 'A', left, right); InitArray(b, N, 'B', left, right);
    InitArray(c, N, 'C', left, right); InitArray(d, 0, 'D', left, right);
    InitArray(e, 0, 'E', left, right);
    for i := left to right do
        if (FindInArray(a, i) Xor FindInArray(b, i))
        then
        begin
            d.line[d.len] := i;
            Inc(d.len);
        end;
    PrintArray(d);
    for i := left to right do
        if (FindInArray(d, i) Or FindInArray(c, i))
        then
        begin
            e.line[e.len] := i;
            Inc(e.len);
        end;
    PrintArray(e);
end.
или вариант с конверсией
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
{$MODE TP}
const
    N = 40; //1..255
type
    TRange = 0..N;
    TSet = Set Of TRange;
    TLine = Array[0..3 * N - 1] Of TRange;
    TArray = record
        line: TLine;
        len: 0..3 * N;
        c: Char;
    end;
function SetToArray(const s: TSet): TArray;
var
    i: TRange;
    Result: TArray;
begin
    with Result do
    begin
        len := 0;
        for i := Low(i) to High(i) do
            if (i in s)
            then
            begin
                line[len] := i;
                Inc(len);
            end;
    end;
    SetToArray := Result;
end;
function ArrayToSet(const ar: TArray): TSet;
var
    i: 0..3 * N - 1;
    Result: TSet;
begin
    Result := [];
    with ar do
        if (len > 0)
        then
            for i := Low(i) to len do
                Include(Result, line[i]);
    ArrayToSet := Result;
end;
procedure PrintArray(const ar: TArray);
var
    i: 0..3 * N - 1;
begin
    Write(ar.c, ':');
    if (ar.len > 0)
    then
        for i := 0 to ar.len - 1 do
            Write(ar.line[i]:3)
    else
        Write('EMPTY!');
    WriteLn;
end;
procedure InitArray(var ar: TArray; const l: TRange; const cc: Char);
var
    i: 0..N - 1;
begin
    ar.c := cc; ar.len := l;
    if (ar.len > 0)
    then
    begin
        for i := Low(i) to ar.len - 1 do
            ar.line[i] := Random(High(TRange) - Low(TRange) + 1) + Low(TRange);
        PrintArray(ar);
    end;
end;
 
var
    a, b, c, d: TArray;
begin
    Randomize;
    InitArray(a, N, 'A'); InitArray(b, N, 'B');
    InitArray(c, N, 'C');
    d := SetToArray((ArrayToSet(a) >< ArrayToSet(b)) + ArrayToSet(c)); d.c := 'D';
    PrintArray(d);
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2016, 12:32

Проверьте правильно решил задачу или нет. Действия над множествами
Привет всем) решил задачу в контрольной своей, проверьте кто может правильно решил или нет. Если...

Произвести над одномерным массивом заданные действия
В одномерном массиве, состоящем из n вещественных элементов вычислить: 1) Сумму положительных...

Произвести заданные действия над одномерным массивом
В одномерном массиве Х(15) найти Сумму неположительных, произведение неотрицательных элементов,...

Произвести действия над матрицей по заданному условию
Дана матрица А в столбцах где нет отрицательных элементов минимальные элементы возвести в куб в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.