var f:file of integer; i,k:integer; begin Randomize; Assign(f,'in.dat'); Rewrite(f); for i:=1 to 20 do begin k:=Random(99)+1; Write(f,k) end; Close(f) end.
uses Crt; const nn=100; var i,j,k,n:integer; fin,fout:file of integer; a:array[1..nn] of integer; dub:boolean; begin ClrScr; Assign(fin,'in.dat'); Reset(fin); Read(fin,k); if not eof(fin) then begin n:=1; Write(k,' '); a[n]:=k end else n:=0; while (not eof(fin)) and (n<=nn) do begin Read(fin,k); Write(k,' '); j:=1; dub:=false; while (j<=n) and (not dub) do begin dub:=(a[j]=k); Inc(j); end; if not dub then begin Inc(n); a[n]:=k; Inc(j) end end; Writeln; Close(fin); for i:=1 to n do Write(a[i],' '); Writeln; Writeln('n=',n); Assign(fout,'out.dat'); Rewrite(fout); Write(fout,n); Close(fout); ReadKey end.
В качестве бонуса - решение этой же задачи в современной системе программирования PascalABC.NET.
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 begin var fin,fout:file of integer; Reset(fin,'in.dat'); var k:integer; var a:=new integer[fin.FileSize]; var n:=0; while not eof(fin) do begin Read(fin,k); a[n]:=k; Inc(n) end; Close(fin); a.Println; var b:=a.ToHashSet; b.Println; Writeln('n=',b.Count) end.
И вопрос: для чего давать школьникам, 9/10 из которых никогда не будут программистами, устаревшие и громоздкие, сложные для понимания, написания и отладки системы программирования? Чтобы показать, "как все это сложно"?
Первое поколение. Компьютеры на электронных лампах (194х-1955)
Быстродействие: несколько десятков тысяч операций в секунду.
Компьютер на электронных лампах
Особенности:
Поскольку лампы имеют существенные размеры и их тысячи, то машины имели огромные размеры.
Поскольку ламп много и они имеют свойство перегорать, то часто компьютер простаивал из-за поиска и замены вышедшей из строя лампы.
Лампы выделяют большое количество тепла, следовательно, вычислительные машины требуют специальные мощные охладительные системы.
Примеры компьютеров:
Колоссус – секретная разработка британского правительства (в разработке принимал участие Алан Тьюринг). Это первый в мире электронный компьютер, хотя и не оказавший влияние на развитие компьютерной техники (из-за своей секретности), но победить во Второй мировой войне.
var
f:file of integer;
i,k:integer;
begin
Randomize;
Assign(f,'in.dat'); Rewrite(f);
for i:=1 to 20 do begin
k:=Random(99)+1;
Write(f,k)
end;
Close(f)
end.
Тестовое решение
38 35 14 46 92 49 51 48 84 90 26 14 38 79 82 77 7 24 94 13
2. Основная программа
uses Crt;
const
nn=100;
var
i,j,k,n:integer;
fin,fout:file of integer;
a:array[1..nn] of integer;
dub:boolean;
begin
ClrScr;
Assign(fin,'in.dat'); Reset(fin);
Read(fin,k);
if not eof(fin) then begin
n:=1; Write(k,' '); a[n]:=k
end
else n:=0;
while (not eof(fin)) and (n<=nn) do begin
Read(fin,k); Write(k,' ');
j:=1; dub:=false;
while (j<=n) and (not dub) do begin
dub:=(a[j]=k); Inc(j);
end;
if not dub then begin Inc(n); a[n]:=k; Inc(j) end
end;
Writeln;
Close(fin);
for i:=1 to n do Write(a[i],' ');
Writeln; Writeln('n=',n);
Assign(fout,'out.dat'); Rewrite(fout);
Write(fout,n); Close(fout);
ReadKey
end.
Тестовое решение:
38 35 14 46 92 49 51 48 84 90 26 14 38 79 82 77 7 24 94 13
38 35 14 46 92 49 51 48 84 90 26 79 82 77 7 24 94 13
n=18
В качестве бонуса - решение этой же задачи в современной системе программирования PascalABC.NET.
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
begin
var fin,fout:file of integer;
Reset(fin,'in.dat');
var k:integer;
var a:=new integer[fin.FileSize];
var n:=0;
while not eof(fin) do begin
Read(fin,k); a[n]:=k; Inc(n)
end;
Close(fin);
a.Println;
var b:=a.ToHashSet;
b.Println; Writeln('n=',b.Count)
end.
Тестовое решение
38 35 14 46 92 49 51 48 84 90 26 14 38 79 82 77 7 24 94 13
38 35 14 46 92 49 51 48 84 90 26 79 82 77 7 24 94 13
n=18
И вопрос: для чего давать школьникам, 9/10 из которых никогда не будут программистами, устаревшие и громоздкие, сложные для понимания, написания и отладки системы программирования? Чтобы показать, "как все это сложно"?
Первое поколение. Компьютеры на электронных лампах (194х-1955)
Быстродействие: несколько десятков тысяч операций в секунду.
Компьютер на электронных лампах
Особенности:
Поскольку лампы имеют существенные размеры и их тысячи, то машины имели огромные размеры.
Поскольку ламп много и они имеют свойство перегорать, то часто компьютер простаивал из-за поиска и замены вышедшей из строя лампы.
Лампы выделяют большое количество тепла, следовательно, вычислительные машины требуют специальные мощные охладительные системы.
Примеры компьютеров:
Колоссус – секретная разработка британского правительства (в разработке принимал участие Алан Тьюринг). Это первый в мире электронный компьютер, хотя и не оказавший влияние на развитие компьютерной техники (из-за своей секретности), но победить во Второй мировой войне.