type
Person = record
fname: string;//Фамилия ученика
lname: string;//Имя
school: integer;//Номер щколы
end;
var student: Person;
n,s,p:integer;
tmp:string;
fin:text;//Файловая переменная
begin
assign(fin, 'students.txt');
reset(fin);
readln(n);//Получаем номер школы
while not (eof(fin)) do
begin
readln(fin, tmp);//Читаем строку из файла
p:= Pos(';', tmp);
Delete(tmp, 1, p);//удаляем все до первого разделителя
p:= Pos(';', tmp);
Delete(tmp, 1, p);//удаляем все до второго разделителя
// в tmp остался номер школы
student.school:=strtoint(tmp);
if student.school=n then s+=1;
end;
writeln(s);
end.
Для того, чтобы решить данную задачу, необходимо воспользоваться формулой N = 2^i, где N - максимальное количество цветов в палитре, а i - глубина цвета.
2^8 < 312 < 2^9
Если мы будем использовать глубину цвета равную 8 битам, то максимальное допустимое количество цветов в палитре будет равняться 256 (так как 2^8 = 256), что не удовлетворяет условиям задачи.
Значит, нам необходимо использовать глубину цвета равную 9 битам, так как при этом значении максимальное допустимое количество цветов в палитре будет равняться 512(так как 2^9 = 512), а значит для кодирования 312 цветов памяти хватит с избытком.
ответ: 9
//Pascal
type
TPupils = record
firstname, surname: string;
schoolNumber: integer;
end;
var
f: text;
s, buf: string;
i, j, tmp: byte;
num, countPupils: integer;
A: array [1..200] of TPupils;
begin
assign(f, 'data.txt');
reset(f);
j := 1;
while not eof(f) do
begin
readln(f, buf);
buf := buf + ' ';
tmp := 1;
for i := 1 to length(buf) do
begin
if pos(buf[i], ' ') = 0 then s := s + buf[i]
else
begin
if length(s) > 0 then
begin
case tmp of
1: begin A[j].firstname := s; Inc(tmp); end;
2: begin A[j].surname := s; Inc(tmp); end;
3:
begin
Val(s, num, num);
A[j].schoolNumber := num;
end;
end;
//writeln(s);
s := '';
end;
end;
end;
Inc(j);
end;
close(f);
write('Введите № школы: ');
readln(num);
for i := 1 to 200 do
begin
if A[i].schoolNumber = num then
//writeln(A[i].firstname, ' ', A[i].surname, ' ',
// A[i].schoolNumber);
Inc(countPupils);
end;
writeln('Количество учеников в данной школе = ',
countPupils);
end.