buf.Year:=c[i].Year;
c[i].Name:=c[i+1].Name;
c[i].Year:=c[i+1].Year;
c[i+1].Name:=buf.Name;
c[i+1].Year:=buf.Year;
end
end;
//------- функция поиска среднего возраста -------------------
function Sred(a:Brigade; n:integer):integer;
var
i:integer;
S:integer;
begin
S:=0;
for i:=0 to n-1 do
S:=S+a[i].Year;
Sred:=S div n;
end;
//------- процедура записи результатов в файл: -------------
procedure WriteFile(a:Brigade; n:integer; b:Worker; c:Brigade; S:integer);
var
f:text; // файловая переменная
i:integer; // счетчик
begin
AssignFile(f,'Records.out'); // связывание файловой переменной
rewrite (f); // направление обмена данными - запись
writeln(f,' Ф.И.O. ГОД РОЖДЕНИЯ');
writeln(f,'----------------------------');
for i:=0 to n-1 do
with a[i] do writeln (f, name:-15, year:9);
writeln(f,'----------------------------');
writeln(f,' САМЫЙ СТАРШИЙ:');
writeln(f,'----------------------------');
writeln(f, b.name:-15, b.year:9);
writeln(f,'----------------------------');
writeln(f,'Отсортированный список рабочих');
writeln(f,'----------------------------');
for i:=0 to n-1 do
with c[i] do writeln (f, name:-15, year:9);
writeln(f,'----------------------------');
writeln(f, 'Средний возраст =',S:5);
CloseFile(f);
Finalize(a); // освобождение динамической памяти массива А
Finalize(c); // освобождение динамической памяти массива С
end;
// выполняемые операторы основной программы
begin
ReadFile(a,n); // чтение данных из файла
Poisk(a,n,b); // вызов процедуры поиска старшего
Sort(a,n,c); // вызов процедуры сортировки по алфавиту
S:=Sred(a,n,); // вызов функции поиска среднего возраста
WriteFile(a,n,b,c,S); // вызов процедуры записи в файл
end.
8. Структуру программы можно видеть в окне Code Explorer (меню View | Code Explorer)
9. Запустите приложение на выполнение (горячая клавиша F9).
10. Откройте файл с результатами Records.out (команда меню «File | Open»)
11. Проанализируйте содержание выходного файла Records.out
12. Сохраните и закройте проект Records.
1. Составить массив записей из двух координат на плоскости в декартовой системе и номеров точек. Записать в текстовой файл 50 случайных чисел в диапазоне [-30, 30]. Считать эти числа из файла, интерпретировав как декартовые координаты 25 точек на плоскости и рассортировав в порядке удаления от центра тяжести. Вывести на экран пять наиболее удаленных точек.
2. Составить массив из 10 записей следующей структуры:
· фамилия, имя, отчество – строки из 20 символов;
· номер зачетки – строка из восьми символов;
· количество оценок – байт;
· оценки – массив байтов.
Отсортировать массив в порядке возрастания среднего балла. Вывести фамилию, имя, отчество и средний балл трех наиболее и трех наименее успевающих студентов.
3. Составить массив из пяти записей следующей структуры:
· фамилия президента;
· страна;
· возраст;
· годовой доход;
· марка любимого автомобиля.
Рассортировать массив в алфавитном порядке и вывести фамилии всех президентов.
4. Сформировать массив из 10 записей следующей структуры:
· строка из 50 случайных символов;
· два вещественных поля X, Y (заполнить случайными числами).
Рассортировать массив в порядке убывания поля X. Для каждой компоненты: если количество латинских символов в строке превышает количество русских символов, удвоить значение поля Y. Вывести исходный и преобразованный массивы.
5. Составить массив из 10 записей следующей структуры:
· целое поле (заполнить случайными числами в диапазоне
[-15, 15]);
· целое поле (заполнить случайными числами в диапазоне [0, 5]).
Интерпретировать поля как целую и дробную части вещественного числа с фиксированной десятичной точкой. Вывести массив в порядке убывания этих “вещественных чисел”, поставив между полями десятичную точку.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.