karinochka666
24.06.2020 19:51

Нужно решение на python 3
:
миша уже научился хорошо фотографировать и недавно увлекся программированием. первая программа, которую он написал, позволяет формировать негатив бинарного черно-белого изображения.
бинарное черно-белое изображение – это прямоугольник, состоящий из пикселей, каждый из которых может быть либо черным, либо белым. негатив такого изображения получается путем замены каждого черного пикселя на белый, а каждого белого пикселя – на черный.
миша, как начинающий программист, написал свою программу с ошибкой, поэтому в результате ее исполнения мог получаться некорректный негатив. для того чтобы оценить уровень несоответствия получаемого негатива исходному изображению, миша начал тестировать свою программу.
в качестве входных данных он использовал исходные изображения. сформированные программой негативы он начал тщательно анализировать, каждый раз определяя число пикселей негатива, которые получены с ошибкой.
требуется написать программу, которая в качестве входных данных использует исходное бинарное черно-белое изображение и полученный мишиной программой негатив, и на основе этого определяет количество пикселей, в которых допущена ошибка.
входные данные
первая строка входных данных содержит целые числа n и m (1 ≤ n, m ≤ 100) – высоту и ширину исходного изображения (в пикселях). последующие n строк содержат описание исходного изображения. каждая строка состоит из m символов «b» и «w». символ «b» соответствует черному пикселю, а символ «w» – белому. далее следует пустая строка, а после нее – описание выведенного мишиной программой изображения в том же формате, что и исходное изображение.
выходные данные
необходимо вывести число пикселей негатива, которые неправильно сформированы мишиной программой.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
polinalopareva1
19.01.2020 10:27
Type
    bignum = array[1..100] of integer;

var
    a, b: bignum;
    i, j, k, n_a, n_b: integer;

procedure get_num(var m: bignum; var n: integer);
var
    i := 0;
    s: string;
begin
    write('Введите число = ');
    readln(s);
    s := trim(s);
    n := 0;
    for i := length(s) downto 1 do
        if s[i] in ['0'..'9'] then begin
            n := n + 1;
            m[n] := strtoint(s[i]);
        end;
end;

function more(a, b: bignum; n_a: integer): boolean;
var
    i: integer;
    f := false;
begin
    for i := n_a downto 1 do
    begin
        if a[i] > b[i] then f := true
        else if a[i] < b[i] then f := false;
        if a[i] <> b[i] then break;
    end;
    more := f;
end;

procedure show(m: bignum; n: integer);
var
    i: integer;
begin
    write('Вывод ');
    for i := n downto 1 do
        write(m[i]);
    writeln();
end;

begin
    get_num(a, n_a);
    get_num(b, n_b);
   
    while (n_a >= n_b) and more(a, b, n_a) do    
    begin
        if (a[n_a] > b[n_b]) then k := n_a - n_b
        else if n_a > n_b then k := n_a - n_b - 1
        else k := 0;
       
        for i := 1 to n_b do
        begin
            a[i + k] := a[i + k] - b[i];
            if a[i + k] < 0 then begin
                for j := i + k to n_a - 1 do
                begin
                    if a[j] >= 0 then break;
                    a[j] := a[j] + 10;
                    a[j + 1] := a[j + 1] - 1;
                end
            end;
        end;
        if a[n_a] = 0 then n_a := n_a - 1;
    end;
   
    show(a, n_a);
end.
0,0(0 оценок)
Ответ:
Ильдар21111
26.05.2021 05:21
4.Основные свойства алгоритмов следующие:

1.   Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.

2.   Дискpетность (прерывность, раздельность) — алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).

3.   Опpеделенность — каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.

4.   Pезультативность (или конечность) состоит в том, что за конечное число шагов алгоpитм либо должен пpиводить к pешению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов.

5.Массовость означает, что алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота