Определить количество элементов массива, значение которых больше соседних элементов

Задача: 

Пользователь вводит n элементов массива. Требуется определить количество элементов, значение которых больше, чем у соседних элементов массива.

Описание переменных: 

m - количество реальных элементов массива;
qty - количество элементов массива, значение которых больше, чем у соседей.

Алгоритм решения задачи: 
  1. Считываем числа с помощью процедуры read() и помещаем их в массив.
  2. Переменной qty присваиваем значение 0.
  3. Переменной i, которая обозначает индекс массива, присваиваем значение 2, т.к проверять первый элемент массива не имеет смысла (у него нет левого соседа).
  4. В условии цикла выражение i < m говорит о том, что последний элемент массива также не проверяется, т.к. у него нет правого соседа.
  5. Если очередной элемент массива (arr[i]) больше предшествующего (arr[i-1]) и очередной элемент массива (arr[i]) больше последующего (arr[i+1]), то ...
  6. ... увеличить значение qty на единицу и ...
  7. ... увеличить значение i на 2, т.к проверять следующий элемент нет смысла, т.к. уже известно, что он меньше левого соседа.
  8. Иначе (если условие не выполнилось) перейти к следующему элементу массива (i := i + 1).
  9. Вывести значение qty на экран.

Это не оптимальный алгоритм, но короткий.

Программа на языке Паскаль: 

const
    n = 100;
var
    arr: array[1..n] of integer;
    i, m, qty: byte;
begin
    write('Количество элементов массива: ');
    readln(m);
    write('Элементы массива через пробел: ');
    for i:=1 to m do
        read(arr[i]);
    readln;
 
    qty := 0;
    i := 2;
    while i < m do
        if (arr[i] > arr[i-1]) and (arr[i] > arr[i+1]) then begin
                qty := qty + 1;
                i := i + 2
        end
        else
            i := i + 1;
 
    writeln('Кол-во элементов, которые больше соседей: ', qty);
 
readln;
end.

Примечания: 

Пример выполнения программы:

Количество элементов массива: 6
Элементы массива через пробел: 3 4 2 3 7 6
Количество элементов, которые больше соседей: 2

Получается 2, т.к. только четверка и семерка больше обоих своих соседей.

Комментарии

Одномерные массивы

Помогите пожалуйста решить. В одномерном массиве вещественных чисел определить количество элементов равных 7.

Дана матрица

Дана матрица X(N,N). Вычислить суммы элементов каждой строки матрицы и наибольшую из вычисленных сумм.

1

const
  n = 10;
 
var
  m: array [1..n, 1..n] of integer;
  sum: array [1..n]  of integer;
  max, i, j: integer;
 
begin
  for i := 1 to n do
    for j := 1 to n do m[i, j] := random(10);
 
  for i := 1 to n do
  begin
    for j := 1 to n do write(m[i, j], ' ');
    writeln;
  end;
 
  for i := 1 to n do
    for j := 1 to n do
    begin
      sum[i] := sum[i] + m[i, j];
    end;
  max := sum[1];
  for i := 1 to n do if max < sum[i] then max := sum[i];
 
  for i := 1 to n do writeln('SUM ', i, '=', sum[i]);
  writeln(max);
end.

Одномерный массив 15 элементов заполнить случайными значениями

Одномерный массив 15 элементов заполнить случайными значениями, вывести его на экран.
Определить количество элементов, значения которых больше суммы соседних элементов (предыдущего и последующего).

Решение похожей задачи.

Решение похожей задачи. Только поменять логическое выражение

(arr[i] > arr[i-1]) and (arr[i] > arr[i+1])

на

arr[i] > arr[i-1]+arr[i+1]

определить индексы элементов

определить индексы элементов массива значение которых не менее А и не более В type [1...100]

помогите решить задачу

Масивы данных имеют значения роста для мальчиков и девочек. Определить кто (мальчик или девочка) самый высокий и самый низкий.

Пожалyйста помогите решить задачy

Вводится число N, а за ним N целых чисел – элементов массива.
Найдите количество отрицательных элементов в этом массиве

var mass:array[1..99] of

var mass:array[1..99] of integer;
    n,m,i:integer;
begin
  writeln('введите n');
  readln(n);
  for i:=1 to n do
    begin
      writeln('введите элемент массива номер ',i);
      readln(mass[i]);
      if mass[i]<0 then
        m:=m+1;
    end;
  writeln('количество отрицательных элементов:',m);
end.<code>

алгоритмы

вычислить площадь заштрихованной фигуры при R1=25см ;R2=15см ;R3=5см. Площадь круга S=ПR в квадрате.

program zd1;Uses Crt;Var

  1. program zd1;
  2. Uses
  3. Crt;
  4. Var
  5. N, i: integer;
  6. Mas: array[1..1000] of integer;
  7. loop: integer; {Счетчик}
  8. Begin
  9. loop := 0;
  10. write('Введите размер массива ');
  11. read(N);
  12. for i:=1 to N do
  13. begin
  14. readln(Mas[i]);
  15. if (Mas[i] < 0) then
  16. loop := loop + 1;
  17. end;
  18. write('Число отрицательных элементов массива равно ', loop);
  19. End.

Что-то вроде этого

помогите пожалуйста решить задачу!!

