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

Как вы думаете какие проблемы (и ошибки) могут возникнуть при циклическом сдвиги массива вправо​

Показать ответ
Ответ:
Abdusalamova2004
Abdusalamova2004
29.05.2023 03:04

const
  n = 10; //количество чисел, которое нужно сформировать
  First = -10; //С какого числа должны генерироваться случайные числа
  Second = 15;{По какое число должны генерироваться случайные числа(например в данном случае случайные числа генерируются в диапазоне от - 10 до 15)}


var
  f, g, h: text;
  i: integer;
  Number: array [1..n] of integer;{Массив, в который записываются числа, считанные из файлов}

begin
  randomize;
  assign(f, 'f.txt');//Инициализируем файл f
  assign(g, 'g.txt');//Инициализируем файл g
  assign(h, 'h.txt');//Инициализируем файл h
  rewrite(f);//Открываем файл f для записи
  for i:= 1 to n div 2 do write(f, random(abs(First) + abs(Second)) + First , ' ');{Первую половину чисел записываем в файл f}
  close(f);//Закрываем файл f
  rewrite(g);//Открываем файл g для записи
  for i:= (n div 2) + 1 to n do write(g, random(abs(First) + abs(Second)) + First, ' ');{Вторую половину случайно сгенерированных чисел записываем в файл g}
  close(g);//Закрываем файл g
  reset(f);//Открываем файл f для считывания
  for i:= 1 to n div 2 do read(f, Number[i]);{Первую половину чисел считываем из файла f в массив}
  close(f);//Закрываем файл f
  reset(g);//Открываем файл g для считывания
  for i:= (n div 2) + 1 to n do read(g, Number[i]);{Вторую половину чисел считываем из файла g в массив}
  close(g);//Закрываем файл g
  rewrite(h);//Открываем файл h для записи
  for i:= 1 to n div 2 do write(h, Number[i], ' ');{Первую половину считанных чисел из массива записываем в файл h}
  writeln(h);//Перевод на новую строку в файле h
  for i:= (n div 2) + 1 to n do write(h, Number[i], ' ');{Вторую половину считанных чисел из массива записываем в файл h}
  close(h);//Закрываем файл h
end.

Все файлы создаются там же, где находится файл программы.

      

0,0(0 оценок)
Ответ:
leomax2
leomax2
20.12.2021 15:22

type Arr = array [1..5] of integer; //Тип массива

const

  a: Arr = (-3, 100, 10, 12, 18);{Задаем типизированную константу - массив и сразу же присваиваем элементам значения}

procedure ReadArr(a: Arr);{Процедура для чтения массива}

  function Summa : integer; {Вложенная в процедуру функция для вычисления суммы элементов (входной в процедуру параметр виден и в функции)}

  var

    S, i: integer;

  begin //Начало функции

    S:= 0;

    for i:= 1 to 5 do s:= s + a[i]; //Вычисление суммы

    Summa:= s; //Присваиваем значение s функции

  end; //Конец функции

begin //Начало процедуры

  write(Summa); //Выводим значение функции

end; //Конец процедуры

begin //Начало программы

  ReadArr(a);

end. //Конец программы

Если только так. Я использовал процедуру, в которой входным параметром является заданный массив и в процедуре - вложенную функцию, вычисляющую сумму элементов. А вообще непонятно, зачем тут еще и procedure, ведь вполне можно обойтись одной функцией.

 

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота