Изображение прикреплено. Формула написана наверху.
Program n1;
type z = array of integer;
var a: z;
i,n,x,j,buf: integer;
f: text;
begin
randomize;
assign(f,'input.txt');
reset(f);
n:=0;
readln(f,x);
setlength(a,x);
while not eof(f) do
begin
read(f,a[n]);
n:=n+1;
end;
close(f);
for i:=0 to n-2 do
for j:=i+1 to n-1 do
if a[i]>a[j] then begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
assign(f,'output.txt');
rewrite(f);
for i:=0 to x-1 do write(f,a[i],' ');
close(f);
end.
Формула для определения размера стипендии:
=ЕСЛИ(СУММ(D6:G6)=20;ЕСЛИ(I6="староста";1100;1000);ЕСЛИ(СУММ(ЕСЛИ(D6>3;1;0);ЕСЛИ(E6>3;1;0);ЕСЛИ(F6>3;1;0);ЕСЛИ(G6>3;1;0);)>=4;ЕСЛИ(I6="староста";850;750);0))
Описание:
1) первое вложение: проверка условия отличник ли, для истины сумма баллов должна быть 20. Если истина, то проверяется староста или нет и ставится 1100 рублей, или 1000 рублей.
2) второе вложение: если первое ложь, то идет в работу оно. При этом студент может быть не отличником, но с базовой стипендией. Для этого проверим, есть ли у его тройки: если число в ячейке больше 3, вернуть 1, и добавить к общей сумме, взять следующую ячейку. Если в ней число больше трех, то добавить к сумме и так включительно до 4-й. Если после этих операций, Сумма получилась больше 4х(во всех ячейках больше 3 оценка, если хотя бы в одной меньше, то выйдет меньше 4 сумма) то даем стипендию студенту, но проверяем, староста ли он. И выдаем соответственно 750 или 850. Проверка на старосту, делается с помощью проверки ячейки в последнем столбце. Если там есть запись староста, то к стипендии +100 рублей.
512*2+64*0+8*1+1*4 = 1036
343*2+49*0+7*1+1*4 = 697
216*2+36*0+6*1+1*4 = 442
125*2+25*0+5*1+1*4 = 259