Pascal to C++ . Zamiana kodu.

0

Witam. Potrzebuję "skonwertować" kod z Pascala na C++ :
Pascal:
user image

A taki kod napisałem. Proszę o poprawę, podpowiedzi, gdzie mam błędy:

 #include "iostream"

using namespace std;

void reverse ( int m, int i, int j)
{
	i = 1;
	j = m;
	
	int b, p[i];
	while(i < j)
	{
		b = p[i];
		p[i] = p[m];
		p[m] = b;
		i = i+1;
		j = j-1;	
	}	
}
void antylex ( int m, int i)
{
	int b;
	i = 5;
	int p[i];
	if (m = 1)
	{
		while (i >0)
		{
			cout << p[i] << endl;
			i--;
		}	
	}
	else
		for (i = 1; i < m ; i++)
		{
			antylex(m-1, i);
			if (i<m)
			{
				b = p[i];
				p[i] = p[m];
				p[m] = b;
			}
		}
}
int main()
{
	int i, n, b;
	int p[i];
	for (i = 1; i <= n ; i++ )
	{
		b = p[i];
		p[i] = i;
		i = b;
	}
	antylex(n, i);
	
	getchar();
	return 0;
}
 
1

Błąd jest taki że właściwie nigdzie nie nadajesz wartości zmiennym i, n, b. Poza tym tablica p[] w kodach pascalowych była globalna a ty sobie tworzysz w każdej funkcji lokalną tablicę.

0

To nie jest Pascal, tylko jakiś pseudokod pascalopodobny.

Ale rzeczywiście przydałoby się przekazywać tablicę osobno, a nie mieć globalną.
I przerobić na indeksowanie od zera, nie od jedynki.

np.

void REVERSE(int P[], size_t m)
{
    size_t i=0, j=m-1;
    while (i<j)
        swap(P[i++], P[j--]);
}

nie sprawdzane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1