Меню

Как найти максимальное число из трех в паскале



Нахождение наибольшего числа из трех

Найти наибольшее число из трех. Если числа равны, то вывести любое из них.

Входные данные

В единственной строке входного файла INPUT.TXT записано три числа через пробел. Все числа целые, не меньше -10000 и не больше 10000.

Выходные данные

В файл OUTPUT.TXT выведите единственное число.

INPUT.TXT OUTPUT.TXT
4 7 5
-10 -1000 -100
8 8 8
7
-10
8

В очередной раз я упростил задачу за счет того, что при равенстве чисел можно вывести любое из них. Как и в задаче «Нахождение наибольшего числа из двух» возможно несколько вариантов решения. Здесь будет рассмотрено два из них.

Первый способ решения задачи основан на использовании дополнительной переменной. Т.е. кроме трех перемененных (например а, b , с) используются дополнительная переменная (например с именем » max) для хранения наибольшего значения. Это пример привожу лишь по той причине, что порой, он оказвается проще для понимания.

Решение задачи на Паскале.

Как видно из блок-схемы приведенной ниже, использовать дополнительную переменную нет никакой нужды. Отказавшись от полного ветвления при проверке первого условия, удалось уменьшить и код программы. Обратите внимание, что для использования неполного ветвления надо проверять условие a , а не a>b .

В книге С. Окулова «Основы программирования » , для решения этой задачи предлагается использовать составные условия. Вот как будет выглядеть текст программы в этом случае:

При копировании материалов обратная ссылка обязательна

Источник статьи: http://inf5.ru/podgotovka_k_olympiad/zadachi_prostye/big_from_three.htm

Pascal: Занятие № 4. Логический тип данных Boolean, поиск максимума и минимума в Паскале

Логический тип данных Boolean в Паскале

Мы уже научились писать программы, основанные на линейных алгоритмах, в Паскале. И даже уже составляем нелинейные алгоритмы — с ветвлением — в которых используются логические выражения, которые принимают значения true или false .

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

var A: integer; begin A := 5; write(A > 0); end.

Для записи результата логического выражения используется специальная логическая переменная, которая имеет в Паскале тип boolean и может также принимать одно из двух значений — true или false .

Посмотрим, как работает та же самая задача с логической переменной:

var A: integer; b: boolean; begin A := 5; b:=A > 0; write(b); end.

var a:boolean; begin a:=true; if a=true then writeln (‘истина’) else writeln(‘ложь’); end.

Для создания сложных условий используются специальные логические операции: and , or , not и xor .

[Название файла: task_bool1.pas ]

Рассмотрим пример с использованием логической операции XOR :

program Boolean; var x,y: integer; c :boolean; begin write(‘Введите X, Y: ‘); read(x,y); c := (Odd(x)) xor (Odd(y)); writeln(‘Только одна из переменных X и Y имеет нечетное значение — ‘, c); end.

Рассмотрим еще одно решение задачи в Паскале с использованием логической переменной:

[Название файла: task_bool2.pas ]

Рассмотрим решение более сложной задачи с переменной логического типа:

const a=348; var d_n, s_n, e_n: integer; flag:boolean; begin flag:=false; s_n:=a div 100; d_n:=((a mod 100)div 10); e_n:=a mod 10; if (s_nd_n) and (d_ne_n) and (e_ns_n) then flag:=true; writeln(flag); end.

Здесь каждый разряд получается путем использования операций деления нацело и взятия остатка от деления: s_n — это цифра сотого разряда, d_n — цифра десятого разряда, e_n — единицы.

[Название файла: task_bool3.pas ]

Минимальное и максимальное число в Паскале.

[Название файла: task_bool4.pas ]

При организации поиска минимального или максимального числа среди ряда чисел всегда на помощь приходит старенький «бабушкин» алгоритм:

  • Представим ситуацию, что мы жарим пирожки, и уже нажарили целую большую горку; теперь надо выбрать из них самый большой, т.е. в нашем случае максимальный.
  • Берем верхний пирожок, т.е. первый, и говорим, что он пока самый большой и откладываем его в сторону.
  • Затем берем второй и сравниваем с самым большим, если этот второй пирожок оказывается больше — откладываем его на место «бывшего самого большого» и говорим, что теперь он самый большой.
  • Берем следующий и повторяем действия. Так осуществляем данную процедуру со всеми пирожками.

