Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Программа в PascalABC.NET (http://www.tehnari.ru/f41/t245391/)

CTPEJlOK 03.04.2016 20:00

Программа в PascalABC.NET
 
Текст задания:
Составить процедуру (или функцию), которая переставляет в обратном порядке k элементов массива A, начиная i-го (числа i и k задается пользователем): A[1], A[2], …, A[i–1], A[i+k], A[i+k–1], …, A[i+1], A[i], A[i+k+1], …, A[n].
Следующие действия должны выполняться отдельными процедурами (и/или функциями):
1) заполнение массива случайными числами из заданного интервала;
2) вывод массива на экран;
3) заполнение массива нулями (инициализация);
4) сохранение массива в текстовый файл;
5) чтение массива из текстового файла;
6) удаление нескольких элементов из указанного места (со сдвигом);
7) добавление нескольких элементов в указанное место (со сдвигом). Процедуры (и/или функции) должны работать с массивами как с параметрами, но не как с глобальными переменными.

rew 03.04.2016 20:41

Цитата:

Сообщение от CTPEJlOK (Сообщение 2368344)
4) сохранение массива в текстовый файл;

procedure mastofile(arr: mas; fd: file of integer);
var i: integer;
begin
rewrite(fd);
for i:=0 to length(arr)-1 do
write(fd, arr[i]);
close(fd)
end;
Цитата:

Сообщение от CTPEJlOK (Сообщение 2368344)
5) чтение массива из текстового файла;

procedure filetomas(fd: file of integer);
var i: integer; arr: mas;
begin
reset(fd);
setlength(arr, filesize(fd));
for i:=0 to high(arr) do
read(fd, arr[i]);
end;

Начертательная 13.05.2016 20:53

Помощь студентам
 
Ну цикл будет примерно таким
Код:

for j:=i to (k-i) div 2 do
begin
  Buf:=A[j];
  A[j]:=A[k-j+i];
  A[k-j+i]:=Buf;
end



Часовой пояс GMT +4, время: 00:55.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.