- Форум
- Тийн интереси и проблеми
- Училище и приятели
- !!! Информатика 10 клас !!! Помощ за една задача!
Даден е масив с n-елементи реални числа. Нека n<=30 . Да се напише програма, която разменя елементите на масива, тоест инвертира първия елемент става последен и първия – последен.
a1, a2 … ak … aj … an
ak:= aj;
aj:= ak;
buf:=a[k];
a[k]:=a[j];
a[j]:=buf;
mid:=n div 2
a[i]<—>a[n-i+1]
i+j=n+1-i
Ужасно ще съм благодарна, ако някой обърне внимание на тази трудна задача за мен и ми напише решението
P.S. Трябва ми за утре!
Ще пиша на паскал.
n - броят на елементите
masiv - предварително дефиниран тип масив
procedure InvertArray(var a:masiv);
var
buf, i, j: integer
j:=n;
for i := 1 to n div 2 do
begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
j:=j-1;
end;
end;
Обяснение: Имаме два брояча на цикъла. Единият обхожда от началото до средата (i), а другият от края до средата (j). На всяка стъпка се разменят първия и последния елемент по познатата процедура за размяна на стойностите на две променливи (чрез въвеждането на буферна променлива). Цикълът свършва когато се разменят и средните елементи. ЛС, ако има неясни неща.
Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.