Одномер. и двумер. массивы(Pascal)
Добавлено: 26 окт 2008, 21:54
№1.Создать массив целых чисел R[1..N], содержащий серии чисел, разделенных нулями. Отсортировать массив по возрастанию сумм чисел в сериях.
Т.е. например дан массив
1 2 3 0 -1 2 3 0 6 7 3 0 3 3 3
данный массив нужно преобразовать по возрастанию сумм в сериях , чтоб получилось следующее:
-1 2 3 0 1 2 3 0 3 3 3 0 6 7 3
МОИ мысли по этой задаче:
uses crt;
const n=20;
var nach:array[1..n+1] of integer;
a,s, g:array[1..n] of integer;
i, j, h, k, c,gh, l :integer;
priz:boolean;
begin clrscr;
randomize;
for i:=1 to n do
begin a:=-5+random(10);
write(a, ' ');
end;
writeln;
i:=0; j:=0;
repeat
inc(j); s[j]:=0;
nach[j]:=i+1;
???????????
repeat
inc(i);
s[j]:=s[j]+a;
until (a=0) or (n=i);
writeln(s[j], '=б㬬* ', j);
until n=i;
k:=j;
gh:=j;
repeat dec(k);
priz:=true;
for j:=1 to k do
if s[j]>s[j+1] then begin
c:=s[j];
s[j]:=s[j+1];
s[j+1]:=c;
l:=nach[j];
nach[j]:=nach[j+1];
nach[j+1]:=l;
priz:=false;
end;
until priz;
writeln;
for h:=1 to gh do
write(nach[h],' ');
readkey;
end.
p.s. Там где стоит знак ? нужно дополнить.....ну я так думаю.....
№2. Построено N домов по M квартир в каждом доме. Сформировать матрицу А[N*M], где записать метраж каждой квартиры, в матрицу В записать число проживающих в каждой квартире. Создать массив С, где будет указано число квартир каждого дома, где на одного проживающего приходится менее 7 метров.
Свои мысли по поводу этой задачи выложу чуть позже.....
Т.е. например дан массив
1 2 3 0 -1 2 3 0 6 7 3 0 3 3 3
данный массив нужно преобразовать по возрастанию сумм в сериях , чтоб получилось следующее:
-1 2 3 0 1 2 3 0 3 3 3 0 6 7 3
МОИ мысли по этой задаче:
uses crt;
const n=20;
var nach:array[1..n+1] of integer;
a,s, g:array[1..n] of integer;
i, j, h, k, c,gh, l :integer;
priz:boolean;
begin clrscr;
randomize;
for i:=1 to n do
begin a:=-5+random(10);
write(a, ' ');
end;
writeln;
i:=0; j:=0;
repeat
inc(j); s[j]:=0;
nach[j]:=i+1;
???????????
repeat
inc(i);
s[j]:=s[j]+a;
until (a=0) or (n=i);
writeln(s[j], '=б㬬* ', j);
until n=i;
k:=j;
gh:=j;
repeat dec(k);
priz:=true;
for j:=1 to k do
if s[j]>s[j+1] then begin
c:=s[j];
s[j]:=s[j+1];
s[j+1]:=c;
l:=nach[j];
nach[j]:=nach[j+1];
nach[j+1]:=l;
priz:=false;
end;
until priz;
writeln;
for h:=1 to gh do
write(nach[h],' ');
readkey;
end.
p.s. Там где стоит знак ? нужно дополнить.....ну я так думаю.....
№2. Построено N домов по M квартир в каждом доме. Сформировать матрицу А[N*M], где записать метраж каждой квартиры, в матрицу В записать число проживающих в каждой квартире. Создать массив С, где будет указано число квартир каждого дома, где на одного проживающего приходится менее 7 метров.
Свои мысли по поводу этой задачи выложу чуть позже.....