array24-29

Решение задач. Array24-29

Приветствуем читателей нашего сайта! Сегодня мы с вами решим задачи Array24-29.

Задачи Array24-29

Array24. Дан целочисленный массив размера N, не содержащий одинаковых чисел. Проверить, образуют ли его элементы арифметическую прогрессию (см. задание Array3). Если образуют, то вывести разность прогрессии, если нет — вывести 0.

Решение Показать

Array25. Дан массив ненулевых целых чисел размера N. Проверить, образуют ли его элементы геометрическую прогрессию (см. задание Array4). Если образуют, то вывести знаменатель прогрессии, если нет — вывести 0.

Решение Показать

Array26. Дан целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные числа. Если чередуются, то вывести 0, если нет, то вывести порядковый номер первого элемента, нарушающего закономерность.

Если решать эту задачу в лоб(то есть начать проверять каждый элемент), то придётся делать два условия(когда первое число — чётное и когда первое число — нечётное). Но можно решить эту задачу намного проще. Достаточно просто заметить, что если оба числа чётные или нечётные, то их разность чётная(например: 5 — 3 = 2; 4 — 2 = 2). Если же одно число чётное, а другое — нечётное, то разность нечётная(например: 5 — 2 = 3). Тогда программа пишется очень просто.

Решение Показать

Array27. Дан массив ненулевых целых чисел размера N. Проверить, чередуются ли в нем положительные и отрицательные числа. Если чередуются, то вывести 0, если нет, то вывести порядковый номер первого элемента, нарушающего закономерность.

Можно заметить, что если числа разного знака, то: |a| + |b| ≠ |a + b|(например, |-3| + |5| = 8, а |-3 + 5| = 2), а если числа одного знака, тогда: |a| + |b| = |a + b|(например, |-3| + |-5| = 8, |-3 + (-5)| = 8).

Решение Показать

Array28.  Дан массив A размера N. Найти минимальный элемент из его элементов с четными номерами: A2, A4, A6, … .

Решение Показать

Array29. Дан массив A размера N. Найти максимальный элемент из его элементов с нечетными номерами: A1, A3, A5, … .

Решение Показать

На сегодня всё! Если у вас возникли вопросы, задавайте их в комментариях. И не забывайте рассказывать о нашем сайте своим друзьям!

  • Maxim

    В вашем решении задачи array24 выходит так, что последний элемент может не быть частью арифм. прогрессии, и в выводе будет не 0, а разница прогрессии.
    Вот правильное решение:
    program array24;

    var
    a: array[1..10] of integer;
    n, i, d: integer;
    flag: boolean;

    begin
    write(‘Введите N: ‘);
    readln(n);
    write(‘Введите элементы массива: ‘);
    for i := 1 to n do
    read(a[i]);
    d := a[2] — a[1];
    flag := true;
    if n > 2
    then
    begin
    i := 3;
    while flag and (i <= N) do
    begin
    if a[i] — a[i — 1] d
    then flag := false;
    inc(i);
    end;
    end;
    if flag
    then writeln(‘Разница: ‘,d)
    else writeln(0);
    end.

    • alen_marzz

      Максим, обе программы написаны абсолютно верно — как ваша версия, так и наша. Попробуйте сравнить их и понять это

  • Maxim

    Задача array29 вообще неправильно решена.
    Вот правильное решение:

    program array29;

    var
    a: array[1..10] of integer;
    n, i, max: integer;

    begin
    write(‘Введите N: ‘);
    readln(n);
    write(‘Введите элементы массива: ‘);
    for i := 1 to n do
    read(a[i]);
    max := a[1];
    i := 3;
    while i max
    then max := a[i];
    inc(i, 2);
    end;
    writeln(max);
    end.

    • alen_marzz

      Наверное, это потому, что вместо него там по ошибке скопирован код 28-ой.
      Благодарю за внимательность 🙂