Процедуры Dec и Inc в Pascal.

При работе с целыми числами используются процедуры DEC и INC. Процедура Dec уменьшает число на определенное значение, а процедура Inc увеличивает число на определенное значение.

Ветвления в Pascal.

Ветвления в Паскаль позволяют выполнять действия не поочередно, как мы делали в предыдущих программах, а в зависимости от каких - либо условий. Для этого в языке программирования Pascal предусмотрены различные условные операторы. В данном уроке мы ...

Строковые константы в Pascal.

В качестве значения строковой константы может выступать любая последовательность символов. Эта последовательность заключается в апострофы. Строковая константа отличается от символьной константы тем, что здесь в качестве значения константы можно ...

Циклы и массивы

Тип данных Boolean.

Тип BOOLEAN (булевский, логический). Логический тип в языке Паскаль задается как перечисляемый тип, содержащий всего два значения, которые имеют идентификаторы FALSE (ложь) и TRUE (истина).

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

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

Напишем программу, которая вычисляем максимальный элемент в массиве.

 Нахождение максимального элемента массива.




program massiv5;
uses crt;
const N=10;
type x=array [1..N] of integer;
var a:x;
i:integer;
max:integer;
imax:integer;
begin
clrscr;
randomize;
for i:=1 to N do
begin
a[i]:= -50+random(101);
write (A[i]:5)
end;
writeln;
imax:=1;
max:=A[1];
for i:=2 to N do
if max<a[i] then
begin
max:=a[i];
imax:=i
end;
writeln (‘Максимальный элемент в массиве=’,max:5);
writeln (‘Его индекс=’,imax:5);
readln
end.



В строке №7 записываем переменную для хранения величины максимального элемента.

В строке №8 записываем переменную для хранения индекса максимального элемента.

В строке №11 мы включаем функцию Randomize. Эта функция позволяет генерировать случайные числа в программе. В данном случае нам необходимо каждому элементу массива [1..N] (всего 10 элементов) присвоить какое-нибудь значение. В программе «massiv3» значения для всех элементов массива мы вводили с клавиатуры. В этой задаче мы ничего вводить не будем. Функция Randomize сама создаст значения для каждого элемента массива. В массиве у нас 10 элементов ([1..N], const N=10), соответственно будет сгенерировано 10 случайных чисел.

В строке №12 включаем цикл. Переменная «I» будет изменяться в цикле от 1 до «N»

В строке №14 очередному элементу массива мы присваиваем случайное число, которое лежит в диапазоне от – 50 до + 50. (Сначала пишется минимальное число – 50, затем знак +, затем слово RANDOM, затем в скобках указывается общее количество возможных чисел в диапазоне; в диапазоне от – 50 до + 50 получается 100 чисел + число  0, всего 101)
Строка №15. Если мы запустим программу на данном этапе, у нас выведется на экран 10 различных чисел со значением от – 50 до + 50.

В строке №18 в переменную для хранения индекса (номера)  максимального элемента мы записали число 1, т.е. будем считать, что первый элемент массива – максимальный.

В строке №19 в переменную для хранения величины максимального элемента записываем значение первого элемента массива (например, если первое сгенерированное число будет 13, то его и будем считать максимальным).

В строке №20 задаем цикл. В него мы не включаем 1-ый элемент. А затем, в строке №21 мы проверяем условие. Мы сравниваем все значения элементов  массива (т.е. все сгенерированные числа) начиная со 2-го и до 10-го с  1 - ым числом. И если очередное число в массиве больше чем 1-ое число, то в переменную для хранения максимального числа записываем это очередное число (строка  №23), а в переменную для хранения индекса максимального числа записываем индекс этого очередного числа. После выполнения цикла в переменной max должно остаться максимальное число, а в переменной «imax» должен остаться номер этого числа.

maksimaljnihyj ehlement massiva

maksimaljnihyj ehlement massiva.

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


Если в массиве несколько маскимальных элементов и нужно вывести на экран индексы всех этих элементов, то программа будет выглядет так:





program massiv5;
uses crt;
const N=10;
type x=array [1..N] of integer;
var a:x;
i:integer;
max:integer;
imax:integer;
begin
clrscr;
randomize;
for i:=1 to N do
begin
a[i]:= -5+random(3);
write (A[i]:5)
end;
writeln;
imax:=1;
max:=A[1];
for i:=2 to N do
if max<a[i] then
begin
max:=a[i];
imax:=i;
end;
writeln('Максимальный элемент в массиве=',max);
write('Его индекс ');
for i:=1 to N do
if max=a[i] then
begin
write (i,', ');
end;
readln
end.




maxelemmas

maxelemmas.


