Операции умножения и сложения в Pascal.

В данном уроке мы рассмотрим операции умножения и сложения в Pascal. Умножение в Pascal обозначается знаком «*», а сложение - знаком «+».

Div, Mod, сложение, вычитание в Pascal.

Помимо операций умножения и сложения, над целочисленными переменными производятся операции Div (операция целочисленного деления), Mod (вычисление остатка от целочисленного деления), операция вычитания «-».

Функции LENGTH и CONCAT.

Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. ...

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

Многомерные массивы.

Индексы имеют еще одно свойство — чем больше объем массива, тем менее эффективна с ним работа, поэтому часто используют массивы массивов, то есть с двумя, тремя и более индексами для идентификации ...

Тип данных Char.

Тип CHAR (литерный, символьный). Этот тип задает конечное упорядоченное множество символов (литер), допускаемое в конкретной реализации языка.

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

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




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 ();
 
   ГлавнаяПаскальМассивы в ПаскальRandomize и Random в Pascal.