1. Деректердің типі туралы қандай ақпарат алдың? 2. Программалау барысында сандық деректерді емес, айнымалыларды
қолдану алгоритмнің қай қасиетімен байланысты деп ойлайсың?
3. 12 және 58 бүтін сандарынан 1258 санын құрастырудың ауызша
алгоритмін қалай сипаттаған болар едің?
4. float(input()) командасын қандай мақсатта қолданады?
begin
var a:=ArrRandom(15,10,30).Select(x->x+0.1); Write('A='); a.Println;
var b:=ArrRandom(12,10,30).Select(x->x+0.1); Write('B='); b.Println;
var c:=a.Intersect(b).ToArray;
Write('C='); c.Println;
a:=a.Except(c).ToArray; Write('A новый='); a.Println;
b:=b.Except(c).ToArray; Write('B новый='); b.Println
end.
Пример решения
A=15.1 25.1 29.1 24.1 16.1 29.1 18.1 13.1 10.1 12.1 10.1 13.1 14.1 18.1 24.1
B=24.1 10.1 23.1 15.1 13.1 16.1 22.1 21.1 21.1 28.1 26.1 29.1
C=15.1 29.1 24.1 16.1 13.1 10.1
A новый=25.1 18.1 12.1 14.1
B новый=23.1 22.1 21.1 28.1 26.1
const
n=4;
Var
f:file of char;
i,j,counter,FileLen:integer;
s:string;
val:char;
ar:array[1..n] of integer;
coms:array[1..n] of integer;
begin
for i:=1 to n do
coms[i]:=i;
assign(f,'input.csv');
reset(f);i:=1; //столбец матрицы
counter:=1; //количество прочитанных элементов
FileLen:=filesize(f); //количество элементов в файле (включая разделители)
read(f,val); //на случай, если первая строка пуста
repeat
while (ord(val)<>10) and (ord(val)<>13) do //каждая строка заканчивается символами 10 и 13, а элементы разделяются ;
begin
if (val<>';') and (ord(val)<>10) and (ord(val)<>13) then
begin
ar[i]+=strtoint(val); //вводим значение из ячейки в переменную суммы read(f,val); //cчитываем следующее значение
inc(counter); //увеличиваем количество прочитанных
end
else
begin
read(f,val); //пропускаем разделитель
inc(counter);
end;
end;
if (ord(val)=10) and (counter<FileLen) then //в конце каждой строки стоят символы с кодами 10 и 13, пропускаем их
begin
read(f,val);
inc(counter);
end;
if (ord(val)=13) and (counter<FileLen) then //когда дошли до конца строки
begin
inc(i);
read(f,val); //читаем с новой строки
inc(counter);
end;
until(counter=FileLen); //читаем пока количество элементов в файле не сравняется с количеством прочитанных
close(f);
for i:=1 to n-1 do //когда лень писать быструю сортировку
for j:=i+1 to n do
if ar[i]<ar[j] then
begin
counter:=ar[i];
ar[i]:=ar[j];
ar[j]:=counter;
counter:=coms[i];
coms[i]:=coms[j];
coms[j]:=counter;
end;
for i:=1 to n do
writeln(i,'st place-',coms[i],' command -',ar[i],' points');
end.