Определить 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
Листинг программы
  1. uses crt;
  2. const nmax=20;
  3. type mas=array[1..nmax] of integer;{1 строка матрицы}
  4.      matr=array[1..nmax] of mas;{матрица=массив строк}
  5. function F(x:byte;a:mas;n:byte):boolean;
  6. var i,j:byte;
  7.     b:boolean;
  8. begin
  9. b:=true;
  10. for j:=1 to x-1 do{проверяем слева}
  11. if a[j]>=a[x] then b:=false;
  12. for j:=x+1 to n do{проверяем справа}
  13. if a[j]<=a[x] then b:=false;
  14. F:=b;
  15. end;
  16. var a:matr;
  17.     n,m,i,j:byte;
  18.     k:integer;
  19. begin
  20. clrscr;
  21. randomize;
  22. repeat
  23. write('Количество строк до ',nmax,' n=');
  24. readln(n);
  25. until n in [1..nmax];
  26. repeat
  27. write('Количество столбцов до ',nmax,' m=');
  28. readln(m);
  29. until m in [1..nmax];
  30. writeln('Исходная матрица:');
  31. for i:=1 to n do
  32.  begin
  33.   for j:=1 to m do
  34.    begin
  35.     a[i][j]:=random(20);
  36.     write(a[i][j]:3);
  37.    end;
  38.   writeln;
  39.  end;
  40. writeln;
  41. k:=0;
  42. for i:=1 to n do
  43. for j:=2 to m-1 do
  44. if F(j,a[i],m) then k:=k+1;{считаем элементы}
  45. write('Количество особых элементов=',k);
  46. readln
  47. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы