Паскаль(сортировка списка по фамилиям в порядке алфавита). есть , и пример решения. но в коде решения ошибка и поэтому сортировка не происходит, не дописан цикл, не понимаю как записать. условие - произвести сортировку списка студентов по фамилиям по алфавиту, . type st=record f: string; end; var a: array[1..100] of st; g: string; i,j: integer; begin write('n'); readln(n); for i: = 1 to n do begin write('введите фамилии студентов'); read(a[i].f); end; g: ='а'; for i: =1 to n do if a[i].f[1]=g then (здесь нужно дописать еще цикл) begin writeln(a[i].f); end; end.
1)Создание таблицы в новой базе данных
Щелкните Файл > Создать и выберите пункт Пустая база данных рабочего стола.
В поле Файл введите имя файла новой базы данных.
Чтобы сохранить базу данных в другом месте, щелкните значок папки.
Нажмите кнопку Создать.
Откроется новая база данных, в которой будет создана и открыта в режиме таблицы новая таблица с именем "Таблица1".
2)Создание таблицы в существующей базе данных
Щелкните Файл > Открыть и выберите базу данных, если она указана в разделе Последние. В противном случае выберите один из вариантов поиска базы данных.
В диалоговом окне Открытие файла базы данных найдите базу данных, которую вы хотите открыть,и нажмите кнопку Открыть.
на вкладке Создание в группе Таблицы нажмите кнопку Таблица.
В базу данных будет вставлена новая таблица, которая откроется в режиме таблицы.
begin
var a:=ReadLines('infile.txt').ToArray;
var n:=a.Length;
Writeln('*** Исходная информация ***');
// фамилия, имя, возраст, рост, вес
a.PrintLn(NewLine);
Writeln('*** Задание 1 ***');
var sves:real:=0;
var srost:real:=0;
foreach var s in a do begin
srost+=StrToFloat(s.ToWords.ElementAt(3));
sves+=StrToFloat(s.ToWords.ElementAt(4))
end;
Writeln('Средний рост равен ',srost/n:5:1);
Writeln('Средний вес равен ',sves/n:4:1);
srost/=n; sves/=n;
Writeln('*** Задание 2 ***');
var f2:=OpenWrite('rost.txt');
foreach var s in a do begin
var ss:=s.ToWords;
var rost:=StrToFloat(ss.ElementAt(3));
if rost>srost then begin
var s0:=ss.Take(3).ToArray;
var s1:=s0[0]+' '+s0[1]+', '+s0[2];
Writeln(s1);
Writeln(f2,s1)
end
end;
f2.Close;
Writeln('*** Задание 3 ***');
f2:=OpenWrite('ves.txt');
foreach var s in a do begin
var ss:=s.ToWords;
var ves:=StrToFloat(ss.ElementAt(4));
if ves<sves then begin
var s0:=ss.Take(3).ToArray;
var s1:=s0[0]+' '+s0[1]+', '+s0[2];
Writeln(s1);
Writeln(f2,s1)
end
end;
f2.Close
end.
Тестовое решение:
*** Исходная информация ***
Иванов Игорь 14 158 47.4
Петров Павел 14 161 58.3
Козлов Кирилл 15 160 60.3
Сидорова Мария 14 156 45.9
Тяпкина Наталья 15 158 46
Ляпкин Алексей 15 161 58.6
Мамочкин Константин 14 157 52.8
*** Задание 1 ***
Средний рост равен 158.7
Средний вес равен 52.8
*** Задание 2 ***
Петров Павел, 14
Козлов Кирилл, 15
Ляпкин Алексей, 15
*** Задание 3 ***
Иванов Игорь, 14
Сидорова Мария, 14
Тяпкина Наталья, 15