Автор ответа: Аноним
А вообще алгоритм крайне неэффективный, потому что после того, как найдена искомая пара элементов, компьютер будет вынужден продолжать бесцельно перелопачивать остальную часть массива. что мешало организовать выход из цикла по условию — ума не приложу. Можно было использовать ненавистный канонам структурного программирования (привет Эдгару Дейкстре!) break, или применить цикл c пред/постусловием.
Источник: sous-otvet.net
Определить, есть ли в данном массиве положительные элементы, кратные к — Turbo Pascal
Написал программу, которая определяет, есть ли в данном массиве положительные элементы, кратные к. Но она работает некорректно. Укажите, пожалуйста, где ошибка. PS Условие программы в том, что она должна быть максимально компактна и рациональна.
uses crt; const m=10; type t=array[1..m]of integer; var a: t; i, k, s: integer; x: boolean; begin write(‘Введите К: ‘); read(k); s:=0; x:=true; for i:= 1 to m do begin a[i]:=-20+random(41); write(a[i], ‘ ‘); end; repeat for i:= 1 to m do if (a[i]>0) and (a[i]mod k=0) then inc(s); until s=1; writeln; if s=1 then writeln(‘да’) else writeln(‘нет’); end.
Код к задаче: «Определить, есть ли в данном массиве положительные элементы, кратные к»
Листинг программы
Как найти наибольшее значение в массиве чисел с помощью цикла JavaScript #shorts
var a:array[1..10]of integer; i,k,s:integer; begin write(‘Ââåäèòå ГЉ: ‘); readln(k); s:=0; for i:= 1 to 10 do begin a[i]:=random(41)-20; write(a[i]:4); end; writeln; for i:=1 to 10 do if (a[i]>0) and (a[i]mod k=0) then inc(s); if s>=1 then writeln(‘Г¤Г*’) else writeln(‘Г*ГҐГІ’); end.
Источник: studassistent.ru
Типовые задачи обработки массивов: поиск элемента и сортировка

В этом видеоуроке учащиеся продолжат рассматривать наиболее распространённые алгоритмы обработки данных в массивах. Будут рассмотрены алгоритмы для поиска элементов с заданным значением в отсортированном и неотсортированном массиве, а также один из наиболее простых алгоритмов сортировки данных в массиве – сортировка методом пузырька.

В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет.
Получите невероятные возможности

1. Откройте доступ ко всем видеоурокам комплекта.

Программирование на Си нахождение max, min числа в массиве
2. Раздавайте видеоуроки в личные кабинеты ученикам.

3. Смотрите статистику просмотра видеоуроков учениками.
Получить доступ
Конспект урока «Типовые задачи обработки массивов: поиск элемента и сортировка»
· Поиск элемента массива с заданным значением.
· Сортировка элементов массива.
Часто при решении некоторых задач требуется найти элемент массива со значением, равным чему-либо.
Задача: Написать программу, которая определяет, есть ли в массиве из 100 случайных целых чисел, на промежутке от 1 до 200, число, введённое пользователем.
Начнём написание программы для решения задачи. Назовём нашу программу zadannoe_chislo. Для работы программы нам потребуется массив из 100 элементов. Назовём его a. Так как элементами массива будут целые числа на промежутке от 1 до 200, укажем тип элементов массива byte.
Также нам понадобятся переменные для хранения номера текущего элемента — i и для хранения числа, введённого пользователем — num. Объявим принадлежащими к целочисленному типу byte.
Напишем логические скобки. Тело программы будет начинаться с оператора writeln, который будет выводить на экран сообщение о том, что это программа, определяющая, есть ли в массиве случайных чисел число, введённое пользователем. Теперь запишем цикл для заполнения массива случайными числами. Это будет цикл для i, изменяющегося от 1 до 100. В нём будет оператор присваивания i-тому элементу массива a, суммы случайного целого числа на промежутке от 0 до 199 и 1. После того как мы заполнили массив случайными числами, напишем оператор write, выводящий на экран запрос на ввод числа на промежутке от 1 до 200, а также оператор readln для считывания значения переменной num.
Для того чтобы определить, есть ли введённое число в массиве a, мы позже опишем логическую функцию, которую назовём poisk, поэтому сейчас напишем условный оператор if, условием которого будет значение функции poisk, с введённым числом num в качестве аргумента. После служебного слова then в этом условном операторе, напишем оператор writeln, выводящий на экран сообщение о том, что число num есть в массиве. После слова else также напишем оператор writeln, который будет выводить на экран сообщение о том, что числа num нет в массиве.
Для того чтобы пользователь могу убедиться в том, что программа работает правильно, напишем оператор write, выводящий сообщение о том, что это массив, а также цикл с для i для вывода элементов массива через пробел. На этом описание основной программы завершено.
program zadannoe_chislo;
a: array [1..100] of byte;
writeln (‘Программа, определяющая, есть ли в массиве случайных чисел число, введённое пользователем.’);
for i:=1 to 100 do
write (‘Введите число на промежутке [1; 200]>>> ‘);
if poisk (num)
then write (‘Число ‘, num, ‘ есть в массиве.’)
else write (‘Числа ‘, num, ‘ нет в массиве.’);
Теперь рассмотрим, как же проверить, есть ли в массиве Элемент с указанным значением. Для этого будем проверять последовательно все элементы массива от первого к последнему, пока не найдём нужный или же пока они не закончатся. Такой поиск элемента в массиве называется линейным.
Напишем для нашей программы логическую функцию, определяющую, есть ли в массиве a заданное число. Как мы помним, она должна называться poisk. Эта функция должна иметь один аргумент целочисленного типа byte, назовём его t. Также функция должна возвращать значение логического типа boolean.
Для работы функции нам потребуется дополнительная переменная, которая будет хранить номер текущего элемента массива. Назовём её i и укажем принадлежащей к целочисленному типу byte. В логических скобках опишем операторный блок функции. В его начале присвоим переменной i начальное значение – 0. Дальше напишем цикл с постусловием.
Условием окончания работы цикла будет то, что i-тый Элемент массива a равен t или что достигнут конец массива и i равно 100. Тело цикла будет содержать единственный оператор, увеличивающий значение переменной i на 1. После завершения работы цикла нам будет достаточно проверить равен ли i-тый элемент массива a t и присвоить значение истинности этого высказывания переменной функции poisk. На этом описание функции закончено.
function poisk (t: byte): boolean;
until (a[i]=t) or (i = 100);
Функция poisk
Запустим программу на выполнение. Введём число 75. Программа вывела сообщение о том, что такое число есть в массиве. Просмотрев элементы массива, мы можем убедиться, что такое число действительно в нём есть.

Снова запустим программу и введём число 120. Программа вывела сообщение о том, что такого числа нет в массиве. Программа работает правильно. Задача решена.

Рассмотрим функцию poisk. Очевидно, что в лучшем случае при её выполнении будет выполнена 1 проверка, а в худшем – 100. Это не очень много, но предположим, что у нас есть программа, которая будет выполнять поиск тысячи или даже миллионы раз. Тогда для этого может потребоваться много времени, но поиск в массиве можно организовать проще, если элементы массива расположены в соответствии с некоторыми правилами, например, по возрастанию или по убыванию своих значений.