Иногда в качестве первоначального максимума назначается самое малое возможное число (в зависимости от контекста задачи). А в качестве минимума — напротив, самое большое возможное число. Например, если сказано, что необходимо найти максимальное / минимальное среди положительных чисел, меньших 1000, то:

max:=integer.MinValue;; // минимальное среди типа Integer min:=integer.MaxValue;; // максимальное среди типа Integer

print(max(2,8)); // 8 print(min(2,8)); // 2

Рассмотрим теперь решение задачи на Паскале нахождения максимального числа:

var i, chislo, max:integer; begin // первое введенное число //сразу определяем как максимальное: readln(max); for i:=2 to 10 do begin readln (chislo); if chislo > max then max:= chislo end; writeln(max) end.

begin // первое введенное число //сразу определяем как максимальное: var maximum:=readInteger(); for var i:=2 to 10 do begin var chislo:=readInteger(); // используем стандартную функцию max(): maximum := max(chislo,maximum); end; writeln(maximum) end.

Аналогично осуществляется поиск минимального из чисел.

Для лучшего понимания темы поиска максимального или минимального значения предлагаем посмотреть видео урок:

[Название файла: task_max1.pas ]

[Название файла: task_max2.pas ]

[Название файла: task_max3.pas ]

Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

Источник статьи: http://labs-org.ru/pascal-4/

Найти максимальное из трёх чисел

Помогите пожалуйста исправить ошибки

1) Заданы три массива а(m), b(n) и c(q). Найти максимальное из трёх чисел x, y , z, где эти числа – средние арифметические значения элементов массивов a, b и c соответственно.

2) Программирование операций обработки данных комбинированного типа.

Сведения представляются в виде таблицы, содержащей фамилии студентов и определённые характеристики из числа следующих:
1) пол;
2) дата рождения;
3) рост;
4) оценки по четырём предметам, полученные за сессию;
5) получаемая стипендия;
6) место жительства
Предусмотреть в программе ввод количества студентов, сведения о которых обрабатываются, их фамилий, заданных о них сведений и вывод результатов обработки.
Выбор студентов заданного пола, имеющих в сессию хотя бы одну оценку 3

Найти меньшее из пяти чисел, используя процедуру нахождения меньшего из трёх чисел
4. Даны пять натуральных чисел b1,b2,b3,b4,b5. Найти МЕНЬШЕЕ из них, используя процедуру нахождения.

Найти наибольшее из трёх чисел
Найти наибольшее из трёх чисел АВС.

Найти минимальное из трёх чисел
Тема: Процедуры пользователя 1. Найти минимальное из A, B, C, создав процедуру выбора.

Из трёх чисел найти нечётные и перемножить их.
Напишите код программы — из трёх чисел найти нечётные и перемножить их. Товарищи помогите с.

Найти произведение двух наименьших из трёх различных чисел
Составить программу нахождения произведения двух наименьших из трех различных чисел. Помогите.

Найти максимальное из чисел
Вот такая задача: Вводится последовательность целых чисел,заканчивающаяся числом 0(признак.

Найти максимальное из 3х чисел
Всем привет, помогите составить программу на языке программирования Pascal используя оператор.

Найти из N чисел максимальное
Задача. Найти из N чисел максимальное. Каким по порядку было введено максимальное число? Указание.

Источник статьи: http://www.cyberforum.ru/pascal/thread276778.html

Вывод максимального и минимального из 3-х чисел

Здравствуйте! Помогите пожалуйста разобраться. в восьмом классе не велась информатика, а потом перешел в другую школу, а там началось программирование. Я не понимаю, как написать программу по заданию в Паскале.

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

Входная строка содержит три целых числа, разделённх пробелами.

В первой строке нужно вывести минимальное из введённых чисел, во второй строке — максимальное.

Книжные новинки
Копилка
Рабочие программы
Проекты MS Office
Презентации
Открытые уроки
Экзаменационные билеты
Элективные курсы
Бесплатный soft
Инструкции по ТБ
Подготовка к олимпиадам по информатике
Методика подготовки
«Золотые» алгоритмы
Простые задачи для начинающих
Олимпиадные задачи с решениями
Книги
Среда программирования
Обучение программированию на С++
Справочник по языку Pascal
Обучение
Подготовка к ЕГЭ
Создание сайтов
Уроки FrontPage
Уроки Word 2003
Создание игр на Delphi
Печатаем вслепую
Входные данные Выходные данные
1 2 3 1

Вывод максимального и минимального значения
Что не так? Выводит: 8 9 Максимальное значение 8004304 Минимальное значение 8 #include.

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

Вывод максимального и минимального числа
Только начала учить дэлфи, но что то ни как не могу разобраться как вывести на экран максимальное и.

Нужно найти сколько всего чисел и среднее арифметическое чисел максимального и минимального
Помогите найти мне сколько всего чисел и среднее арифметическое чисел максимального и минимального.

Решение

Решение

Вот так, наверное, проще всего:

Вывод минимального и максимального времени из формулы
Комфорт пассажиров Маркетологи Oceanic Airlines решили запустить новую рекламную кампанию, которая.

Напишите программу, которая в последовательности целых чисел определяет разность максимального и минимального чисел
Напишите программу, которая в последовательности целых чисел определяет разность максимального и.

Определить среди чисел a, b, c сумму максимального и минимального чисел
Добрые люди — помогите с задачами: 1)Определить среди чисел a,b,c сумму максимального и.

