Программирование найти максимальное число

Найти максимальное число из трех

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

Пусть a, b, c – переменные, которым присваиваются введенные числа, а переменная m в конечном итоге должна будет содержать значение наибольшей переменной. Тогда алгоритм программы сведется к следующему:

  1. Сначала предположим, что переменная a содержит наибольшее значение. Присвоим его переменной m .
  2. Если текущее значение m меньше, чем у b , то следует присвоить m значение b . Если это не так, то не изменять значение m .
  3. Если текущее значение m меньше, чем у c , то присвоить m значение c . Иначе ничего не делать.

Данную задачу можно решить и без использования четвертой переменной, однако программа будет логически сложнее:

  1. Если a больше b , то проверить больше ли a , чем c . Если это так, то максимальное число содержит переменная a . Если a больше b , но при этом меньше c , то максимальным является значение c .
  2. Иначе (когда 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

Источник

Читайте также:  Программирование java в anylogic

Поиск максимального значения в списке на Python

В этой статье мы научимся находить максимальное значение в списке на Python. Для всестороннего понимания вопроса мы рассмотрим использование некоторых встроенных функций, простые подходы, а также небольшие реализации известных алгоритмов.

Сначала давайте вкратце рассмотрим, что такое список в Python и как найти в нем максимальное значение или просто наибольшее число.

Список в Python

В Python есть встроенный тип данных под названием список (list). По своей сути он сильно напоминает массив. Но в отличие от последнего данные внутри списка могут быть любого типа (необязательно одного): он может содержать целые числа, строки или значения с плавающей точкой, или даже другие списки.

Хранимые в списке данные определяются как разделенные запятыми значения, заключенные в квадратные скобки. Списки можно определять, используя любое имя переменной, а затем присваивая ей различные значения в квадратных скобках. Он является упорядоченным, изменяемым и допускает дублирование значений. Например:

 
list1 = ["Виктор", "Артем", "Роман"] list2 = [16, 78, 32, 67] list3 = ["яблоко", "манго", 16, "вишня", 3.4]

Далее мы рассмотрим возможные варианты кода на Python, реализующего поиск наибольшего элемента в списке, состоящем из сравниваемых элементов. В наших примерах будут использоваться следующие методы/функции:

  1. Встроенная функция max()
  2. Метод грубой силы (перебора)
  3. Функция reduce()
  4. Алгоритм Heap Queue (очередь с приоритетом)
  5. Функция sort()
  6. Функция sorted()
  7. Метод хвостовой рекурсии

№1 Нахождение максимального значения с помощью функции max()

Это самый простой и понятный подход к поиску наибольшего элемента. Функция Python max() возвращает самый большой элемент итерабельного объекта. Ее также можно использовать для поиска максимального значения между двумя или более параметрами.

В приведенном ниже примере список передается функции max в качестве аргумента.

Источник

Pascal: Занятие № 4. Логический тип данных Boolean, поиск максимума и минимума в Паскале

егэ разбор егэ разбор pascal уроки c уроки python уроки c++ уроки vb уроки lazarus уроки php уроки html уроки css уроки javascript уроки jquery и ajax уроки prolog уроки flash уроки

Сайт 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 13
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.

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 ]

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

Источник

Оцените статью