Предыдущая статья : Randomize и Random в Pascal.

Оглавление : Уроки Паскаль.

Следующая статья : Вычисление суммы положительных элементов массива.


Комментарии  

 
+3 # Юрий 23.03.2012 16:40
Здравствуйте! А почему в окне программы после знаков равенства во фразах "Максимальный элемент в массиве=" и "Его индекс=" такое большое расстояние до чисел?Это потому, что для чисел в этих местах отведено по 5 знакомест и заполняются они с конца?
Ответить
 
 
+3 # Administrator 23.03.2012 17:11
Да, совершенно верно. Хотя для переменных целого типа не обязательно указывать формат вывода.
Ответить
 
 
0 # Юрий 23.03.2012 17:56
А сколько знакомест отводит компилятор для переменной целого типа по умолчанию? Сначала я подумал, что резерв места будет равен размеру, который занимает тип данных в памяти компьютера, но... для Longint и Cardinal, например - это 4 байта. Многовато места получается... Может быть я невнимательно прочёл материал предыдущих уроков?
Ответить
 
 
+6 # Administrator 25.03.2012 07:57
Для каждой переменной Вы указываете тип данных в разделе описания переменных. Для целых чисел это может быть INTEGER, BYTE, LONGINT и др. Каждый из этих типов занимает от 1 до 4-х байт в памяти. Какой тип указать для переменной, должен выбирать сам программист. Если Вы уверены, что в переменную во время выполнения программы не попадет число менее 0 и более 255, то для данной переменной целесообразно указать тип BYTE. Например, в примере из этого урока, переменная "i" может принимать значения только от 1 до 10, поэтому для экономии памяти можно указать для нее тип BYTE. Вообще, можно в переменную большого типа записать маленькое число (например, число 7 в переменную LONGINT). Однако для числа 7 нужно всего лишь 3 бита в памяти (7d=111b). Но так как LONGINT занимает 32 бита, остальные 29 битов будут тоже заняты. Просто на их месте запишутся нули.
Ответить
 
 
+13 # Иван 04.05.2012 19:04
Спасибо Вам большое за такой замечательный сайт! Все очень четко, просто, а главное понятно объяснено. Это огромная помощь в подготовке к экзаменам. Вы большие молодцы! :-)
Ответить
 
 
+4 # Виталий 11.05.2012 22:56
Доброго времени суток.
А как быть, если есть несколько максимальных чисел? Как сделать так, чтобы все максимальные индексы выводились?
Ответить
 
 
+5 # Administrator 12.05.2012 09:32
После того как найден максимальный элемент массива, сравниваем его со всеми элементами массива, и если находим такой же элемент, выводим его индекс на экран.
Пример дописал в конце этой статьи.
Ответить
 
 
0 # Виталий 12.05.2012 11:46
Спасибо. Не ожидал, что так быстро получу ответ!
Ответить
 
 
-1 # Shige 06.06.2012 12:40
Здравствуйте. Хотелось бы задать пару вопросов. Вот мы нашли максимальный и минимальный элементы.
Теперь надоп оделить максимальный элемент на минимальный и вывести результат.Не подскажите как это записать в паскале?
Ответить
 
 
-2 # Administrator 07.06.2012 05:25
Вопрос не понял, уточните ,пожалуйста.
Ответить
 
 
-2 # нуна 12.02.2013 14:57
объясните пожалуйста что значит случайные числа?????????? ??????????????? ????
Ответить
 
 
-1 # Петросян 16.02.2013 13:00
randomize врубает мини Дискорда, живущего в каждом паскале
Ну а если серьезно, random("число") сгенерирует несколько случайных чисел от нуля до "число-1" (количество этих чисел зависит от ,к примеру, количества возможных чисел "ячеек" массива). После каждого перезапуска программы будут генерироваться разные числа. Randomize(обяза телен) активирует возможность использования функции random.
Ответить
 
 
-1 # M*** 28.02.2015 19:30
Ввести массивы А и В. В массив С скопировать те элементы массива А, которые встречаются в массиве В по крайней мере 2 раза, и те элементы массива В, которые встречаются в массиве А ровно 1 раз. Из массива А удалить все элементы стоящие левее максимального элемента. Массивы А, В и С отсортировать по убыванию, используя сортировку методом пузырька.
Ответить
 
 
0 # Nastya 12.06.2016 14:20
Помогите пожалуйста. Задан массивы действительных чисел а1,а2,…,а20.Сдв инуть циклическим сдвигом все его элементы так, чтобы максимальный элемент стоял на первом месте.на с++
Ответить
 
 
-2 # Сайнаа 12.11.2016 00:26
Вычислить произведение положительных элементов двумерного массива
Ответить
 
 
0 # Serg 06.10.2021 11:19
:-) ;-)
Ответить
 
 
0 # Serg 06.10.2021 11:21
const int n = 20;
int[] a = new int[n];
Random r = new Random();
for (int i = 0; i < a.Length; i++)
a = r.Next(-100, 100);
Console.WriteLi ne("Исходный массив:");
for (int i = 0; i < n; ++i)
Console.Write(" \t" + a);
Console.WriteLi ne();
int p = 1;
for (int i = 0; i < a.Length; i++)
{
if (a < 0)
{
p *= a;
}
}
Console.WriteLi ne("Произведени е положительных элементов массива: " + p);
Console.ReadKey ();
Ответить
 
 
0 # Kaitlyn 04.06.2025 06:48
Hi there just wanted to give you a quick heads up.
The text in your article seem to be running off the screen in Opera.

