Предмет: Информатика, автор: Shiteru

Составить легкую программу! 
Зеркально отразить последовательность в одномерном массиве.

Т.е. Задаем последовательность, вводим границы "зеркала" - х и у. И зеркально отражаем.
Пример:12345678910
х=5

у=8

Вывод:12348765910.
Очень буду блгодарна! 

 

 

Ответы

Автор ответа: HRAshton
0
Вот, пингвинчик :3 Можно было и короче, переменных поменьше и циклов... Но раз задача именно такая, то лучше не сокращать, а то могут оценку снизить)

var a: array [1..10] of integer;
    i, x, y, xi, yi, t: integer;
begin
     for i := 1 to 10 do
         readln(a[i]);
     writeln('X, Y');
     readln(X, Y);
          
     for i := 1 to 10 do
     begin
         if (a[i] = X) then xi := i;
         if (a[i] = Y) then yi := i;
     end;
     t := a[xi];
     a[xi] := a[yi];
     a[yi] := t;

     for i := 1 to 10 do
         writeln('[', i, '] => ', a[i]);
end.
Автор ответа: HRAshton
0
*обращайся)
Автор ответа: archery
0
что-то оно не так работает как надо
Автор ответа: HRAshton
0
http://i60.fastpic.ru/big/2013/1024/54/75e115e7ac46dabd74b793244def4754.png А?
Автор ответа: archery
0
а вариант a=(4,5,8,15,2,6,7) ; x=3; y=6 ?
Автор ответа: archery
0
var a: array [1..10] of integer;
    i, x, y, xi, yi, t: integer;
begin
     for i := 1 to 10 do
         readln(a[i]);
     writeln('X, Y');
     readln(X, Y);
          
     for i := 0 to abs(round(0.5*(x-y))) do
     begin
      
t := a[x+i];
       a[x+i] := a[y-i];
       a[y-i] := t;
     end;
    
     for i := 1 to 10 do
         writeln('[', i, '] => ', a[i]);
end.


Автор ответа: archery
0
var a: array [1..10] of integer;
i, x, y, t: integer;
begin
randomize;
for i := 1 to 10 do
a[i] := random(99);
write('X, Y = ');
read(X, Y);

writeln;
for i := 1 to 10 do
write(i:3);
writeln;
for i := 1 to 10 do
write(a[i]:3);
Автор ответа: archery
0
for i := 0 to abs(x-y+1) div 2 do begin
t := a[x+i];
a[x+i] := a[y-i];
a[y-i] := t;
end;

writeln;
for i := 1 to 10 do
write(a[i]:3);
end.
Похожие вопросы
Предмет: Математика, автор: natasakudelkina513