Задача 28. Проверка наличия определенных элементов в массиве 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задача 28. Проверка наличия определенных элементов в массиве



Условие задачи. Дан целочисленный массив из N элементов, N £ 20. Проверить, имеются ли в нём трёхзначные числа.

Трехзначными числами являются положительные целые числа в диапазоне от 100 до 999 и отрицательные целые в диапазоне от -999 до -100. Можно проверять вхождение значения в один из двух диапазонов или взять значение по модулю и тогда проверять только принадлежность его диапазону [100; 999].

Исходными данными для этой задачи являются количество элементов массива N и их значения, результатом — сообщения «Да» или «Нет» в зависимости от выполнения условий задачи. Назовем массив А, а признак выполнения условия flag.

Начальное состояние переменной flag устанавливается соответствующим значению «нет». В цикле осуществляется последовательная проверка элементов массива. Если очередной элемент является трехзначным числом, значение переменной flag должно измениться и стать соответствующим «да», в этом случае цикл можно прервать. Окончательный ответ можно дать только по завершении просмотра элементов в зависимости от значения переменной flag.

Структурированная запись алгоритма 28

 1 Ввести N.

 2 Если N>20, то ограничим его максимально возможным N =20.

 3 Повторять N раз в цикле i=1, N

3.1. Ввести значение элемента A[i]

 4 Задать начальное значение flag = нет.

 5 Повторять N раз в цикле i=1, N

5.1. Если 100≤ A[i] ≤999 или -999≤ A[i] ≤-100, то flag = да и цикл можно прервать.

 6 Если flag = да, то вывести сообщение «В массиве есть трехзначные числа», иначе вывести сообщение «Трехзначных чисел в массиве нет».

Схема алгоритма

 

Текст программы на языке Си

#include <stdio.h>

int main (void)

{

int a[20], n, i;

char flag=0;

printf (″Введите число элементов массива\n″);

scanf (″%d″, &n);

if (n>20) n=20;

printf (″Введите значения элементов:\n”);

for (i=0; i<n; i++)

{

printf (″a[%d]=″, i);

scanf (″%d″, &a[i]);

}

for (i=0; i<n; i++)

if (100<=a[i] && a[i]<=999 ||

    -999<=a[i] && a[i]<=-100)

{

    flag=1;

    break;

}

if (flag)

printf ("В массиве есть трехзначные числа");

else

printf ("Трехзначных чисел в массиве нет");

return 0;

}

Текст программы на языке Паскаль

Program Pr_28;

var a: array [1..20] of integer;

n, i: integer;

flag: boolean;

begin

writeln (ʹВведите число элементов массива’);

read (n);

if n>20 then n:=20;

writeln (ʹВведите значения элементов:’);

for i:=1 to n do begin

write (ʹa[’, i, ʹ]=’);

read (a[i])

end;

flag:=false;

for i:=1 to n do

if (100<=a[i]) and (a[i]<=999) or

    (-999<=a[i]) and (a[i]<=-100)

   then begin

      flag:=true;

      break

   end;

if flag

then write('В массиве есть трехзначные числа')

else write('Трехзначных чисел в массиве нет')

end.

Текст программы на языке Фортран

Program Pr_28

Implicit none

integer a(20), n, i

logical flag

print *, ʹВведите число элементов массива’

read *, n

if (n>20) n=20

print *, ʹВведите значения элементов:’

do i=1, n

print *, ʹa[’, i, ʹ]=’

read *, a(i)

enddo

flag=.false.

do i=1, n

if (100<=a(i).and.a(i)<=999.or. &

        -999<=a[i].and.a[i]<=-100) then

      flag=.true.

      exit

endif

enddo

if (flag) then

 print *, ' В массиве есть трехзначные числа '

else

print *, ' Трехзначных чисел в массиве нет '

endif

end

Программа на языке Python

print("Введите число элементов массива 1<=N<=20 ")

N=int(input()) 

if N > 20:

 N = 20

A = [] # Создаем пустой список

for i in range(N): # i = 0,..., N-1 -- всего N

   print("Введите {0}-й элемент: ".format(i+1))

   A.append(float(input()))

flag = False

for i in range(N): # i = 0,..., N-1 -- всего N 

   if -999 <=A[i] <= -100 or 100 <= A[i] <= 999:

   flag = True

    break     

if flag:

   print("В массиве есть трехзначные числа")

else:

   print("Трехзначных чисел в массиве нет")

Программа в системе Матлаб

n=input('Введите число элементов массива');

if n>20

n=20;

end

for i=1:n

A(i)=input(' A(i)=');

end

flag=false;

for i=1:n

if 100<=A(i) && A(i)<=999 || …

      -999<=A(i) && A(i)<=-100

flag=true;

break;

end

end

if flag

disp(' В массиве есть трехзначные числа ')

else

disp(' Трехзначных чисел в массиве нет ')

end

С использованием векторных функций

n=input('Введите число элементов массива');

if n>20

n=20;

end

for i=1:n

A(i)=input(' A(i)=');

end

if length(A(100<=abs(A) & abs(A)<=999))~=0

disp(' В массиве есть трехзначные числа ')

else

disp(' Трехзначных чисел в массиве нет ')

end

 



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 68; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.128.129 (0.01 с.)