Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2011, 04:11   #1
user10
 
Регистрация: 16.04.2011
Сообщений: 4
Восклицание в массиве А инвертировать те его части, которые идут по возрастанию (из C++ -> Pascal )

в масиве А инвертировать те его части которые идут по возрастанию.
на в ходе 3 3 4 5 4 2 1 0 3 1
на выходе 3 5 4 3 4 2 1 3 0 1
-------------
исходник на с++, нужно его на паскаль переписать
сам паскаль плохо знаю, но кое что написал с ошибками
заранее спасибо!
-------------------------------
c++
Код:
#include <iostream>
const int N = 10;
using namespace std;
 
void reverse (int arr[],int s, int f)
{       int i,tmp;
        for(i=0;i<(f-s)/2+1;i++)
        {       tmp = arr[s+i];
                arr[s+i] = arr[f-i];
                arr[f-i] = tmp;
        }                                 
}
 
 
int main()
{
        //int A[]={3, 3, 4, 5, 4, 9, 1, 0, 3, 1};
                int A[N];
        int i,j,start,finish;
                
                for(i=0;i<N;i++)
                {
                        cin >> A[i];
                }
 
                system("cls");
                
        cout<<"Start:\n";
        for(i=0;i<N;i++) 
                {
                        cout<<A[i]<<" ";
        }
                
        start   = 0;
        finish  = 0;
                
        for(i=1;i<N;i++)
                {
            if(A[i]>A[i-1]) finish = i;
            else
            {   
                                if(finish>start) reverse (A,start,finish); 
                                start = i;
            }
        }
                
                
                
        cout<<"\nResult:\n";
        for(i=0;i<N;i++)
                {
            cout<<A[i]<<" ";
                }
                
                
                
                cout<<"\n";
        system("pause");
        return 0;
}
-------------------------------------------------------
Pascal
Код:
program inversion;
uses crt;
 
const N=10;
type arr = array [1..N] of integer;
var i,j,start,finish:integer;
var a:arr;
var parr : ^arr;
var mas:arr;
{--------------------reverse}
function reverse(mas:parr; s,f:integer;):integer;
var i,tmp:integer;
begin
                for i:=0 to (f-s)/2+1 do
                begin
                tmp       = mas^[s+i];
                mas^[s+i] = mas^[f-i];
                mas^[f-i] = tmp;
                end;
end;
 
 
 
 
{-----------------------main}
begin
clrscr;
 
start:=0;
finish:=0;
 
        for i:=1 to N do
        begin
                readln(a[i]);
        end;
 
        clrscr;
 
        for i:=1 to N do
        begin
                write(a[i],' ');
        end;
        {---------------------action}
 
        for i:=1 to N do
        begin
                if(a[i]>a[i-1]) then finish:=i;
                else
                    begin
                         if(finish>start) reverse(@a,start,finish);
                         start:=i;
                    end;
        end;
 
        {---------------------result}
        for i:=1 to N do
        begin
                write(a[i],' ');
        end;
 
readln;
end.
user10 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сделать из трёх массивов по возрастанию один по возрастанию Novenkaja Помощь студентам 5 23.03.2011 21:18
Поиск видимого окна по части его заголовка Человек_Борща Общие вопросы Delphi 5 08.03.2011 22:20
В массиве а (10) первую половину массива отсортировать по убыванию, вторую по возрастанию leon1405 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 19.12.2010 18:36
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28
поиск слова по его части Рустам Помощь студентам 3 10.03.2009 20:54