bin1:=bin; {bin1 будем использовать для вывода, т.к. значение bin изменится}
for i:=0 to 7 do {если предположить что число меньше, или равно 255}
begin {берём цикл в программные скобки}
temp:=bin mod 10; {отделяем последнюю цифру в переменную temp, которую используем в качестве буфера}
bin:=bin div 10; {убираем последнюю цифру}
dec:=dec+(temp*exp(i*ln(2)));
end; {вышли из цикла}
write ('Число ',bin1,'(2) = ',dec,'(10)');
end.
Пы.Сы. У меня в 9-ом классе не было паскаля, так что использовал всё самое простое что мог. Если вы учили такой тип данных как строка, то напиши в личку, я переделаю. И если что-то не работает/не так работает тоже напиши, ибо у меня нету паскаля и я не мог проверить) Мог где-то случайно опечататься.
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 из которых никогда не будут программистами, устаревшие и громоздкие, сложные для понимания, написания и отладки системы программирования? Чтобы показать, "как все это сложно"?
На этом этапе выясняются свойства, состояния, действия и другие характеристики элементарных объектов в любой форме: устно, в виде схем, таблиц. Формируется представление об элементарных объектах, составляющих исходный объект, т. е. информационная модель.Модели должны отражать наиболее существенные признаки, свойства, состояния и отношения объектов предметного мира. Именно они дают полную информацию об объекте. Она может быть разносторонней и весьма обширной. Представьте себе, что нужно отгадать загадку. Вам предлагают перечень свойств реального предмета: круглое, зеленое, глянцевое, прохладное, полосатое, звонкое, зрелое, ароматное, сладкое, сочное, тяжелое, крупное, с сухим хвостиком...Список можно продолжать, но вы, наверное, уже догадались, что речь идет об арбузе. Информация о нем дана самая разнообразная: и цвет, и запах, и вкус, и даже звук... Очевидно, ее гораздо больше, чем требуется для решения этой задачи. Попробуйте выбрать из всех перечисленных признаков и свойств минимум, позволяющий безошибочно определить объект. В русском фольклоре давно найдено
program perevod;
uses crt;
var
temp, dec, i: byte;
bin, bin1: longint;
begin
clrscr;
write ('Введите двоичное число: );
readln (bin);
bin1:=bin; {bin1 будем использовать для вывода, т.к. значение bin изменится}
for i:=0 to 7 do {если предположить что число меньше, или равно 255}
begin {берём цикл в программные скобки}
temp:=bin mod 10; {отделяем последнюю цифру в переменную temp, которую используем в качестве буфера}
bin:=bin div 10; {убираем последнюю цифру}
dec:=dec+(temp*exp(i*ln(2)));
end; {вышли из цикла}
write ('Число ',bin1,'(2) = ',dec,'(10)');
end.
Пы.Сы. У меня в 9-ом классе не было паскаля, так что использовал всё самое простое что мог. Если вы учили такой тип данных как строка, то напиши в личку, я переделаю. И если что-то не работает/не так работает тоже напиши, ибо у меня нету паскаля и я не мог проверить) Мог где-то случайно опечататься.