1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Помогите доделать и переделать задачу!

Тема в разделе "Вопросы новичков и не только", создана пользователем sproject, 5 мар 2010.

Статус темы:
Закрыта.
  1. sproject

    sproject Гость

    Репутация:
    0
    Задача: выполнить операции над множествами(объединение, пересечениеделение и т.д) Дано два авторынка на которых встречаются одинаковые марки машин и разные! Суть в том, что надо выполнить эти операции над этими авторынками!

    Я сделал эти операции с числами, а с названиями машин не получается! Помогите!

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код:</div></div><div class="sp-body"><div class="sp-content">
    Код:
    program dm1;
    uses crt;
    const
    Nmax = 100;
    Nmax2 = 200;
    type
    m = array[1..Nmax] of integer;
    var
    a: m;
    b: m;
    n1, n2, i, j, t : integer;
    
    procedure prc(mas1, mas2: m);
    var
    itog : array [1..Nmax2] of integer;
    begin
    t := 0;
    for i := 1 to n1 do
    begin
    for j := 1 to n2 do
    begin
    if (a[i] = b[j]) then
    begin
    t := t + 1;
    itog[t] := a[i];
    end;
    end;
    end;
    writeln('Perecechenie mnojestv:');
    for i := 1 to t do
    begin
    writeln(itog[i]);
    end;
    end;
    
    procedure obd(mas1, mas2: m);
    var
    itog : array [1..Nmax2] of integer;
    begin
    for i := 1 to n1 do
    begin
    itog[i] := a[i];
    end;
    for i := n1+1 to n1+n2 do
    begin
    itog[i] := b[i-n1];
    end;
    for i := 1 to n1+n2 do
    begin
    for j := 1 to n1+n2 do
    begin
    if (itog[i] = itog[j]) and (i<>j) then
    begin
    itog[j] := 20034;
    end;
    end;
    end;
    for i := 1 to n1+n2 do
    begin
    if (itog[i]<>20034) then writeln(itog[i]);
    end;
    end;
    
    procedure raz(mas1, mas2: m);
    var
    itog : array [1..Nmax2] of integer;
    begin
    for i := 1 to n1 do
    begin
    for j := 1 to n2 do
    begin
    if (mas1[i] = mas2[j]) then mas1[i] := 20034;
    end;
    end;
    for i := 1 to n1 do
    begin
    if (mas1[i] <> 20034) then writeln(mas1[i]);
    end;
    end;
    
    begin
    clrscr;
    writeln('Vvedite kol-vo elementov pervogo massiva');
    readln(n1);
    writeln('Vvedite kol-vo elementov vtorogo massiva');
    readln(n2);
    writeln('Vvedite elementi pervogo massiva');
    for i := 1 to n1 do
    begin
    readln(a[i]);
    end;
    writeln('Vvedite elementi vtorogo massiva');
    for i := 1 to n2 do
    begin
    readln(b[i]);
    end;
    prc(a, B);
    readln;
    writeln('Obedinenie mnojestv');
    obd(a, B);
    readln;
    writeln('Raznost a/b');
    raz(a,B);
    readln;
    End.
     
  2. Dock1100

    Dock1100 :-]

    Репутация:
    0
    Регистрация:
    9 ноя 2009
    Сообщения:
    665
    Симпатии:
    1
    Вместо integer напишы string[20] и все компилится(правильность алгноритма не проверял)
    mas1 <> 20034 запишите так mas1 <> '20034'
    ну и остольные числа тоже
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей