Функция min в паскале

лабораторные работы и задачи по программированию и информатике, егэ по информатике

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

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

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

var A: integer; begin A := 5; write(A > 0); <Будет выведено True>end.

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

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

var A: integer; b: boolean; begin A := 5; b:=A > 0; write(b); <Будет выведено True>end.

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

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

Рассмотрим пример с использованием логической операции 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.

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

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

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_n<>d_n) and (d_n<>e_n) and (e_n<>s_n) then flag:=true; writeln(flag); end.

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

Читайте также:  1С веб сервис передача параметров

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

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

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

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

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

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.

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

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

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

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

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

Minmax1 – находим минимальный и максимальный элементы из набора.

Minmax2 – находим минимальную площадь прямоугольника из данного набора.

Читайте также:  1С как получить путь к файлу

Minmax3 – находим минимальный периметр прямоугольника из данного набора.

Minmax4 – находим номер минимального элемента из данного набора.

Minmax5 – номер детали максимальной плотности и её величину.

Поиск максимума и минимума (вариант 1 – максимальное и минимальное значения):

CONST
kol_strok=5;
kol_stolbcov=4;
VAR
A:array[1..kol_strok,1..kol_stolbcov] of Real;
i,j:integer;
max,min:real;
BEGIN
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
Read(A[i,j]);
max:=A[1,1];
min:=A[1,1];
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
begin
if A[i,j]>max then max:=A[i,j];
if min>A[i,j] then min:=A[i,j];
end;
Writeln(‘Максимальный элемент = ‘,max:4:2);
Writeln(‘Минимальный элемент = ‘,min:4:2);
END.

max:=A[1,1]; – начальное значение максимума, предполагаем, что максимальный элемент стоит на пересечении 1-ой строки и 1-го столбца;
min:=A[1,1]; – начальное значение минимума, предполагаем, что минимальный элемент стоит на пересечении 1-ой строки и 1-го столбца;
for i:=1 to kol_strok do – перечисляем все строки
for j:=1 to kol_stolbcov do – перечисляем все столбцы
if A[i,j]>max then max:=A[i,j]; – если текущий элемент матрицы А больше значения переменной max, то переменной max присваиваем значение этого элемента
if min>A[i,j] then min:=A[i,j]; – если значение переменной min больше текущего элемента матрицы А, то переменной min присваиваем значение этого элемента

Поиск максимума и минимума (вариант 2 – позиции максимального и минимального элементов):

CONST
kol_strok=5;
kol_stolbcov=4;
VAR
A:array[1..kol_strok,1..kol_stolbcov] of Real;
i,j:integer;
max_stroka,max_stolbec,min_stroka,min_stolbec:integer;
BEGIN
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
Read(A[i,j]);
max_stroka:=1;
max_stolbec:=1;
min_stroka:=1;
min_stolbec:=1;
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
begin
if A[i,j]>A[max_stroka,max_stolbec] then
begin
max_stroka:=i;
max_stolbec:=j;
end;
if A[min_stroka,min_stolbec]>A[i,j] then
begin
min_stroka:=i;
min_stolbec:=j;
end;
end;
Writeln(‘Максимальный элемент = ‘,A[max_stroka,max_stolbec]:4:2);
Writeln(‘Минимальный элемент = ‘,A[min_stroka,min_stolbec]:4:2);
END.

Читайте также:  Срок службы впитывающей прокладки истек epson

max_stroka:=1; – предположим, что максимальный элемент находится в 1-ой строке
max_stolbec:=1; – предположим, что максимальный элемент находится в 1-ом столбце
min_stroka:=1; – предположим, что минимальный элемент находится в 1-ой строке
min_stolbec:=1; – предположим, что минимальный элемент находится в 1-ом столбце
if A[i,j]>A[max_stroka,max_stolbec] then – если текущий элемент матрицы А больше элемента находящегося на пересечении max_stroka и max_stolbec, то сохраняем его позицию в наших переменных
if A[min_stroka,min_stolbec]>A[i,j] then – если элемент находящийся на пересечении min_stroka и min_stolbe больше текущего элемента матрицы А, то сохраняем позицию текущего элемента в наших переменных

Оцените статью
Добавить комментарий

Adblock detector