Решите задачу используя одномерный массив создать из заданного целочисленного массива размером 30 элементов другой массив который будет содержать модули знать значение элементов первого массива не используя специальные функции вычисляющий модуль числа Напиши названия операторов использованных поварами
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 из которых никогда не будут программистами, устаревшие и громоздкие, сложные для понимания, написания и отладки системы программирования? Чтобы показать, "как все это сложно"?
1. Написать программу нахождения площади прямоугольного треугольника. Длины катетов треугольника задаются с клавиатуры. 2. Написать программу вычисления периметра трапеции, длины сторон которой вводятся с клавиатуры. 3. Написать программу для нахождения пути, пройденного автомобилем за заданное время. Значение средней скорости и время движения задаются с клавиатуры. 4. Написать программу для решения следующей задачи: скорость первого автомобиля V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Какое расстояние будет между ними через T часов, если автомобили движутся в разные стороны? Значения V1, V2 и S задаются с клавиатуры. 5. Написать программу для решения следующей задачи: скорость первого автомобиля V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Какое расстояние будет между ними через T часов, если автомобили движутся навстречу друг другу? Значения V1, V2 и S задаются с клавиатуры. 6. Напишите программу вычисления идеального веса человека по формуле: Ид. Вес= Рост в см –100. Значение роста вводится с клавиатуры. 7. Вы положили деньги в сбербанк на депозит на три месяца из расчета 3% годовых. Напишите программу, которая запрашивает сумму, внесенную на счет, и вычисляет причитающуюся вам сумму через три месяца.
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 из которых никогда не будут программистами, устаревшие и громоздкие, сложные для понимания, написания и отладки системы программирования? Чтобы показать, "как все это сложно"?