Создание файла и вывод максимального и минимального числа
Нужно создать файл состоящий из n целых чисел, вывести на экран max и min и их позицию.

Источник статьи: http://www.cyberforum.ru/pascal/thread2120005.html

Как найти максимальное число в паскале

Язык паскаль онлайн

Поиск Максимального Элемента и Минимального Элемента в Массиве Паскаль

    Browse: Home / Самоучитель паскаль онлайн / Поиск Максимального Элемента и Минимального Элемента в Массиве Паскаль

Мы знаем , что массив содержит в себе упорядоченные элементы данных , которые имеют свои значения и адреса.

Во многих задачах нам потребуется обрабатывать подобные массивы. Например : ( поиск наибольшего элемента , наименьшего элемента и т.п ). Алгоритм поиска элемента в массиве мы разберем в данном уроке.

Поиск максимального элемента в массиве

Чтобы разобраться в том , как осуществляется поиск элемента в массиве паскаль , мы разберем такую задачу :

Условие : С клавиатуры вводятся 5 целых чисел , требуется найти наибольший элемент ( наибольшее число ) и вывести его на экран.

В блоке var объявляем массив «а». Диапазон индексов от 1 до 5 , так как максимальное количество введенных чисел = 5 ( исходя из условия задачи ). Тип переменных integer ( вводятся целые числа ).

Также нам понадобятся ещё две переменные «i» и «max». Переменная i будет играть роль счетчика для цикла , а переменная max будет хранить в себе максимальное значение элемента в массиве.

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

Далее присваиваем переменной max значения первого элемента массива. Возможно у вас возникает вопрос для чего это делается ? ведь первый элемент массива может и не быть наибольшим , более того , он может быть наименьшим. Это делается для того , чтобы иметь «точку отправления» , с которой мы будем сравнивать все остальные элементы в массиве.

В следующем цикле мы будем проверять все элементы в массиве ( из условия 5 ). Проверять нужно все элементы массива , так как мы не знаем где находится наибольший. Но начинать мы будем со 2 , так как первый элемент уже занесен в максимум и сравнивать одинаковые числа не имеет смысла.

Представим , что мы заполнили наш массив так : 4 17 -5 0 8 , тогда переменная max = 4 ( так как a[1] = 4 ).

Во время сравнения двух элементов max и a[i] выполняется условие ( a[i] > max ). Если условие истинно ( какой-либо элемент массива больше max ) , то переменной max присваивается значение этого элемента ( a[i] ).

Второй элемент массива больше переменной max , поэтому max присваивается значение 17.


При дальнейших сравнениях в массиве , не найдены элементы большие 17 , поэтому max остается неизменным.

В конце программы выводим max на экран ( 17 ).

Поиск минимального элемента в массиве

Условие : С клавиатуры вводятся 5 целых чисел , требуется найти наименьший элемент ( наименьшее число ) и вывести его на экран.

Найти максимальное число из трех

Определить какое из трех введенных пользователем чисел максимальное и вывести его на экран.

Решение

