Тип данных String в Pascal.

Со строковыми переменными можно производить различные операции. Операция сцепления строк позволяет соеденить 2 строки между собой.

Использование program, begin…end, write, readln, Uses Crt, Clrscr.

В этом уроке мы напишем самую простую программу, состоящую всего из пяти строк. Эта программа будет выводить сообщение на экран. Для написания программы нам необходимо знать как работают операторы Write, Readln, а также понять для чего нужны ...

Функции Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi в Pascal.

Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr - квадрат ...

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

Циклы с параметром. Оператор FOR.

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

Индексы одномерного массива.

Существует класс задач, в которых индекс массива используется для формализации вычислительного процесса путем сведения исходных формул к конечным суммам и произведениям. Преобразованные таким образом ...

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

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




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 знакомест и заполняются они с конца?
Ответить
 
 
+2 # Administrator 23.03.2012 17:11
Да, совершенно верно. Хотя для переменных целого типа не обязательно указывать формат вывода.
Ответить
 
 
+1 # Юрий 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 битов будут тоже заняты. Просто на их месте запишутся нули.
Ответить
 
 
+14 # Иван 04.05.2012 19:04
Спасибо Вам большое за такой замечательный сайт! Все очень четко, просто, а главное понятно объяснено. Это огромная помощь в подготовке к экзаменам. Вы большие молодцы! :-)
Ответить
 
 
+4 # Виталий 11.05.2012 22:56
Доброго времени суток.
А как быть, если есть несколько максимальных чисел? Как сделать так, чтобы все максимальные индексы выводились?
Ответить
 
 
+6 # Administrator 12.05.2012 09:32
После того как найден максимальный элемент массива, сравниваем его со всеми элементами массива, и если находим такой же элемент, выводим его индекс на экран.
Пример дописал в конце этой статьи.
Ответить
 
 
+2 # Виталий 12.05.2012 11:46
Спасибо. Не ожидал, что так быстро получу ответ!
Ответить
 
 
-2 # Shige 06.06.2012 12:40
Здравствуйте. Хотелось бы задать пару вопросов. Вот мы нашли максимальный и минимальный элементы.
Теперь надоп оделить максимальный элемент на минимальный и вывести результат.Не подскажите как это записать в паскале?
Ответить
 
 
-3 # Administrator 07.06.2012 05:25
Вопрос не понял, уточните ,пожалуйста.
Ответить
 
 
-3 # нуна 12.02.2013 14:57
объясните пожалуйста что значит случайные числа?????????? ??????????????? ????
Ответить
 
 
0 # Петросян 16.02.2013 13:00
randomize врубает мини Дискорда, живущего в каждом паскале
Ну а если серьезно, random("число") сгенерирует несколько случайных чисел от нуля до "число-1" (количество этих чисел зависит от ,к примеру, количества возможных чисел "ячеек" массива). После каждого перезапуска программы будут генерироваться разные числа. Randomize(обяза телен) активирует возможность использования функции random.
Ответить
 
 
0 # M*** 28.02.2015 19:30
Ввести массивы А и В. В массив С скопировать те элементы массива А, которые встречаются в массиве В по крайней мере 2 раза, и те элементы массива В, которые встречаются в массиве А ровно 1 раз. Из массива А удалить все элементы стоящие левее максимального элемента. Массивы А, В и С отсортировать по убыванию, используя сортировку методом пузырька.
Ответить
 
 
0 # Nastya 12.06.2016 14:20
Помогите пожалуйста. Задан массивы действительных чисел а1,а2,…,а20.Сдв инуть циклическим сдвигом все его элементы так, чтобы максимальный элемент стоял на первом месте.на с++
Ответить
 
 
0 # Сайнаа 12.11.2016 00:26
Вычислить произведение положительных элементов двумерного массива
Ответить
 

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

Защитный код
Обновить

   ГлавнаяПаскальМассивы в Паскаль