Помогите с задачками по информатике! Задачи на паскале и с функцией, либо процедурой

Помогите с задачками по информатике! Задачи на паскале и с функцией, либо процедурой
Гость
Ответ(ы) на вопрос:
Гость
{Записал оба решения в одной программе. Можете использовать процедуры и функции по своему усмотрению} const   n = 8; type  vector = array[1..n] of integer; const  c : vector = (14, 28, 55, 46, 23, 424, 32, 18); function findMax(var v:vector; l,r:integer):integer; {индекс максимального элемента в диапазоне от l до r} var   i, m:integer; begin  m := l;  for i := l + 1 to r do    if v[i] > v[m] then      m := i;  findMax := m end; procedure swap(var v:vector; l,r:integer); {меняет местами элементы массива с заданными индексами} var  t: integer; begin  t := v[l];  v[l] := v[r];  v[r] := t end; procedure print(var v: vector; l,r:integer); {печатает элементы массива под номерами от l до r} var  i: integer; begin  for i := l to r do    write(v[i],' ') end; function sum(x: integer): integer; var  s: integer; begin  s := 0;  x := abs(x);  while x > 0 do    begin    s := s + x mod 10;    x := x div 10    end;  sum := s end; var  v1, v2: vector;  i: integer; {просто цикловая переменная}  l,r: integer; {переменные для задачи 1}  k: integer; {для задачи 2} begin  {1}  for i := 1 to n do    v1[i] := c[i];   l := findMax(v1, 1, n div 2);  r := findMax(v1, n div 2 + 1, n);  swap(v1, l, r);  print(v1, 1, n);  writeln;  {2}  k := 0;  for i := 1 to n do   if sum(c[i]) = 10 then   begin   k := k + 1;   v2[k] := c[i]   end;  print(v2, 1, k) end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы