- Найти максимальное число из трех
- Пример кода Pascal
- Пример кода Язык Си
- Пример кода Python
- Пример кода КуМир
- Пример кода Basic-256
- Поиск максимального значения в списке на Python
- Список в Python
- №1 Нахождение максимального значения с помощью функции max()
- Pascal: Занятие № 4. Логический тип данных Boolean, поиск максимума и минимума в Паскале
- Логический тип данных Boolean в Паскале
- Минимальное и максимальное число в Паскале.
Найти максимальное число из трех
Вводятся три целых числа. Определить какое из них наибольшее.
Пусть a, b, c – переменные, которым присваиваются введенные числа, а переменная m в конечном итоге должна будет содержать значение наибольшей переменной. Тогда алгоритм программы сведется к следующему:
- Сначала предположим, что переменная a содержит наибольшее значение. Присвоим его переменной m .
- Если текущее значение m меньше, чем у b , то следует присвоить m значение b . Если это не так, то не изменять значение m .
- Если текущее значение m меньше, чем у c , то присвоить m значение c . Иначе ничего не делать.
Данную задачу можно решить и без использования четвертой переменной, однако программа будет логически сложнее:
- Если a больше b , то проверить больше ли a , чем c . Если это так, то максимальное число содержит переменная a . Если a больше b , но при этом меньше c , то максимальным является значение c .
- Иначе (когда a меньше b ) сравнить значения b и c . Большее из них и есть максимальное.
Пример кода Pascal
// 1-й способ:
var
a,b,c,max: integer;
begin
readln(a,b,c);
max := a;
if max < b then max := b;
if max < c then max := c;
writeln(max);
end.
// 2-й способ:
var
a,b,c: integer;
begin
readln(a,b,c);
if a > b then
if a > c then writeln(a)
else writeln(c)
else
if b > c then writeln(b)
else writeln(c);
end.
Пример кода Язык Си
// 1-й вариант:
#include
main() int a,b,c,m;
scanf("%d%d%d",&a,&b,&c);
m = a;
if (m < b) m = b;
if (m < c) m = c;
printf("%d\n", m);
>
// 2-й вариант:
#include
main() int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if (a > b)
if (a > c) printf("%d\n", a);
else printf("%d\n", c);
else
if (b > c) printf("%d\n", b);
else printf("%d\n", c);
>
Пример кода Python
# 1-й вариант:
a = int(input())
b = int(input())
c = int(input())
m = a
if m < b:
m = b
if m < c:
m = c
print(m)
# 2-й вариант:
a = int(input())
b = int(input())
c = int(input())
if a > b:
if a > c:
print(a)
else:
print(c)
else:
if b > c:
print(b)
else:
print(c)
Пример кода КуМир
| 1-й вариант:
алг максимум из трех
нач
цел a, b, c, m
ввод a, b, c
m := a
если b > m то m := b все
если c > m то m := c все
вывод m
кон
| 2-й вариант:
алг максимум из трех
нач
цел a, b, c
ввод a, b, c
если a > b то
если a > c то
вывод a
иначе
вывод c
все
иначе
если b > c то
вывод b
иначе
вывод c
все
все
кон
Пример кода Basic-256
# 1-й вариант:
input a
input b
input c
max = a
if max < b then max = b
if max < c then max = c
print max
# 2-й вариант:
input a
input b
input c
if a > b then
if a > c then
print a
else
print c
endif
else
if b > c then
print b
else
print c
endif
endif
Поиск максимального значения в списке на Python
В этой статье мы научимся находить максимальное значение в списке на Python. Для всестороннего понимания вопроса мы рассмотрим использование некоторых встроенных функций, простые подходы, а также небольшие реализации известных алгоритмов.
Сначала давайте вкратце рассмотрим, что такое список в Python и как найти в нем максимальное значение или просто наибольшее число.
Список в Python
В Python есть встроенный тип данных под названием список (list). По своей сути он сильно напоминает массив. Но в отличие от последнего данные внутри списка могут быть любого типа (необязательно одного): он может содержать целые числа, строки или значения с плавающей точкой, или даже другие списки.
Хранимые в списке данные определяются как разделенные запятыми значения, заключенные в квадратные скобки. Списки можно определять, используя любое имя переменной, а затем присваивая ей различные значения в квадратных скобках. Он является упорядоченным, изменяемым и допускает дублирование значений. Например:
list1 = ["Виктор", "Артем", "Роман"] list2 = [16, 78, 32, 67] list3 = ["яблоко", "манго", 16, "вишня", 3.4]Далее мы рассмотрим возможные варианты кода на Python, реализующего поиск наибольшего элемента в списке, состоящем из сравниваемых элементов. В наших примерах будут использоваться следующие методы/функции:
- Встроенная функция max()
- Метод грубой силы (перебора)
- Функция reduce()
- Алгоритм Heap Queue (очередь с приоритетом)
- Функция sort()
- Функция sorted()
- Метод хвостовой рекурсии
№1 Нахождение максимального значения с помощью функции max()
Это самый простой и понятный подход к поиску наибольшего элемента. Функция Python max() возвращает самый большой элемент итерабельного объекта. Ее также можно использовать для поиска максимального значения между двумя или более параметрами.
В приведенном ниже примере список передается функции max в качестве аргумента.
Pascal: Занятие № 4. Логический тип данных Boolean, поиск максимума и минимума в Паскале
Сайт labs-org.ru предоставляет лабораторные задания по теме для закрепления теоретического материала и получения практических навыков программирования на Паскале. Краткие теоретические сведения позволят получить необходимый для этого минимум знаний. Решенные наглядные примеры и лабораторные задания изложены по мере увеличения их сложности, что позволит с легкостью изучить материал с нуля. Желаем удачи!
Логический тип данных Boolean в Паскале
Мы уже научились писать программы, основанные на линейных алгоритмах, в Паскале. И даже уже составляем нелинейные алгоритмы — с ветвлением — в которых используются логические выражения, которые принимают значения true или false .
Значения логического типа:
TRUE
FALSE
В примере ниже, на экран выводится результат логического выражения:
var A: integer; begin A := 5; write(A > 0); end.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: 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.var a:boolean; begin a:=true; if a=true then writeln ('истина') else writeln('ложь'); end.
Для создания сложных условий используются специальные логические операции: and , or , not и xor .
Задача Boolean 1. Дано целое положительное число. Проверить истинность высказывания: «оно является четным»
[Название файла: task_bool1.pas ]Рассмотрим пример с использованием логической операции XOR :
Пример: Запросить два целых: X, Y. Проверить истинность высказывания: «Только одно из чисел X и Y является нечетным»
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.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.
Рассмотрим еще одно решение задачи в Паскале с использованием логической переменной:
Задача Boolean 2. Даны три целых числа: A, B, C. Проверить истинность высказывания: «B находится между числами A и C».
[Название файла: task_bool2.pas ]Рассмотрим решение более сложной задачи с переменной логического типа:
Пример: Дано трехзначное число. Проверить истинность высказывания: «Все цифры данного числа различны».
1 2 3 4 5 6 7 8 9 10 11 12 13const 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.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 — единицы.
Задача Boolean 3. Дано целое N > 0 . С помощью операций деления нацело и взятия остатка от деления определить, имеется ли в записи числа N цифра «2». Если имеется, то вывести TRUE , если нет — вывести FALSE .
[Название файла: task_bool3.pas ]Задача Boolean 4. Дано целое положительное. Проверить истинность высказывания: «Данное число является нечетным трехзначным».
Минимальное и максимальное число в Паскале.
[Название файла: task_bool4.pas ]
При организации поиска минимального или максимального числа среди ряда чисел всегда на помощь приходит старенький «бабушкин» алгоритм:
- Представим ситуацию, что мы жарим пирожки, и уже нажарили целую большую горку; теперь надо выбрать из них самый большой, т.е. в нашем случае максимальный.
- Берем верхний пирожок, т.е. первый, и говорим, что он пока самый большой и откладываем его в сторону.
- Затем берем второй и сравниваем с самым большим, если этот второй пирожок оказывается больше — откладываем его на место «бывшего самого большого» и говорим, что теперь он самый большой.
- Берем следующий и повторяем действия. Так осуществляем данную процедуру со всеми пирожками.
Иногда в качестве первоначального максимума назначается самое малое возможное число (в зависимости от контекста задачи). А в качестве минимума — напротив, самое большое возможное число. Например, если сказано, что необходимо найти максимальное / минимальное среди положительных чисел, меньших 1000, то:
max:=integer.MinValue;; // минимальное среди типа Integer min:=integer.MaxValue;; // максимальное среди типа Integer
print(max(2,8)); // 8 print(min(2,8)); // 2
print(max(2,8)); // 8 print(min(2,8)); // 2
Рассмотрим теперь решение задачи на Паскале нахождения максимального числа:
1 2 3 4 5 6 7 8 9 10 11 12 13
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.
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.
1 2 3 4 5 6 7 8 9 10 11 12
begin // первое введенное число //сразу определяем как максимальное: var maximum:=readInteger(); for var i:=2 to 10 do begin var chislo:=readInteger(); // используем стандартную функцию max(): maximum := max(chislo,maximum); end; writeln(maximum) 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.
Аналогично осуществляется поиск минимального из чисел.
Для лучшего понимания темы поиска максимального или минимального значения предлагаем посмотреть видео урок:
Задача Max 1. В танцевальном клубе участвуют 10 представительниц женского пола. Определите, может ли самая старшая из них быть матерью самой младшей (в таком случае разница в возрасте может составлять не менее 17 лет).
[Название файла: task_max1.pas ]Задача Max 2. Найти минимальное и максимальное из 10 введенных чисел и вывести сумму их порядковых номеров.
[Название файла: task_max2.pas ]Задача Max 3. Средняя продолжительность жизни лабораторной мыши – 10 лет. Найдите максимальный показатель продолжительности жизни у пяти белых мышей и у пяти мышей-альбиносов. У каких мышей показатель уровня жизни выше?
[Название файла: task_max3.pas ]Потренируйтесь в решении задач по теме, щелкнув по пиктограмме: