М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
hahahahahaha2
hahahahahaha2
02.06.2021 14:28 •  Информатика

Написать программу на языке паскаль.с пошаговым объяснением действий. условие: дан массив из 15 элементов определить сколько элементов массива располагается между его максимальным и минимальным элементом.

👇
Ответ:
Dankytop
Dankytop
02.06.2021
Const
   N = 15;
Var
   A:array[1..N] of integer;
   i,
   Max, Min:integer; // Тут будут храниться НОМЕРА Min и Max
Begin
Randomize;
{Заполнение и вывод массива}
Write('Исходный массив:');
For i:= 1 to N do
    Begin
    A[i]:=random(21)-10;
    Write(' ',A[i])
    End;
WriteLn;
{Поиск максимума и минимума}
Max:=1;
Min:=1;
// Проверять начинаем со второго элемента,
// потому, что в первую очередь будем сравнивать с первым
// (т.к. Max = 1 и Min = 1)
For i:= 2 to N do
    Begin
    if A[i]>A[Max] then Max:=i;
    if A[i]<A[Min] then Min:=i;
    // Поскольку тут стоят знаки строго больше и строго меньше,
    // будут найдены только первый встретившийся максимум
    // и первый встретившийся минимум.
    // Если бы стояли знаки больше или равно(>=) и меньше или равно(<=),
    // то найдены были бы последние встретившиеся Max и Min
    // То есть, например, в первом случае в массиве:
    // 1 2 3 4 5 2 5 1
    // были бы найдены: Min = 1, Max = 5
    // во втором случае в том же массиве были бы найдены:
    // Min = 8, Max = 7
    End;
// Сколько элементов между пятым и первым ? - три.
// Между восьмым и седьмым ? - ноль
// Общая формула:
// Искомое кол-во элементов = |НомерМаксимума-НомерМинимума|-1
// Значение берём по модулю потому,
// что как минимальный элемент может стоять после максимального,
// так и максимальный после минимального
// То есть без модуля было бы так: 5-1-1 = 3, 7-8-1 = -2
// А с модулем так: |5-1|-1 = 3, |7-8|-1 = 0
// Формула может выдать -1 в том случае, когда минимум равен максимум,
// то есть когда все элементы массива равны.
// На этот случай можно вывести соответствующее сообщение, или просто вывести ноль.
WriteLn('Max = A[',Max,'] = ',A[Max]);
WriteLn('Min = A[',Min,'] = ',A[Min]);
i:=Abs(Max-Min)-1;
// перепишем сюда получившееся значение,
// чтобы потом ещё раз его не высчитывать
if i = -1 then WriteLn('Все элементы массива равны.')
else WriteLn('Кол-во элементов между Max и Min = ',i);
End.

Пример:
Исходный массив: 5 -2 -5 5 6 -7 7 -6 6 3 -4 6 -8 7 1
Max = A[7] = 7
Min = A[13] = -8
Кол-во элементов между Max и Min = 5
4,7(3 оценок)
Открыть все ответы
Ответ:
Локи301
Локи301
02.06.2021
Последовательности длиной 7, содержащей 5 букв А могут быть следующими:
** (* - любой из символов В или С)
*А*
ААА*АА*
АА*ААА*
А**
** (пока 6 вариантов)
Далее - аналогично:
**А
ААА*А*А
АА*АА*А
А*ААА*А
**А (ещё 5 вариантов)
ААА**АА
АА*А*АА
А*АА*АА
*ААА*АА (ещё 4 варианта)
АА**ААА
А*А*ААА
*АА*ААА (ещё 3 варианта)
А**
*А* (ещё 2)
** (ещё 1)
Итого: 6+5+4+3+2+1=21
Так как на месте * могут быть любые из 2 символов В или С, то это даст ещё по 4 варианта для каждого случая.
Можно здесь, конечно, комбинаторику вспомнить.
Итого: 21*4 = 84
4,5(15 оценок)
Ответ:
vitokle
vitokle
02.06.2021
Задача №1

var a:array [1..20] of integer;     
i:integer;
begin 
randomize;   
for i:=1 to 20 do begin   
a[i]:=random(19-(-10)+1)+-10;     
write (a[i],' ');           
end;
end.

Задача №2

var a:array [1..20] of integer; 
i:integer; 
begin 
writeln('Введите числа в интервале [-20;29]'); 
for i:=1 to 10 do read(a[i]); 
for i:=1 to 10 do 
if (a[i]>-29) and (a[i]<20) then write(a[i],' '); 
end.

Задача №3

var a:array [1..20] of integer; 
i,sum:integer; 
begin 
randomize; 
sum:=0; 
for i:=1 to 20 do 
begin 
a[i]:=random(19-(-10)+1)+-10; 
write (a[i],' '); 
if a[i]>0 then sum:=sum+1; 
end; 
writeln('Количество положительных элементов массива = ', sum); 
end.

Задача №4

var a:array [1..20] of integer; 
i:integer; 
begin 
randomize; 
for i:=1 to 20 do 
begin 
a[i]:=random(19-(-10)+1)+-10; 
if a[i]<0 then a[i]:=0; 
write (a[i],' '); 
end; 
end.

Задача №5

var a:array [1..20] of integer; 
i,sum:integer; 
begin 
randomize; 
sum:=0; 
for i:=1 to 20 do 
begin 
a[i]:=random(19-(-10)+1)+-10; 
write (a[i],' '); 
if a[i]>0 then sum:=sum+a[i]; 
end; 
writeln('Сумма положительных элементов массива = ', sum); 
end.
4,8(5 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