I'm not sure if this is a format issue or something to do with internet browser compatibility
but I figured I'd post to let you know. The design look great though!
Hope you get the issue resolved soon. Many thanks

Feel free to surf to my page; Paito
Sydney Lotto: https://catdoll.shop/
Ответить
 
 
0 # Tyler 08.08.2025 22:18
Good day! I just want to offer you a huge thumbs up for the great information you have right here on this post.
I will be coming back to your blog for more soon.

My homepage - Data SGP 2025: http://159.223.40.145/
Ответить
 
 
0 # Sam 12.09.2025 03:58
Trending Questions Is HTP addictive? What happens if you combine Strattera and
Adderall? Is white round pill gpi a325? How many
25mg Xanax equals 2mg Xanax? Can you enlist in the french
foreign legion with a marijuana charge?

my page; lisinopril 28 mg 81.7sviagra 40 81.7s: https://casino.zonder-cruks.com/
Ответить
 
 
0 # Geneva 12.09.2025 05:28
You can use viagra 60 mg cost: https://yeovilhospital.co.uk if you have herpes.
Ответить
 
 
0 # Yong 12.09.2025 05:54
using Viagra in regural base is not good.


Feel free to surf to my homepage ... penis enlargement surgery cost mumbai: https://www.gambling.com/uk/online-casinos
Ответить
 
 
0 # Glinda 12.09.2025 14:21
'V' Is for viagra used by female: https://yeovilhospital.co.uk.
The Remixes was created in 2007.
Ответить
 
 
0 # Blanche 12.09.2025 15:15
Trending Questions Is there a holistic way to lower blood pressure?

Blood pressure measures the smount of pressure on the wall of?

Are digital blood pressure monitors accurate? What is the medical term
meaning idiopathic high blood pressure?

Visit my web blog; penis enlargement san diego: https://yeovilhospital.co.uk
Ответить
 
 
0 # Tabitha 12.09.2025 23:42
Trending Questions What are the duties of an health prefect?
Who does leprosy affect the most? Benefits of
being a blood donor? Why is it important to include nutrient-dense foods in your daily eating?


Feel free to surf to my blog: doxycycline 250: https://yeovilhospital.co.uk/uk-gb/
Ответить
 
 
0 # Monroe 27.09.2025 06:26
No, Viagra is not banned, but it is available by prescription only.



Also visit my blog ... where can you buy doxycycline 81.7sviagra
uses 81.7s: https://casino.zonder-cruks.com/
Ответить
 
 
0 # Monroe 27.09.2025 06:27
No, Viagra is not banned, but it is available by prescription only.



Also visit my blog ... where can you buy doxycycline 81.7sviagra
uses 81.7s: https://casino.zonder-cruks.com/
Ответить
 
 
0 # Dorris 04.10.2025 22:53
It is very stressful and embarrassed if we have a problem about erectile dysfunction.

Stop by my page - viagra pill: https://yeovilhospital.co.uk/gb/
Ответить
 
 
0 # Lanora 09.10.2025 08:44
It is generally not recommended to take ephedrine and
Viagra together without consulting a healthcare professional.


my blog: penis enlargement surgery cost near ohio: https://classonline.org.uk/
Ответить
 
 
0 # Mikayla 09.10.2025 08:50
It is generally not recommended to take ephedrine and Viagra
together without consulting a healthcare professional.


my web site ... potensmedel sildenafil: https://www.ktponline.org.uk/
Ответить
 
 
0 # Rebecca 11.10.2025 04:28
viagra cost 81.7spenis enlargement sex pills
whole sale 81.7s: https://casino.zonder-cruks.com/ leaves the body so yes.
Ответить
 

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

   ГлавнаяПаскальМассивы в ПаскальНахождение максимального элемента массива.