Пусть числа, которые вводит пользователь, присваиваются переменным n1 , n2 , n3 . Введем четвертую переменную max , в которую по ходу выполнения кода будет помещено найденное максимальное значение. Тогда алгоритм решения задачи можно свести к следующему:

  1. Сравнить первое и второе число ( n1 и n2 ). Переменной max присвоить значение переменной, содержащей большее значение.
  2. Сравнить значение переменной max с третьим числом ( n3 ). Если значение n3 окажется больше, чем max , то присвоить max значение третьего числа. Если же значение max окажется больше, то ничего не делать.

Программа на языке Паскаль:

Другой способ решения задачи — сразу предположить, что первая переменная содержит максимальное число, и присвоить его переменной max . Далее, сравнивая значение max со значениями двух других переменных, будем менять max только в том случае, если второе или третье числа больше того значения, которое содержится в max .

Как найти максимальное число в паскале

Нахождение максимального и минимального значения.

В этой статье мы рассмотрим сравнение чисел.

При сравнении чисел мы выбираем то число, которое банально больше. Ну, например, при сравнении числа 2 и 3 мы выберем максимальным числом 3, а минимальным 2. Графически 3 на числовой оси X находится правее, чем 2.

Я покажу один из самых рациональных алгоритмов выбора максимального и минимального числа, подходящего для общего случая. Это присвоение для переменных, выражающих минимальное и максимальное значение, значение одного из элементов заданных чисел/массива.

Ну теперь перейдем к практике.

Простая программка для сравнения 3 чисел(min_max_1):

Program Min_Max;
var a,b,c,min,max:integer;
begin
write(‘Введите 3 числа для сравнения (через пробел) : ‘);read(a,b,c);
min:=a;max:=a;
if b>max then max:=b;if b max then max:=c;if c max then max:=b; if b max then max:=c; if c<min then min:=c;

Здесь происходит сравнение оставшихся введенных переменные со значениями переменных min и max.

Ну здесь у нас происходит вывод ответа, думаю, объяснять где, какое значение выводится не надо=)

Источник статьи: http://ritorika.com.ua/dokument/23/kak-najti-maksimalnoe-chislo-v-paskale

Задача — Найти максимальное число из трех — программирование на разных языках

Задача — Найти максимальное число из трех
— программирование на Pascal, Си, Кумир, Basic-256, Python

Вводятся три целых числа. Определить какое из них наибольшее.

Пусть a, b, c — переменные, которым присваиваются введенные числа, а переменная m в конечном итоге должна будет содержать значение наибольшей переменной. Тогда алгоритм программы сведется к следующему:

  1. Сначала предположим, что переменная a содержит наибольшее значение. Присвоим его переменной m.
  2. Если текущее значение m меньше, чем у b, то следует присвоить m значение b. Если это не так, то не изменять значение m.
  3. Если текущее значение m меньше, чем у c, то присвоить m значение c. Иначе ничего не делать.

Данную задачу можно решить и без использования четвертой переменной, однако программа будет логически сложнее:

  1. Если a больше b, то проверить больше ли a, чем c. Если это так, то максимальное число содержит переменная a. Если a больше b, но при этом меньше c, то максимальным является значение c.
  2. Иначе (когда a меньше b) сравнить значения b и c. Большее из них и есть максимальное.

Pascal

var
a,b,c,max: integer;
begin
readln(a,b,c);
max := a;
if max b then
if a > c then writeln(a)
else writeln(c)
else
if b > c then writeln(b)
else writeln(c);
end.

Язык Си

if (a > b)
if (a > c) printf(«%dn», a);
else printf(«%dn», c);
else
if (b > c) printf(«%dn», b);
else printf(«%dn», c);
>

Python

a = int(input())
b = int(input())
c = int(input())

m = a
if m b:
if a > c:
print(a)
else:
print(c)
else:
if b > c:
print(b)
else:
print(c)

КуМир

алг максимум из трех
нач
цел a, b, c, m
ввод a, b, c
m := a
если b > m то m := b все
если c > m то m := c все
вывод m
кон

алг максимум из трех
нач
цел a, b, c
ввод a, b, c
если a > b то
если a > c то
вывод a
иначе
вывод c
все
иначе
если b > c то
вывод b
иначе
вывод c
все
все
кон

Basic-256

