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

0 голосов
59 просмотров

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

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

у=8

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


Информатика (507 баллов) | 59 просмотров
0

Она правда не сложная, помогите пингвину :(

Дано ответов: 2
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.


(53.1k баллов)
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);

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.

0

эта точно работает

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.

(16.9k баллов)
0

*обнимаю*
ты хороший :з

0

Ня, обрящайся :з

0

*обращайся)

0

что-то оно не так работает как надо

0
0

а вариант a=(4,5,8,15,2,6,7) ; x=3; y=6 ?