Форум программистов, компьютерный форум, киберфорум
BILSTE_ONE
Войти
Регистрация
Восстановить пароль
Сделал небольшую подборочку своих самопальных функций для массивов в PascalABC. Задания для решения лёгкие, но как мне кажется иногда востребованные. Просто самому стало интересно их порешать.
Рейтинг: 1.00. Голосов: 12.

Самопаьлные функции для массивов в PascalABC

Запись от BILSTE_ONE размещена 19.11.2020 в 14:49

Заполнение массива цифрами из введённой строки

Задача: дана строка из некоторого кол-ва цифр, нужно каждую цифру записать в одну ячейку массива.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
type Arr = array [1..10] of integer; {Записываем параметры массива, с которым мы в дальнейшим будем работать.
Если можно иначе, напишите пожалуйста, просто кажись в Oberon можно сразу передать массив со всеми его особенностями}
 
function FillingInt(var m: Arr): integer;
var
  i: integer;
  F: string;
begin
  read(f); i := 1;
  while (i <= High(m)) and (i < Length(f) + 1) do
  begin
    if Copy(f, i, 1) = '-' then
    begin
      m[i] := StrToInt(Copy(f, i + 1, 1)) * (-1);
      i += 2;
    end
    else
      begin
      m[i] := StrToInt(Copy(f, i, 1));
      i += 1;
    end;
  end;
end;

Подробнее о данной функции
Кликните здесь для просмотра всего текста
Информация о функции
1. Цифры могут иметь отрицательное значение.

Объявление
Pascal
1
function FillingInt(var m: Arr): integer;
Пример с функцией
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
type
  Arr = array [1..10] of integer;
 
function FillingInt(var m: Arr): integer;
var
  i: integer;
  F: string;
begin
  read(f); i := 1;
  while (i <= High(m)) and (i < Length(f) + 1) do
  begin
    if Copy(f, i, 1) = '-' then
    begin
      m[i] := StrToInt(Copy(f, i + 1, 1)) * (-1);
      i += 2;
    end
    else
    begin
      m[i] := StrToInt(Copy(f, i, 1));
      i += 1;
    end;
  end;
end;
 
var
  m: Arr;
 
begin
  FillingInt(m);
  for var i := Low(m) to High(m) do {Вывод готового массива}
    write(m[i]);  
end.



Сортировка массива методом "пузырьком"

Задача: дан массив, нужно его отсортировать по возрастанию методом "пузырёк".

Pascal
1
2
3
4
5
6
7
8
9
10
11
type Arr = array [1..10] of integer; {Записываем параметры массива, с которым мы в дальнейшим будем работать.
Если можно иначе, напишите пожалуйста, просто кажись в Oberon можно сразу передать массив со всеми его особенностями}
 
function SortInt(var a: Arr): integer;
begin
  var n := High(a);
  for var i := n downto 2 do
    for var j := 1 to i - 1 do
      if a[j + 1] < a[j] then
        Swap(a[j + 1], a[j]);
end;

Подробнее о данной функции
Кликните здесь для просмотра всего текста
Информация о функции
1. Числа могут иметь отрицательное значение.

Объявление
Pascal
1
function SortInt(var a: Arr): integer;
Пример с функцией
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
type
  Arr = array [1..10] of integer;
 
function FillingInt(var m: Arr): integer;
var
  i: integer;
  F: string;
begin
  read(f); i := 1;
  while (i <= High(m)) and (i < Length(f) + 1) do
  begin
    if Copy(f, i, 1) = '-' then
    begin
      m[i] := StrToInt(Copy(f, i + 1, 1)) * (-1);
      i += 2;
    end
    else
    begin
      m[i] := StrToInt(Copy(f, i, 1));
      i += 1;
    end;
  end;
end;
 
function SortInt(var a: Arr): integer;
begin
  var n := High(a);
  for var i := n downto 2 do
    for var j := 1 to i - 1 do
      if a[j + 1] < a[j] then
        Swap(a[j + 1], a[j]);
end;
 
var
  m: Arr;
 
begin
  FillingInt(m);  {Записываем в массив цифры}
  SortInt(m);
  
  for var i := Low(m) to High(m) do {Вывод готового массива}
    write(m[i]);  
end.



Вывод массива

Задача: дан массив, нужно его вывести с пробелами между выводимыми строками.
Pascal
1
2
3
4
5
6
7
8
9
10
type Arr = array [1..10] of integer; {Записываем параметры массива, с которым мы в дальнейшим будем работать.
Если можно иначе, напишите пожалуйста, просто кажись в Oberon можно сразу передать массив со всеми его особенностями}
 
function PrintM(m: Arr): integer;
var
  i: integer;
begin
  for i := Low(m) to High(m) - 1 do write(m[i], ' ');
  write(m[i + 1]);
end;

Подробнее о данной функции
Кликните здесь для просмотра всего текста
Информация о функции
1. Выводятся любые типы массивов.

Объявление
Pascal
1
function PrintM(m: Arr): integer;
Пример с функцией

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
type
  Arr = array [1..10] of integer;
 
function PrintM(m: Arr): integer;
var
  i: integer;
begin
  for i := Low(m) to High(m) - 1 do write(m[i], ' ');
  write(m[i + 1]);
end;
 
function FillingInt(var m: Arr): integer;
var
  i: integer;
  F: string;
begin
  read(f); i := 1;
  while (i <= High(m)) and (i < Length(f) + 1) do
  begin
    if Copy(f, i, 1) = '-' then
    begin
      m[i] := StrToInt(Copy(f, i + 1, 1)) * (-1);
      i += 2;
    end
    else
    begin
      m[i] := StrToInt(Copy(f, i, 1));
      i += 1;
    end;
  end;
end;
 
var
  m: Arr;
 
begin
  FillingInt(m);  {Записываем в массив цифры}
  PrintM(m);  
end.


Размещено в Без категории
Просмотров 501 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.