Задать вопрос
17 февраля, 10:56

Написать 2 программы:

1. Проверить, есть ли в массиве отрицательные элементы. Если есть, вывести а-номер первого такого элемента, b-номер последнего. (использовать барьер)

2. Проверить, является ли массив целых чисел симметричным

+5
Ответы (2)
  1. 17 февраля, 12:07
    0
    Const

    n = 10;

    var

    a: array[1 ... n] of integer;

    i, p, q: integer;

    flag: boolean;

    begin

    {1. Инициализируем массив}

    Randomize;

    Write ('Элементы массива: ') ;

    for i : = 1 to n do

    begin

    a[i] : = Random (101) - 50;

    Write (a[i]:5)

    end;

    Writeln;

    {2. проверяем элементы массива на наличие отрицательных значений}

    flag : = true;

    i : = 1;

    {2.1 Ищем первое по порядку отрицательное }

    while flag and (i < = n) do

    begin

    flag : = (a[i] > = 0) ;

    i : = i + 1

    end;

    if flag then Writeln ('В массиве нет отрицательных элементов')

    else begin

    p : = i - 1;

    {2.1 Ищем последнее по порядку отрицательное }

    i : = n;

    flag : = true;

    while flag and (i > p) do

    begin

    flag : = (a[i] > = 0) ;

    i : = i - 1

    end;

    if flag then Writeln ('В массиве один отрицательный элемент с номером ', p)

    else

    Writeln ('Отрицательные элементы лежат в промежутко от ', p, ' до ', i + 1)

    end

    end.

    Тестовое решение:

    Элементы массива: 17 - 45 - 29 - 30 32 - 12 29 - 39 20 6

    Отрицательные элементы лежат в промежутке от 2 до 8

    const

    nm = 50; {максимальная длина массива}

    var

    i, n, n2: integer;

    a: array[1 ... nm] of integer;

    flag: boolean;

    begin

    { 1. Инициализация массива }

    Write ('Введите количество элементов в массиве: ') ;

    Readln (n) ;

    Write ('Введите элементы массива через пробел ') ;

    for i : = 1 to n do Read (a[i]) ;

    { 2. Проверка симметричности массива }

    flag : = true;

    i : = 1;

    n2 : = n div 2;

    while flag and (i < = n2) do

    begin

    flag : = (a[i] = a[n - i + 1]) ;

    i : = i + 1

    end;

    if flag then Writeln ('Массив является симметричным')

    else Writeln ('Массив не является симметричным')

    end.

    Тестовое решение:

    Введите количество элементов в массиве: 8

    Введите элементы массива через пробел 1 7 3 4 4 2 7 1

    Массив не является симметричным

    Введите количество элементов в массиве: 7

    Введите элементы массива через пробел 8 4 9 1 9 4 8

    Массив является симметричным
  2. 17 февраля, 13:06
    0
    Program z1;

    var ar: array of integer;

    f, l, i, N: integer;

    begin

    readln (N) ;

    setlength (ar, N+1) ;

    for i:=1 to N do read (ar[i]) ;

    f:=-1;

    for i:=1 to N do begin

    if ar[i]<0 then begin

    f:=i;

    break;

    end;

    end;

    if f>0 then begin

    for i:=N downto 1 do begin

    if ar[i]<0 then begin

    l:=i;

    break;

    end;

    end;

    write (f,' ', l) ;

    end

    else write ('No') ;

    end.

    program z2;

    var ar: array of integer;

    i, N: integer;

    otv: boolean;

    begin

    readln (N) ;

    setlength (ar, N+1) ;

    for i:=1 to N do read (ar[i]) ;

    for i:=1 to N div 2+1 do begin

    if ar[i]ar[N-i+1] then begin otv:=true; break; end;

    end;

    if otv=true then write ('No')

    else write ('Yes') ; end.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Написать 2 программы: 1. Проверить, есть ли в массиве отрицательные элементы. Если есть, вывести а-номер первого такого элемента, b-номер ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы