В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Учен586
Учен586
24.11.2021 05:09 •  Информатика

Задание: 1<= N <= 10 Заполнить с клавиатуры одномерный массив А размерностью А[1..N] целыми числами в диаразоне (0-99) Вывести элементы массива в одну срочку, на каждый элемен по 3 знака. Поменять местами элементы массива A[1] и A[N], A[2] и A[N-1] ... Вывести элементы массива в одну срочку, на каждый элемен по 3 знака. Написать алгоритм сортировки смотрим алгоритм § 20. Обработка массивов. Вывести элементы массива в одну срочку, на каждый элемен по 3 знака.
Паскаль

Показать ответ
Ответ:
Kyki510
Kyki510
16.09.2020 05:38
Procedure ShellStr(var s: string);
{ сортирует символы строки методом Шелла }
var
  i, j, n, step: integer;
  c: char;
begin
  s := Trim(s);
  n := Length(s);
  step := n div 2;
  while step > 0 do 
  begin
    for j := n - step downto 1 do 
    begin
      i := j;
      while i <= n - step do 
      begin
        if s[i] > s[i + step] then
        begin
          c := s[i];
          s[i] := s[i + 1];
          s[i + 1] := c
        end;
        i := i + step
      end
    end;
    step := step div 2
  end
end;

procedure TrimNullsLeft(var s: string);
{ Усекает левые (незначащие нули) в строке s }
var
  i, n: integer;
begin
  i := 1; n := Length(s);
  while (s[i] = '0') do i := i + 1;
  s := Copy(s, i, n - i + 1)
end;

var
  p: integer;
  s, M, N: string;
  f: text;

begin
  Assign(f, 'input.txt');
  Reset(f);
  Readln(f, s);
  Close(f);
  Assign(f, 'output.txt');
  Rewrite(f);
  s := Trim(s);
  p := Pos(' ', s);
  M := Copy(s, 1, p - 1);
  N := Copy(s, p + 1, Length(s) - p);
  s := M + N;
  ShellStr(s);
  TrimNullsLeft(s);
  Writeln(f, s);
  Close(f);
  Writeln('Программа завершила работу')
end.
0,0(0 оценок)
Ответ:
Lisa030105
Lisa030105
16.09.2020 05:38
Procedure ShellStr(var s: string);
{ сортирует символы строки методом Шелла }
var
  i, j, n, step: integer;
  c: char;
begin
  s := Trim(s);
  n := Length(s);
  step := n div 2;
  while step > 0 do
  begin
    for j := n - step downto 1 do
    begin
      i := j;
      while i <= n - step do
      begin
        if s[i] > s[i + step] then
        begin
          c := s[i];
          s[i] := s[i + 1];
          s[i + 1] := c
        end;
        i := i + step
      end
    end;
    step := step div 2
  end
end;

procedure TrimNullsLeft(var s: string);
{ Усекает левые (незначащие нули) в строке s }
var
  i, n: integer;
begin
  i := 1; n := Length(s);
  while (s[i] = '0') do i := i + 1;
  s := Copy(s, i, n - i + 1)
end;

var
  p, ns: integer;
  s, M, N: string;
  ml, nl: integer;
  f: text;

begin
  Assign(f,'input.txt');
  Reset(f);
  Readln(f,s);
  Close(f);
  Assign(f,'output.txt');
  Rewrite(f);
  ns := Length(s);
  p := Pos(' ', s);
  ml := p - 1;
  M := Copy(s, 1, ml);
  ShellStr(M);
  TrimNullsLeft(M);
  ml := Length(M);
  N := Copy(s, p + 1, ns - p);
  ShellStr(N);
  TrimNullsLeft(N);
  nl := Length(N);
  if ml < nl then Writeln(f,M)
  else if nl < ml then Writeln(f,N)
  else if M < N then Writeln(f,M) else Writeln(f,N);
  Close(f);
  Writeln('Программа завершила работу')
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота