ОГЭ по информатике. Задачи на паскаль. Нахождение МАКСИМАЛЬНОГО И МИНИМАЛЬНОГО элемента.
Напишите программу, которая в последовательности натуральных чисел определяет максимальное число. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – максимальное число.
Считаем сначала максимальным числом самое маленькое из возможных, т.е. ноль. Потом, перебираем все числа – если встретилось число большее, чем максимальное в данный момент, то оно и становится максимальным.
Напишите программу, которая в последовательности натуральных чисел определяет минимальное число. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – минимальное число.
Считаем сначала минимальным числом самое большое из возможных, т.е. 30000. Потом, перебираем все числа – если встретилось число меньшее, чем минимальное в данный момент, то оно и становится минимальным.
Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 7. В последовательности всегда имеется число, кратное 7. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Количество чисел не превышает 1000. Введённые числа не превышают 30 000.
Программа должна вывести одно число – максимальное число, кратное 7.
Считаем сначала максимальным числом самое маленькое из возможных, т.е. ноль. Потом, перебираем все числа – если встретилось число кратное 7 (остаток от деления на 7 равен нулю), И большее, чем максимальное в данный момент, то оно и становится максимальным.
Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 6. В последовательности всегда имеется число, оканчивающееся на 6. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Количество чисел не превышает 1000. Введённые числа не превышают 30 000.
Программа должна вывести одно число – максимальное число, оканчивающееся на 6.
В начале, максимальное число считается самым маленьким из всех возможных. Т.е. нулю. Затем перебираем числа в массиве. Если нам встретилось число, ОКАНЧИВАЮЩЕЕСЯ на 6 (Т.е. остаток от деления на 10 равен 6), И это число больше, чем наше максимальное в данный момент, то у нас становится новое максимальное – это число.
Источник статьи: http://code-enjoy.ru/oge_po_informatike_zadachi_na_pascal_nahozhdenie_maksimalnogo_i_minimalnogo_elementa/
Pascal: Занятие № 4. Логический тип данных Boolean, поиск максимума и минимума в Паскале
Логический тип данных Boolean в Паскале
Мы уже научились писать программы, основанные на линейных алгоритмах, в Паскале. И даже уже составляем нелинейные алгоритмы — с ветвлением — в которых используются логические выражения, которые принимают значения true или false .
В примере ниже, на экран выводится результат логического выражения:
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:boolean; begin a:=true; if a=true then writeln (‘истина’) else writeln(‘ложь’); end.
Для создания сложных условий используются специальные логические операции: and , or , not и xor .
[Название файла: task_bool1.pas ]
Рассмотрим пример с использованием логической операции 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.
Рассмотрим еще одно решение задачи в Паскале с использованием логической переменной:
[Название файла: task_bool2.pas ]
Рассмотрим решение более сложной задачи с переменной логического типа:
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_nd_n) and (d_ne_n) and (e_ns_n) then flag:=true; writeln(flag); end.
Здесь каждый разряд получается путем использования операций деления нацело и взятия остатка от деления: s_n — это цифра сотого разряда, d_n — цифра десятого разряда, e_n — единицы.
[Название файла: task_bool3.pas ]
Минимальное и максимальное число в Паскале.
[Название файла: task_bool4.pas ]
При организации поиска минимального или максимального числа среди ряда чисел всегда на помощь приходит старенький «бабушкин» алгоритм:
- Представим ситуацию, что мы жарим пирожки, и уже нажарили целую большую горку; теперь надо выбрать из них самый большой, т.е. в нашем случае максимальный.
- Берем верхний пирожок, т.е. первый, и говорим, что он пока самый большой и откладываем его в сторону.
- Затем берем второй и сравниваем с самым большим, если этот второй пирожок оказывается больше — откладываем его на место «бывшего самого большого» и говорим, что теперь он самый большой.
- Берем следующий и повторяем действия. Так осуществляем данную процедуру со всеми пирожками.
Иногда в качестве первоначального максимума назначается самое малое возможное число (в зависимости от контекста задачи). А в качестве минимума — напротив, самое большое возможное число. Например, если сказано, что необходимо найти максимальное / минимальное среди положительных чисел, меньших 1000, то:
max:=integer.MinValue;; // минимальное среди типа Integer min:=integer.MaxValue;; // максимальное среди типа Integer
print(max(2,8)); // 8 print(min(2,8)); // 2
Рассмотрим теперь решение задачи на Паскале нахождения максимального числа:
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.
begin // первое введенное число //сразу определяем как максимальное: var maximum:=readInteger(); for var i:=2 to 10 do begin var chislo:=readInteger(); // используем стандартную функцию max(): maximum := max(chislo,maximum); end; writeln(maximum) end.
Аналогично осуществляется поиск минимального из чисел.
Для лучшего понимания темы поиска максимального или минимального значения предлагаем посмотреть видео урок:
[Название файла: task_max1.pas ]
[Название файла: task_max2.pas ]
[Название файла: task_max3.pas ]
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:
Источник статьи: http://labs-org.ru/pascal-4/
Занятие 4. Pascal abc.net: Последовательности (начало)
Пример работы с последовательностью
Последовательности — это абстрактный набор данных, которые можно перебирать.
В отличие от других структур последовательности не хранятся в памяти (поэтому «абстрактный»), т.е. память используется только в конкретный момент времени, когда происходит перебор значений последовательности, и, как правило, нам необходим только 1 элемент (в единицу времени).
Последовательностью может быть, например, последовательность чисел:
арифметическая прогрессия: 1 3 5 7 9
геометрическая прогрессия: 1 2 4 8 16
Тип последовательности: Sequence of Real , Sequence of Integer
Наиболее близким типом данных к последовательности является массив.
Рассмотрим стандартный пример работы с числовым рядом, БЕЗ использования последовательности:
Без использования последовательности:
begin var s:=0.0; for var i:=1 to 10 do begin var x:=ReadReal; s+=x; end; print(s) end.
Данный стиль написания программы считается плохим, т.к. основной алгоритм смешивается с вводом ( ReadReal ).
Ввод данных необходимо отсоединить от основного алгоритма. Для этого используем последовательность:
// накапливаем последовательность, переменная q хранит ее var q:=ReadSeqReal(10); var s:=0.0; foreach var x in q do s+=x; print(s) end.
Теперь алгоритм находится отдельно от ввода, программа стала более модифицируема.
Остается оформить основной алгоритм в виде функции:
function Sum(q: sequence of real):real; begin var s:=0.0; foreach var x in q do s+=x; result:=s end; begin print(Sum(ReadSeqReal(10))) end.
Генерация и формирование последовательностей
Итак, мы рассмотрели, как сформировать последовательность через ввод с клавиатуры:
Теперь рассмотрим, как генерируются последовательности.
Генераторы последовательностей:
Range(a,b: integer) : sequence of integer
Range(a,b,step: integer) : sequence of integer
Range(c1,c2: char) : sequence of char
Partition(a,b: real; n: integer) : sequence of real
print(Partition(0.0, 6.0, 4)); // делим поровну на 4 части [0, 1.5, 3, 4.5, 6]
SeqRandomInteger(n: integer[; a,b: integer]) : sequence of integer;
var q:=SeqRandomInteger(5,10,20); print(q); // [12,18,16,14,16]
SeqRandomReal(n: integer[; a,b: real]) : sequence of real;
var q:=SeqRandomReal(3, 1.0, 5.0); print(q); // [4.98996168374548,2.22339218166815,2.81110574389394]
Seq(params a: array of T) : sequence of T;
foreach var x in Seq (1,3,8) do print(x*x); // 1 9 64
SeqFill(count: integer; x: T) : sequence of T;
begin var q:=SeqFill(7,5); print(q); // [5,5,5,5,5,5,5] end.
Следует учесть, что последовательности формируются каждый раз, как только с ними организовывается цикл или работает метод:
Вывод последовательностей
Print(delim: string := ‘ ‘) : sequence of T;
var q:=SeqRandomInteger(5,10,20); q.Print(‘/’); // 16/11/13/10/13
Println(delim: string := ‘ ‘) : sequence of T;
Источник статьи: http://labs-org.ru/abc-4/
Вывод максимального и минимального из 3-х чисел
Здравствуйте! Помогите пожалуйста разобраться. в восьмом классе не велась информатика, а потом перешел в другую школу, а там началось программирование. Я не понимаю, как написать программу по заданию в Паскале.
Напишите программу, которая выбирает максимальное и минимальное из трёх введёных чисел.
Входная строка содержит три целых числа, разделённх пробелами.
В первой строке нужно вывести минимальное из введённых чисел, во второй строке — максимальное.
Входные данные | Выходные данные |
1 2 3 | 1
Вывод максимального и минимального значения Вывод максимального и минимального значений Вывод максимального и минимального числа Нужно найти сколько всего чисел и среднее арифметическое чисел максимального и минимального РешениеРешениеВот так, наверное, проще всего: Источник статьи: http://www.cyberforum.ru/pascal/thread2120005.html Максимальное число из случайных чисел.(массивы)Пожалуйста, напишите программу на следующее задание: заранее спасибо добрым людям. Добавлено через 19 минут Вывести на экран максимальное число из случайных 20 чисел Определить максимальное, минимальное и среднее значения в массиве случайных чисел Определить максимальное, минимальное и среднее значения в массиве случайных чисел Определить для n случайных чисел их среднее арифметическое значение, а так же максимальное и минимальное Создать стек из случайных целых чисел и найти в нем максимальное и минимальное значение Источник статьи: http://www.cyberforum.ru/turbo-pascal/thread247860.html |