input a
input b
input c
max = a
if max b then
if a > c then
print a
else
print c
endif
else
if b > c then
print b
else
print c
endif
endif

Источник статьи: http://ars-games.ru/zadacha-naiti-maksimalnoe-chislo-iz-treh-programmirovanie-na-raznyh-iazykah-3/

Нахождение наибольшего числа из трех

Найти наибольшее число из трех. Если числа равны, то вывести любое из них.

Входные данные

В единственной строке входного файла INPUT.TXT записано три числа через пробел. Все числа целые, не меньше -10000 и не больше 10000.

Выходные данные

В файл OUTPUT.TXT выведите единственное число.

INPUT.TXT OUTPUT.TXT
4 7 5
-10 -1000 -100
8 8 8
7
-10
8

В очередной раз я упростил задачу за счет того, что при равенстве чисел можно вывести любое из них. Как и в задаче «Нахождение наибольшего числа из двух» возможно несколько вариантов решения. Здесь будет рассмотрено два из них.

Первый способ решения задачи основан на использовании дополнительной переменной. Т.е. кроме трех перемененных (например а, b , с) используются дополнительная переменная (например с именем » max) для хранения наибольшего значения. Это пример привожу лишь по той причине, что порой, он оказвается проще для понимания.

Решение задачи на Паскале.

Как видно из блок-схемы приведенной ниже, использовать дополнительную переменную нет никакой нужды. Отказавшись от полного ветвления при проверке первого условия, удалось уменьшить и код программы. Обратите внимание, что для использования неполного ветвления надо проверять условие a , а не a>b .

В книге С. Окулова «Основы программирования » , для решения этой задачи предлагается использовать составные условия. Вот как будет выглядеть текст программы в этом случае:

При копировании материалов обратная ссылка обязательна

Источник статьи: http://www.inf777.narod.ru/podgotovka_k_olympiad/zadachi_prostye/big_from_three.htm

Pascal: Занятие № 5. Одномерные массивы в Паскале

Одномерные массивы в Паскале

Объявление массива

Массивы в Паскале используются двух типов: одномерные и двумерные.
Определение одномерного массива в Паскале звучит так: одномерный массив — это определенное количество элементов, относящихся к одному и тому же типу данных, которые имеют одно имя, и каждый элемент имеет свой индекс — порядковый номер.
Описание массива в Паскале (объявление) и обращение к его элементам происходит следующим образом:

var dlina: array [1..3] of integer; begin dlina[1]:=500; dlina[2]:=400; dlina[3]:=150; .

Объявить размер можно через константу:

Инициализация массива

Кроме того, массив может быть сам константным, т.е. все его элементы в программе заранее определены. Описание такого массива выглядит следующим образом:

const a:array[1..4] of integer = (1, 3, 2, 5);

Заполнение последовательными числами:

Ввод с клавиатуры:

writeln (‘введите кол-во элементов: ‘); readln(n); for i := 1 to n do begin write(‘a[‘, i, ‘]=’); read(a[i]); . end; .

Вывод элементов массива

var a: array[1..5] of integer; i: integer; begin a[1]:=2; a[2]:=4; a[3]:=8; a[4]:=6; a[5]:=3; writeln(‘Массив A:’); for i := 1 to 5 do write(a[i]:2); end.

Для работы с массивами чаще всего используется в Паскале цикл for с параметром, так как обычно известно, сколько элементов в массиве, и можно использовать счетчик цикла в качестве индексов элементов.

[Название файла: taskArray0.pas ]

В данном примере работы с одномерным массивом есть явное неудобство: присваивание значений элементам.