задача: запросить текст и вывести на экран 2,3, 4 символы текста

Готов помочь!

Должно быть так:

program kz2;
uses crt;
var
    txt: string; x: array[0..255] of char;
begin
    clrscr;
    Writeln('Введите текст:');
    readln (txt);
    x:=txt;
    Writeln('2-й символ текста: "', x[1], '", 3-й - "', x[2], '", 4-й - "', x[3],'".');
readln
end.

Помогите пожалуйста закончить задачу.

Ввести натуральное число и определить верно ли, что его сумма цифр равна 10.

progran qq;
var n<>0 do
beging
           z:=n mod 16
           s:=s+z
           n:=mod 10
   end;
    if s=10 the n
    writeln('8a')

(ввести целое число и найти сумму его цифр и произведение)

Может так ?? program

Может так ??

 program z1;
var 
x,y,S:integer;
 begin
 writeLn('Введите числа');
  readLn(x,y);
   S:=x+y;
   if S=10 then WriteLn('Да, верно')
   else writeLn ('нет,не верно');
end.

Program Summa_of)digit;Type

Program Summa_of)digit;
Type  Data=LongInt; {Можно заменить на любой Ваш тип }
Function Summ( X: Data) : Data;
Var
  S : Data;
begin
  If c<- then x:=-x;
  S:=0;
  While X>0 do
   begin
      S:=S + (X mod 10);
      x:=x div 10;
  end;
  Summ:=S;
end; 
 
var  X : data;
Begin { Main hrogram }
   Write('Введите число =');
    ReadLn(X);
   If Summ(X)-10
     then Write(' Ghfdbkmyj !!!')
     else Write(' Ошибочно !!');
end.

вроде в циклах с предусловием

var n, s:integer;
begin
  write('input number');   {ввод, чтение числа}
  read(n);
  S:=0;
  while n <> 0 do
     begin
        S:=S+n mod 10;
        n:=n div 10;
     end;
    if  s = 10 then writeln('true') else writeln('false');
end.

/

Спасибо

Помогите )в массиве K(n)найти

Помогите )в массиве K(n)найти количество элементов больше 3

Уважаемые программисты помогите пожалуйста!!! Очень нужно!

В квадратном массиве выделить 4 четверти ограниченные главной и побочной диагоналями (без учёта элементов, расположенных на диагоналях): вернюю, нижнюю, левую, правую.
1) Найти сумму элементов:
а) верхней четверти.
б) правой четверти.
в) нижней четверти.
г) левой четверти.

задан одноименный массив из N

задан одноименный массив из N чисел. найти разницу между наибольшим и наименьшим элементами массива. помогите пожалуйста!!

Готов помочь!

Здесь мой вариант. Он довольно сложный, потому что я туда много чего ненужного понапихал, но с таким, думаю, приятно работать.

program kz4(proc);
uses crt;
label
    rep,again,rep1;
var
    x: array [1..255] of integer; i,n: byte; max,min,r:integer; ans:string;
procedure opr(a:integer; var max,min: integer);
begin
    if min>a then min:=a;
    if max<a then max:=a;
end;
 
begin
    max:=-32768;
    min:=32767;
    again:
    clrscr;
    Write('Введите количество элементов массива: ');
    readln (n);
    Writeln('Желаете заполнить массив вручную или автоматически (ручн/авт)? В автоматическом режиме числа выбираются из диапазона [-500;500].');
    rep:
    Readln(ans);
    case ans of
    'ручн':
    begin
    for i:= 1 to n do
    begin
    Write('Введите ', i,'-й элемент массива: ');
    Readln(x[i]);
    opr(x[i],max,min);
    end;
    end;
    'авт':
    begin
    Randomize;
    Writeln('Компьютер выбрал числа: ');
    for i:= 1 to n do
    begin
    x[i]:=Random(10000)-5000;
    Writeln(x[i]);
    opr(x[i],max,min);
    end;
    end;
    else
    begin
    Writeln('Команда не распознана. Введите еще раз.');
    goto rep;
    end;
    end;
    r:=max-min;
    Writeln('Разница между наибольшим (', max, ') и наименьшим (', min, ') элементами массива равна ', r, '.');
    Writeln('Повторить (д/н)?');
    rep1:
    Readln(ans);
    case ans of
    'д': goto again;
    'н': halt;
    else begin
    Writeln('Ошибка. Повторите.');
    goto rep1;
    end;
    end;
    readln
end.

решение

const
   m = 100;
var
   a:array[1..m] of integer;
   i,n,max,min,raz:integer;
begin
   writeln('введите количество элементов массива');
   readln(n);
   writeln('введите элементы массива');
   for i:=1 to n do
      readln(a[i]);
   min:=a[i];
   for i:=1 to n do
      If min>a[i] then min:=a[i];
   max:=a[i];
   for i:=1 to n do
      If max<a[i] then max:=a[i];
   raz:=max-min;
   writeln('разность=',raz);
end.

Помогите пожалуйста с

Дан массив P, содержащий N натуральных чисел. Найти наименьшее натуральное число, непредставимое в виде суммы элементов массива Р. Каждый элемент может входить в сумму не более одного раза.

Помогите,плиз (((

мне надо ввести программу. графика,надо нарисовать смайлики и кораблик. Помогите пожалуйста,буду очень благодарна.