Определить k – количество «особых» элементов массива - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Добрый день всем! помогите мне пожалуйста решить зэти три задачи на языке паскаль!!! 1 задача var k : integer; c : array[1..n, 1..m] of integer; Определить k – количество «особых» элементов массива c, считая элемент «особым», если в его строке слева от него находятся элементы, меньшие его, а справа – большие. Указание: определите булевскую функцию f(x), которая проверяет, является ли элемент x «особым». Задача 3 Для заданных трех строк S1, S2 и S3 напечатать те латинские буквы, которые входят только в одну из этих строк. Указание: например, ввели строки S1 – ‘asfgsas’, S2 – ‘qweasdyu’, S3 – ‘mnbqwef’. Ответом должно служить сле-дующее: ‘Только в первую строку входят буквы – g’, ‘Только во вторую строку входят буквы – dyu’, ‘Только в третью строку входят буквы – mnb’. Задача 4 Дана строка. В алфавитном порядке напечатайте (по разу) все малые латинские буквы, входящие в эту строку ровно один раз. Указание: решение задачи простое, если вы будете использовать множества.

Решение задачи: «Определить k – количество «особых» элементов массива»

textual
Листинг программы
uses crt;
const nmax=20;
type mas=array[1..nmax] of integer;{1 строка матрицы}
     matr=array[1..nmax] of mas;{матрица=массив строк}
function F(x:byte;a:mas;n:byte):boolean;
var i,j:byte;
    b:boolean;
begin
b:=true;
for j:=1 to x-1 do{проверяем слева}
if a[j]>=a[x] then b:=false;
for j:=x+1 to n do{проверяем справа}
if a[j]<=a[x] then b:=false;
F:=b;
end;
var a:matr;
    n,m,i,j:byte;
    k:integer;
begin
clrscr;
randomize;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i][j]:=random(20);
    write(a[i][j]:3);
   end;
  writeln;
 end;
writeln;
k:=0;
for i:=1 to n do
for j:=2 to m-1 do
if F(j,a[i],m) then k:=k+1;{считаем элементы}
write('Количество особых элементов=',k);
readln
end.

Объяснение кода листинга программы

  1. Создается функция F, которая принимает три параметра: x - номер строки, a - массив строк, n - количество строк. Внутри функции происходит проверка: если значение элемента a[j] больше значения элемента a[x], то переменная b устанавливается в false (ложь). Если значение элемента a[j] меньше или равно значению элемента a[x], то переменная b устанавливается в true (истина). В конце функция возвращает значение переменной b.
  2. Создается переменная a типа mas (массив целых чисел) и инициализируется случайными числами от 0 до 20.
  3. Задаются переменные n и m, которые представляют количество строк и столбцов соответственно.
  4. Выводится запрос на ввод количества строк и столбцов.
  5. Выводится исходная матрица с помощью цикла for.
  6. Задается переменная k, которая будет хранить количество особых элементов.
  7. Используется вложенный цикл for для проверки каждого элемента матрицы. Если элемент находится в нужном месте (строка x и столбец j), то переменная k увеличивается на 1.
  8. Выводится количество особых элементов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы