Program maschetinol;
var a:array [1..25] of Integer;
i:Integer;
begin
Write ('Массив: ');
for i:=1 to 25 do
begin
a[i]:=random(51);
write (a[i], ' ');
end;
WriteLn;
Write('Чётные элементы: ');
for i:=1 to 25 do
if a[i] mod 2 = 0 then
Write (a[i],' ');
WriteLn;
Write('Элементы, оканчивающиеся на ноль: ');
for i:=1 to 25 do
if a[i] mod 10 = 0 then
Write(a[i],' ')
end.
=== 8.1 ===
const
nn=20;
type
tSess=record
Fam:string[24];
mark:array[1..3] of byte
end;
tRes=array[1..nn] of tSess;
function MeanGrade(pRes:tSess):real;
// возвращает средний балл
begin
MeanGrade:=(pRes.mark[1]+pRes.mark[2]+pRes.mark[3])/3
end;
procedure pCopy(a:tSess; var b:tSess);
// Копирование a -> b
var i:integer;
begin
b.Fam:=a.Fam;
for i:=1 to 3 do b.mark[i]:=a.mark[i]
end;
procedure pSort(var pmRes:tRes; n:integer);
// сортировка массива по алфавиту поля Fam
var
tmp:tSess;
i,j:integer;
begin
for i:=1 to n-1 do
for j:=1 to n-i do
if pmRes[j].Fam > pmRes[j+1].Fam then begin
pCopy(pmRes[j],tmp); pCopy(pmRes[j+1],pmRes[j]);
pCopy(tmp,pmRes[j+1])
end;
end;
procedure pGet(Fam:string;m1,m2,m3:integer;var a:tSess);
// Присваивание значений структуре
begin
a.Fam:=Fam;
a.mark[1]:=m1;
a.mark[2]:=m2;
a.mark[3]:=m3
end;
procedure pPrint(a:tSess);
// вывод структуры
begin
Writeln('Фамилия: ',a.Fam);
Writeln('Баллы:',a.mark[1]:2,a.mark[2]:2,a.mark[3]:2);
Writeln
end;
var
i,n:integer;
mS:tRes;
begin
n:=3;
pGet('Сидоров',4,3,4,mS[1]);
pGet('Иванов',3,4,3,mS[2]);
pGet('Петров',3,3,3,mS[3]);
Writeln('*** Исходные данные ***');
for i:=1 to n do pPrint(mS[i]);
pSort(mS,3);
Writeln('*** Средний балл ниже 3.5 ***');
for i:=1 to 3 do
if MeanGrade(mS[i])<3.5 then pPrint(mS[i]);
end.
Пример
*** Исходные данные ***
Фамилия: Сидоров
Баллы: 4 3 4
Фамилия: Иванов
Баллы: 3 4 3
Фамилия: Петров
Баллы: 3 3 3
*** Средний балл ниже 3.5 ***
Фамилия: Иванов
Баллы: 3 4 3
Фамилия: Петров
Баллы: 3 3 3
=== 8.2 ===
function SC(s:string):set of char;
var
i:integer;
SoC:set of 'a'..'z';
begin
SoC:=['a'..'z'];
for i:=1 to Length(s) do Exclude(SoC,s[i]);
SC:=SoC;
end;
var
s:string;
i:'a'..'z';
mC:set of 'a'..'z';
begin
s:='qwertybbkldsfgnidrjglddfdfkhjgg';
mC:=SC(s);
for i:='a' to 'z' do
if i in mC then Write(i,' ');
Writeln
end.
Пример
a c m o p u v x z
Uses crt;
var i,k,n.Sum:integer;
begin
read (n);
sum:=0;
k:=0;
for i:=0 to n do
begin
k:=3;
Sum:=Sum+i;
end;
writeln(sum);
end.
Формула I = Vt
№1
Решение:
2 Мб = 16777216 бит
16777216 : 40 = 419430,4 бит/сек
№2
1 мин = 60 сек
40000 х 60 = 1400000 бит = 300000 байт