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.
Все файлы создаются там же, где находится файл программы.
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, ведь вполне можно обойтись одной функцией.
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.
Все файлы создаются там же, где находится файл программы.
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, ведь вполне можно обойтись одной функцией.