Составить легкую программу! зеркально отразить последовательность в одномерном массиве. т.е. задаем последовательность, вводим границы "зеркала" - х и у. и зеркально отражаем. пример: 12345678910 х=5 у=8 вывод: 12348765910. буду блгодарна!

Яся83 Яся83    1   25.05.2019 10:50    0

Ответы
Kurbatovaolga15 Kurbatovaolga15  21.06.2020 12:44
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.
ПОКАЗАТЬ ОТВЕТЫ
прграмма45 прграмма45  21.06.2020 12:44
Вот, пингвинчик :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.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика