Без рандома:
program p5_4;
var
P,S,S1:real; i,k:integer;
b:array[1..20] of integer;
z:array[1..10] of integer;
begin
writeln(' z: ');
for k:=1 to 10 do
begin
Readln(z[k]);
write(z[k]:4);
end;
writeln;
writeln(' b: ');
for i:=1 to 20 do
begin
Readln(b[i]);
write(b[i]:4);
end;
P:=1;
S1:=0;
for i:=1 to 20 do
S1:=2*(S1+cos(sqr(b[i])));
for k:=1 to 10 do
P:=P*(z[k]);
S:=S1+P;
writeln(' S=',S:2:5);
<span>end.</span>
Вводим переменную summ типа int в которой будет записан конечный результат(то есть сколько потребуется нажатий пера).
Считаем строку из исходного файла в переменную stroka типа string.Посимвольно считываем со строки string символы и прибавляем к переменной summ.Переключение регистра или языка тоже суммируется в той же переменной.Если необходимо переключить регистр ,то нужно выбрать переключать его на всё время, или только на следующие касание.Чтобы выбрать проверим сколько букв далее стоят с одним регистром.Если 2 и более последущих букв стоят в одном регистре, то будем использовать Caps Lock т.к в результате потребуется меньше нажатий пера ,чем при использование Shift.
По коду символа будем определять его регистр и принадлежность к какому либо языку.
Const
nn=100;
type
Abit=record
fio:string;
ball:array[1..3] of byte;
from:string;
midb:real
end;
var
t:Abit;
mAb:array[1..nn] of Abit;
i,j,n,m:integer;
midinst:real;
begin
{ ввод исходных данных }
Write('Количество абитуриентов (до 100): '); Readln(n);
Write('Средний балл по институту: '); Readln(midinst);
m:=0;
for i:=1 to n do
begin
Writeln('Абитуриент № ',i);
With mAb[i] do begin
Write('Фамилия, И.О.: '); Readln(fio);
Write('Баллы по трем предметам через пробел: ');
Readln(ball[1],ball[2],ball[3]);
midb:=(ball[1]+ball[2]+ball[3])/3;
Write('Место жительства: '); Readln(from)
end;
if mAb[i].midb>midinst then m:=m+1;
end;
{ простейшая обменная сортировка по убыванию }
for i:=1 to n-1 do
for j:=i+1 to n do
if mAb[i].midb<mAb[j].midb then begin
t:=mAb[i];
mAb[i]:=mAb[j];
mAb[j]:=t
end;
{ вывод }
Writeln;
Writeln('Количество поступающих со средним баллом выше среднеинститутского: ',m);
for i:=1 to n do
with mAb[i] do
Writeln(fio,' ',ball[1]:2,ball[2]:2,ball[3]:2,' ',from)
end.
<em><u>Тестовое решение:</u></em>
Количество абитуриентов (до 100): 4
Средний балл по институту: 5.94
Абитуриент № 1
Фамилия, И.О.: Иванов А.Г.
Баллы по трем предметам через пробел: 9 7 5
Место жительства: Вологда
Абитуриент № 2
Фамилия, И.О.: Петров Л.Л.
Баллы по трем предметам через пробел: 9 9 9
Место жительства: Грязевец
Абитуриент № 3
Фамилия, И.О.: Раковский Д.Г.
Баллы по трем предметам через пробел: 4 4 5
Место жительства: Сокол
Абитуриент № 4
Фамилия, И.О.: Акимова Я.С.
Баллы по трем предметам через пробел: 9 5 4
Место жительства: Харовск
Количество поступающих со средним баллом выше среднеинститутского: 3
Петров Л.Л. 9 9 9 Грязевец
Иванов А.Г. 9 7 5 Вологда
Акимова Я.С. 9 5 4 Харовск
Раковский Д.Г. 4 4 5 Сокол
1) Взлом(не уверен)
2) Последовательность действий, описывающая порядок действий исполнителя для решения некоторой задачи
3) Системный администратор