Динамические массивы (pascalAbc.Net)

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

  • Основной особенностью динамических массивов является возможность выделения для них памяти на любом этапе выполнения программы.
  • Имеется возможность корректировки размера динамического массива как в сторону его уменьшения, так и в сторону увеличения.

    var a: array of integer; var n:=readInteger; a:=new integer[n]; // инициализация, выделение памяти для элементов массива

    var a: array of integer; var n:=readInteger; SetLength(a,n); // устанавливаем размер

    Аналогичным образом массивы могут описываться в качестве параметров подпрограмм, например:

    procedure p(a: array of integer);

    begin var a: array of integer; a := new integer[3]; a[0] := 5; a[1] := 2; a[2] := 3; end.

    begin var a: array of integer; a := new integer[3](5,2,3); print(a) end.

    var a:=Arr(1,2,3);// по правой части — integer

    var a:=ReadArrInteger(5); // ввод пяти целых var a:=ReadArrReal(5); // ввод пяти вещественных

    var a := ArrFill(10, 1); // массив из 10 целых чисел, равных 1

    var a := ArrGen(ReadInteger, 1, e -> e + 2); // массив, состоящий из n первых положительных нечетных чисел a.Print;

    for var i:=0 to a.Length-1 do a[i] += 1;

    for var i := 0 to a.High do a[i] += 1;

    Проход по элементам (только для чтения):
    Пример:

    foreach var x in a do Print(x)

    Простой вывод элементов:

    Writeln(a); // пример вывода: [1,5,3,13,20]

    a.Print; // пример вывода: 1 5 3 13 20 a.PrintLines; // каждый элемент с новой строки

    Функция Random в Pascal

    Для того чтобы постоянно не запрашивать значения элементов массива используется генератор случайных чисел в Паскаль, который реализуется функцией Random . На самом деле генерируются псевдослучайные числа, но суть не в этом.

    Диапазон в Паскале тех самых случайных чисел от a до b задается формулой:

    var f: array[1..10] of integer; i:integer; begin randomize; for i:=1 to 10 do begin f[i]:=random(10); write(f[i],’ ‘); end; end.

    Для вещественных чисел в интервале [0,1):

    var x: real; . x := random(0.0,1.0);;

    var (a, b, c) := Random3(10.0, 20.0); // диапазон [10, 20) write(a:0:2,’ ‘,b:0:2,’ ‘, c:0:2) // 14.73 18.63 19.72

    или с дополнительными параметрами (диапазон [5;15]):

    [Название файла: taskArray1.pas ]

    Числа Фибоначчи в Паскале

    Наиболее распространенным примером работы с массивом является вывод ряда чисел Фибоначчи в Паскаль. Рассмотрим его.

    Получили формулу элементов ряда.

    var i:integer; f:array[0..19]of integer; begin f[0]:=1; f[1]:=1; for i:=2 to 19 do begin f[i]:=f[i-1]+f[i-2]; writeln(f[i]) end; end.

    На данном примере, становится понятен принцип работы с числовыми рядами. Обычно, для вывода числового ряда находится формула определения каждого элемента данного ряда. Так, в случае с числами Фибоначчи, эта формула-правило выглядит как f[i]:=f[i-1]+f[i-2] . Поэтому ее необходимо использовать в цикле for при формировании элементов массива.

    [Название файла: taskArray2.pas ]

    Максимальный (минимальный) элемент массива

    Поиск максимального элемента по его индексу:

    // … var (min, minind) := (a[0], 0); for var i:=1 to a.Length-1 do if a[i]

    [Название файла: taskArray_min.pas ]

    [Название файла: taskArray4.pas ]

    [Название файла: taskArray5.pas ]

    [Название файла: taskArray6.pas ]

    [Название файла: taskArray7.pas ]

    Поиск в массиве

    Рассмотрим сложный пример работы с одномерными массивами:

    Для решения поставленной задачи понадобится оператор break — выход из цикла.
    Решение Вариант 1. Цикл for:

    var f: array[1..10] of integer; flag:boolean; i,c:integer; begin randomize; for i:=1 to 10 do begin f[i]:=random(10); write(f[i],’ ‘); end; flag:=false; writeln(‘введите образец’); readln(c); for i:=1 to 10 do if f[i]=c then begin writeln(‘найден’); flag:=true; break; end; if flag=false then writeln(‘не найден’); end.

    begin var a := new integer[10]; a := arrRandomInteger(5,0,5); //[1,3,5,4,5] print(a.IndexOf(3)) // 1 end.

    или метод a.Contains(x) наравне с x in a :

    begin var a := new integer[10]; a := arrRandomInteger(5,0,5); //[1,3,5,4,5] print(a.Contains(3)); // True print(3 in a)// True end.

    Рассмотрим эффективное решение:

    Задача: найти в массиве элемент, равный X , или установить, что его нет.

    • начать с 1-го элемента ( i:=1 );
    • если очередной элемент ( A[i] ) равен X , то закончить поиск иначе перейти к следующему элементу.

    решение на Паскале Вариант 2. Цикл While:

    Предлагаем посмотреть подробный видео разбор поиска элемента в массиве (эффективный алгоритм):

    [Название файла: taskArray8.pas ]

    Циклический сдвиг

    // … var v := a[0]; for var i:=0 to a.Length-2 do a[i] := a[i+1]; a[a.Length-1] := v;

    // … var v := a[a.Length-1]; for var i:=a.Length-1 downto 1 do a[i] := a[i-1]; a[0] := v;

    [Название файла: taskArray9.pas ]

    Перестановка элементов в массиве

    Рассмотрим, как происходит перестановка или реверс массива.

    begin var a: array of integer := (1,3,5,7); var n := a.Length; for var i:=0 to n div 2 — 1 do Swap(a[i],a[n-i-1]); End.

    Решение 2 (стандартная процедура Reverse() ):

    begin var a:=new integer[10]; a:=arrRandomInteger(10); print(a);// [41,81,84,63,12,26,88,25,36,72] Reverse(a); print(a) //[72,36,25,88,26,12,63,84,81,41] end.

    [Название файла: taskArray10.pas ]

    Выбор элементов и сохранение в другой массив


    Вывод массива B:

    writeln(‘Выбранные элементы’); for i:=1 to count-1 do write(B[i], ‘ ‘)

    // . for var i := 0 to a.length — 1 do if a[i]

    [Название файла: taskArray11.pas ]

    Сортировка элементов массива

    • В таком типе сортировок массив представляется в виде воды, маленькие элементы — пузырьки в воде, которые всплывают наверх (самые легкие).
    • При первой итерации цикла элементы массива попарно сравниваются между собой:предпоследний с последним, пред предпоследний с предпоследним и т.д. Если предшествующий элемент оказывается больше последующего, то производится их обмен.
    • При второй итерации цикла нет надобности сравнивать последний элемент с предпоследним. Последний элемент уже стоит на своем месте, он самый большой. Значит, число сравнений будет на одно меньше. То же самое касается каждой последующей итерации.

    for i:=1 to N-1 do begin for j:=N-1 downto i do if A[j] > A[j+1] then begin с := A[j]; A[j] := A[j+1]; A[j+1] := с; end; end;

    for var i := 0 to arr.High — 1 do for var j := arr.High — 1 downto i do if arr[j] > arr[j + 1] then Swap(arr[j], arr[j + 1]);

    [Название файла: taskArray12.pas ]

    • в массиве ищется минимальный элемент и ставится на первое место (меняется местами с A[1]);
    • среди оставшихся элементов также производится поиск минимального, который ставится на второе место (меняется местами с A[2]) и т.д.

    for i := 1 to N-1 do begin min:= i ; for j:= i+1 to N do if A[j] i then begin c:=A[i]; A[i]:=A[min]; A[min]:=c; end; end;

    for var i := 0 to a.High-1 do begin var (min,imin) := (a[i],i); for var j := i + 1 to a.High do if a[j] [Название файла: taskArray13.pas ]

      Выбирается и запоминается средний элемент массива (присвоим X):

  • Инициализируем две переменные (будущие индексы массива): L:=1, R:=N (N — количество элементов).
  • Увеличиваем L и ищем первый элемент A[L], который больше либо равен X (в итоге он должен находиться справа).
  • Уменьшаем R и ищем элемент A[R], который меньше либо равен X (в итоге он должен находиться слева).
  • Смотрим, если L X do R:= R — 1; if L [Название файла: taskArray14.pas ]

    Источник статьи: http://labs-org.ru/pascal-5/

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Книжные новинки
    Копилка
    Рабочие программы
    Проекты MS Office
    Презентации
    Открытые уроки
    Экзаменационные билеты
    Элективные курсы
    Бесплатный soft
    Инструкции по ТБ
    Подготовка к олимпиадам по информатике
    Методика подготовки
    «Золотые» алгоритмы
    Простые задачи для начинающих
    Олимпиадные задачи с решениями
    Книги
    Среда программирования
    Обучение программированию на С++
    Справочник по языку Pascal
    Обучение
    Подготовка к ЕГЭ
    Создание сайтов
    Уроки FrontPage
    Уроки Word 2003
    Создание игр на Delphi
    Печатаем вслепую