Расскажите об отличие в архитектурных подходах к индексированию данных в in-memory СУБД, расскажите о используемых типах индексов, их плюсах и минусах ?
uses crt; var a:array [1..10] of integer; x: real; i:integer; begin clrscr; x:=0; for i:=1 to 10 do readln(A[i]); for i:=1 to 10 do begin if (A[i]<0) or (A[i] mod 2=0) then x:=x+Sqr(A[i]); end; writeln; write(x); end.
2)
program two; uses crt; var a:array [1..52] of integer; x,i: integer; begin clrscr; x:=34; for i:=1 to 52 do begin A[i]:=1+x; x:=x+1; if (A[i] mod 7 =1)or (A[i] mod 7 =2) or (A[i] mod 7 =5) then writeln(A[i]); end; end.
3)
Program three; Uses crt; var n,x:integer; a,y:real; begin Clrscr; readln(a,n); for x:=1 to n do y:=x*a; writeln(y); end.
4)
Program four; Uses crt; var A:array [1..100] of integer; n,i,max,x:integer; begin clrscr; writeln('vvedite kol-vo elementov'); readln(n); writeln('Vvedite elementy'); for i:=1 to n do read(A[i]); for i:=1 to n do begin max:=A[1]; if (A[i] <0) and (A[i]>A[x]) then max:=A[i]; x:=i; end; writeln ('Naib',max,'nomer',x); end.
5)
Program abc; Uses crt; var S,a,b:integer; begin clrscr; S:=0; a:=1; b:=3; while a<98 do begin while b<100 do begin S:=S+b-a; a:=a+4; b:=b+4; end; end; writeln(s); end.
Первое решение понятно, но это только общие мысли, в целом оно ошибочно по двум пунктам
1. В задании идёт речь о 20 веке, а это года 1901,19022000. Поэтому в объявлении массива нужно указать именно эти интервалы. Или просто 1 - 100, понятно же, что это один век, а при отображении года следует отображать (1900+i).
2. В задании не определено, с какой точностью это самое население считается, если с точностью до человека, то INTEGER не хватит, поэтому этот вопрос нужно уточнить и в зависимости от точности (до тысяч, до десятков или сотен тысяч человек) выбрать соответствующий формат представления данных.
3. Странно писать 100 одинаковых операторов присваивания(кстати в тексте ещё ошибка - присваивается ОДНО И ТО ЖЕ значение, ведь оператора ввода данных НЕТ!).
Такие вещи делаются в цикле по индексам. Внутри цикла 2 оператора
Ввод()
Присваивание
Опять же в задании не сказано, откуда берутся данные, ведь они могут браться с клавиатуры, с внешнего устройства(диска) или с какого-нибудь другого устройства ввода, например, сканера. Эти вводы реализуются похожими, но РАЗНЫМИ операторами.
Вот мои замечания, хотя, если формально точно реализовывать предложенное задание, нужно всего лишь описать массив, в котором будут храниться некоторые данные. В этом случае действительны лишь замечания 1 и 2.
И ещё. Я не помню, что такое INTEGER. INTEGER 2-байтный точно не хватит, INTEGER 4-байтный должно хватить.
В паскале
1) program one;
uses crt;
var a:array [1..10] of integer;
x: real; i:integer;
begin
clrscr;
x:=0;
for i:=1 to 10 do
readln(A[i]);
for i:=1 to 10 do
begin
if (A[i]<0) or (A[i] mod 2=0) then
x:=x+Sqr(A[i]);
end;
writeln;
write(x);
end.
2)
program two;
uses crt;
var a:array [1..52] of integer;
x,i: integer;
begin
clrscr;
x:=34;
for i:=1 to 52 do
begin
A[i]:=1+x;
x:=x+1;
if (A[i] mod 7 =1)or (A[i] mod 7 =2) or (A[i] mod 7 =5)
then writeln(A[i]);
end;
end.
3)
Program three;
Uses crt;
var n,x:integer; a,y:real;
begin
Clrscr;
readln(a,n);
for x:=1 to n do
y:=x*a;
writeln(y);
end.
4)
Program four;
Uses crt;
var A:array [1..100] of integer;
n,i,max,x:integer;
begin
clrscr;
writeln('vvedite kol-vo elementov');
readln(n);
writeln('Vvedite elementy');
for i:=1 to n do
read(A[i]);
for i:=1 to n do
begin
max:=A[1];
if (A[i] <0) and (A[i]>A[x])
then max:=A[i];
x:=i;
end;
writeln ('Naib',max,'nomer',x);
end.
5)
Program abc;
Uses crt;
var S,a,b:integer;
begin
clrscr;
S:=0;
a:=1;
b:=3;
while a<98 do
begin
while b<100 do
begin
S:=S+b-a;
a:=a+4;
b:=b+4;
end;
end;
writeln(s);
end.
Первое решение понятно, но это только общие мысли, в целом оно ошибочно по двум пунктам
1. В задании идёт речь о 20 веке, а это года 1901,19022000. Поэтому в объявлении массива нужно указать именно эти интервалы. Или просто 1 - 100, понятно же, что это один век, а при отображении года следует отображать (1900+i).
2. В задании не определено, с какой точностью это самое население считается, если с точностью до человека, то INTEGER не хватит, поэтому этот вопрос нужно уточнить и в зависимости от точности (до тысяч, до десятков или сотен тысяч человек) выбрать соответствующий формат представления данных.
3. Странно писать 100 одинаковых операторов присваивания(кстати в тексте ещё ошибка - присваивается ОДНО И ТО ЖЕ значение, ведь оператора ввода данных НЕТ!).
Такие вещи делаются в цикле по индексам. Внутри цикла 2 оператора
Ввод()
Присваивание
Опять же в задании не сказано, откуда берутся данные, ведь они могут браться с клавиатуры, с внешнего устройства(диска) или с какого-нибудь другого устройства ввода, например, сканера. Эти вводы реализуются похожими, но РАЗНЫМИ операторами.
Вот мои замечания, хотя, если формально точно реализовывать предложенное задание, нужно всего лишь описать массив, в котором будут храниться некоторые данные. В этом случае действительны лишь замечания 1 и 2.
И ещё. Я не помню, что такое INTEGER. INTEGER 2-байтный точно не хватит, INTEGER 4-байтный должно хватить.
Успехов!