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

0 голосов
46 просмотров

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


image

Информатика (157 баллов) | 46 просмотров
0

Подразумевается, что нужно создать массив-переменную, скопировать туда элементы из массива-константы, а потом провести над ним какие-то преобразования? И если у нас процедуры/функции с массивами, нужно для него определить тип?

0

Да, нужно вывести в новый массив все это дело, определять тип тоже нужно. 

0

Ок

Дан 1 ответ
0 голосов

{Записал оба решения в одной программе. Можете использовать процедуры и функции по своему усмотрению}

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.

(8.5k баллов)
0

что-то я не очень понял решение, но все равно спасибо! 

0

Можешь  написать просто две раздельных проги?