Приветствуем читателей нашего сайта! Сегодня мы с вами решим задачи Array30-36.
Задачи Array30-36
Array30. Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов. Найденные номера выводить в порядке их возрастания.
program array30; var A: array[1..10] of integer; N, k, i: integer; begin write('Введите N: '); readln(N); write('Введите элементы массива: '); for i := 1 to N do read(A[i]); k := 0; for i := 1 to N - 1 do if A[i] > A[i + 1] then begin inc(k); write(i, ' ') end; writeln; write(k); end.
Array31. Дан массив размера N. Найти номера тех элементов массива, которые больше своего левого соседа, и количество таких элементов. Найденные номера выводить в порядке их убывания.
program array31; var A: array[1..10] of integer; N, k, i: integer; begin write('Введите N: '); readln(N); write('Введите элементы массива: '); for i := 1 to N do read(A[i]); k := 0; for i := 2 to N do if A[i] > A[i - 1] then begin inc(k); write(i, ' ') end; writeln; write(k); end.
Array32°. Дан массив размера N. Найти номер его первого локального минимума (локальный минимум — это элемент, который меньше любого из своих соседей).
program array32; var A: array[1..10] of integer; N, i: integer; begin write('Введите N: '); readln(N); write('Введите элементы массива: '); for i := 1 to N do read(A[i]); for i := 2 to N - 1 do if (A[i] < A[i - 1]) and (A[i] < A[i + 1]) then begin write(i, ' '); exit; {завершает программу} end; writeln(0); {если минимума нет} end.
Array33. Дан массив размера N. Найти номер его последнего локального максимума (локальный максимум — это элемент, который больше любого из своих соседей).
program array33; var A: array[1..10] of integer; N, i: integer; begin write('Введите N: '); readln(N); write('Введите элементы массива: '); for i := 1 to N do read(A[i]); for i := N - 1 downto 2 do if (A[i] > A[i - 1]) and (A[i] > A[i + 1]) then begin write(i, ' '); exit; end; writeln(0); {если максимума нет} end.
Array34. Дан массив размера N. Найти максимальный из его локальных минимумов (определение локального минимума дано в задании Array32).
program array32; var A: array[1..10] of integer; N, max, i: integer; begin write('Введите N: '); readln(N); write('Введите элементы массива: '); for i := 1 to N do read(A[i]); max := -MaxInt; for i := 2 to N - 1 do if (A[i] < A[i - 1]) and (A[i] < A[i + 1]) then if A[i] > max then max := A[i]; writeln(max); end.
Array35. Дан массив размера N. Найти минимальный из его локальных максимумов (определение локального максимума дано в задании Array33).
program array35; var A: array[1..10] of integer; N, min, i: integer; begin write('Введите N: '); readln(N); write('Введите элементы массива: '); for i := 1 to N do read(A[i]); min := MaxInt; for i := N - 1 downto 2 do if (A[i] > A[i - 1]) and (A[i] > A[i + 1]) then if A[i] < min then min := A[i]; writeln(min); end.
Array36. Дан массив размера N. Найти максимальный из его элементов, не являющихся ни локальным минимумом, ни локальным максимумом (определения локального минимума и локального максимума даны в заданиях Array32 и Array33). Если таких элементов в массиве нет, то вывести 0 (как вещественное число).
program array36; var A: array[1..10] of integer; N, max, i: integer; begin write('Введите N: '); readln(N); write('Введите элементы массива: '); for i := 1 to N do read(A[i]); max := -MaxInt; for i := 2 to N-1 do if not((A[i] > A[i - 1]) and (A[i] > A[i + 1])) and not((A[i] < A[i - 1]) and (A[i] < A[i + 1])) then if A[i] > max then max := A[i]; {проверяем те элементы, которые не были проверены в цикле} if a[1] > max then max := a[1]; if a[N] > max then max := a[N]; writeln(max); end.
На сегодня всё! Если у вас возникли вопросы, задавайте их в комментариях. И не забывайте рассказывать о нашем сайте своим друзьям!
Это сайт с лучшими пояснениями. Неужели не будет продолжения?!
Этот вопрос пока остается открытым.
Мы учимся, готовимся к сессии. Как бы не хотелось продолжения, оно откладывается на неопределенный срок.
Несмотря на это, за период своего существования сайт успел стать самостоятельным организмом. Он поддерживает жизнь и развивается уже безо всякого внутреннего вмешательства. Поэтому вопросы, которые сюда поступают, никогда не отсаются незамеченными. В случае непонимания материала, вы всегда можете написать сюда, и вам обязательно помогут 🙂
Ошибка в Array31. Нужно выводить элементы массива по убыванию, а не по возрастанию.
program array31;
var
A: array[1..10] of real;
N, k, i: integer;
begin
write(‘Введите N: ‘);
readln(N);
write(‘Введите элементы массива: ‘);
for i := 1 to N do
read(A[i]);
k := 0;
for i:=N downto 2 do
if A[i] > A[i — 1] then
begin
inc(k);
write(i, ‘ ‘)
end;
writeln;
write(k);
end.
______
Вот правильное решение
не очень хорошо.
Неправильно решена 31 задача.
Не нравится exit в циклах… на паскале так пишут? (это нормально?)
Не нравится max := -MaxInt; (такой подход повсеместно).
в 24 задаче какая-то порнография с флагом.
в
25 задаче сравниваются на равенство дробные числа, это нормально в
паскале? (результат не зависит от реализации компилятора и фазу луны?)
24 и 24 задачи упадут при N = 1.
в
27 задаче какое-то упоротое решение. Что не if (a[i] * a[i+1] < 0)?
Одно умножение и одно сравнение вместо сравнения, 2 сложений и трех
модулей.
В 18 задаче если условие не выполнится ни разу- программа упадет, т.к. K будет хранить мусор, а a[k]….
В 19 задаче нормальный человек пойдет с конца массива.
в 20, 21, 22 задаче забыли присвоить ноль sum. Не все паскали нулем инициализируют.
В 22 здоровый человек напишет 2 цикла. От 1 до К и от Л до Н
23 вообще неверное решена. Деление на ноль там возможно. Если K = 1, L = N
Уроки вы писать бросили, но надо сначала старые исправить.
Здравствуйте!
Начну с конца.
1) Прочитайте внимательнее условие задачи 23, а именно момент 1<K.
2) Вы неправы. Я вот себя вполне хорошо чувствую и написала один. Пересмотрите свои взгляды на читабельность и лаконичность кода и согласитесь.
3) О инициализации нулем мы писали ранее и не раз — мы используем PascalABC и указываем это явно. Он инициализирует.
4) Массив из 10 элементов. Не из миллиона. Здесь это имеет право на жизнь. А ваша оптимизация очень в духе "не заводить лишних временных переменных". (Такое себе)
5) 27 задача: WAT???
6) 24 задача — да, тут я должна согласиться (на самом деле, массив на 10 элементов — тоже что-то странное. Не знаю, под чем это было написано)
7) Дробные числа в задаче 25 — это везде нормально. Тут дело уже в точности. Но для этой задачи это нормально.
8) Что с флагом-то не так?
9) Чем вам MaxInt не угодил?
10) Про exit — не очень понимаю, какой вы ответ ожидаете от нас услышать. Если мы написали, то, вероятно, считаем это нормальным.
11) По поводу неправильного решения 31 задачи — уточните, пожалуйста, что вам здесь не нравится.
Так или иначе — благодарю за проявленный интерес и желаю успехов!
создать программу которая дано x и y природное число. z изменчивый дать значения 5 когда (x+y) простое число, в обратном случее значение 6 : напечатать значение z изменчивого. И как это понять
«Написать программу в которой даны X и Y — вещественные числа. Переменной Z присвоить значение 5, если (X+Y) = целое число, иначе присвоить 6. Вывести значение переменной Z. » — я так это понял.
Видимо, пришло время на C переходить. Огромное спасибо создателям сайта: Вы — лучшие!