1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Проверти задачу на Паскале...

Тема в разделе "Программирование", создана пользователем SiRozha, 06.12.05.

  1. SiRozha

    SiRozha Активный участник

    958
    0
    Есть задача:
    Вывести одномерный массив B(N) (количество элементов массива кратно числу А). Каждую последовательность из А элементов массива В записать в обратном порядке (дополнительный массив не создавать). Преобразованный массив - на экран.
    Есть написанная не до конца программа:
    program Kir2;
    Uses crt;
    Type mas=array [1..60] of integer;
    Var b:mas;
    n,i,j,a,p,g,c,k,s:integer;
    begin
    ClrScr;write('vvedite razmer massiva ');readln(n);
    for i :=1 to n do begin
    write('B[',i,']='); readln(b)
    end;
    repeat
    write('Vvedite chislo A kratnoe chisly elementov massiva n ');
    readln(a);
    until n mod a=0;
    g:=n div a;
    p:=1;k:=g;s:=g div 2;
    for j:=1 to a do
    begin
    for i:=p to k div 2 do begin
    c:=b;
    b:=b[k+1-i];
    b[k+1-i]:=c
    end;

    p:=p+g;k:=k+g;s:=s+g;
    end;
    writeln('Preobrazovannii massiv B');
    for i:=1 to n do write(b:5);
    readkey
    end.
    В общем программа инвертирует только первую последовательность. А насчет остальных почему то не работает. Наверно что-то с промежутком (выделенная часть), а что именно не пойму.
    Разбирающиеся люди, подскажите пожалуйста... :baby:
     
  2. The Last Winged

    The Last Winged Активный участник

    11.863
    48
    в дебаг? :vcrazy:
     
  3. SiRozha

    SiRozha Активный участник

    958
    0
    Чуваки, только не надо флудить. Я реально прошу помощи...
     
  4. Devillio

    Devillio Активный участник

    1.192
    0
    еще актуально? :)

    вот эту часть:

    я бы сделал так:
    for j:=0 to n/a-1 do
    for i:=j*a to ((j+1)*a-1) div 2 do
    begin
    c:=b;
    b:=b[((j+1)*a)-i];
    b[((j+1)*a)-i]:=c
    end;

    не утверждаю, что это правильно, нету у меня тут паскаля :),
    если еще актульно, пиши в асю, разберемси :flag: