Pomoc z przeniesieniem algorytmu z C++ do Pascala

0

Chciałbym tylko zaznaczyć, że mam dopiero 13 lat i raczej średnio rozumiem jeszcze niektóre aspekty. Proszę o pomoc.

#Include <iostream>
using namespace std;
char napis[5]="pora";
int main()
{
 int i1, i2, i3, i4;
 for(i1=0; i1<4 ; i1++)
 {
   for(i2=0; i2<4; i2++)
   {
     if(i1==i2) continue;
     for(i3=0; i3<4; i3++)
      {
       if(i3==i1 || i3==i2) continue;
       i4=6-i1-i2-i3;
      cout << napis[i1] << napis[i2] << napis[i3] << napis[i4] << endl;
} 
 }
  }
return 0;
}
0
uses crt;

var
	napis:array [0..3] of char='pora';
	i1,i2,i3,i4:integer;
Begin
	for i1:=0 to 3 do
	begin
		for i2:=0 to 3 do
		begin
			if i1=i2 then continue;
			for i3:=0 to 3 do
			begin
				if (i3=i1) or (i3=i2) then
				begin
					continue;
				end;
				i4:=6-i1-i2-i3;
				writeln(napis[i1],napis[i2],napis[i3],napis[i4]);
			end;
		end;
	end;

End.

Używaj znacznika code!

0

No nie wiem, nie działa mi.

1

Może jeszcze rozważyć taką wersje:
Bardzo łatwo ją dopasować dla słowa np długości 15 liter, czego nie da się powiedzieć o przedstawionych wyżej wersjach:

var napis:array[0..3] of char='pora';
var i,k:integer;
var tmp:byte;
const pos:array[0..3] of byte=(0,1,2,3);
begin
  while true do
  begin
    for i:=0 to 3 do Write(napis[pos[i]]);
    WriteLn;
    i:=2;
    while (i>=0)and(pos[i]>pos[i+1]) do Dec(i);
    if i<0 then break;
    k:=3;
    while pos[i]>pos[k] do Dec(k);
    tmp:=pos[i];
    pos[i]:=pos[k];
    pos[k]:=tmp;
    k:=3;
    while i<k do
    begin
      Inc(i);
      tmp:=pos[i];
      pos[i]:=pos[k];
      pos[k]:=tmp;
      Dec(k);
    end;
  end;
end.
0
Oziser napisał(a):

No nie wiem, nie działa mi.

Napisałeś posta "na odwal się". Zawsze, absolutnie ZAWSZE kiedy piszesz, że coś Ci nie działa, napisz co wyświetla Twój kompilator. Przydałaby się też informacja o wersju kompilatora/środowiska. Czy kod wywala się podczas kompilacji, czy może już skompilowany program wywala się przy uruchomieniu. Takie rzeczy pomogą Tobie szybciej uzyskać odpowiedź.

Teraz, kiedy nie napisałeś żadnych konkretów, mogę się domyślać, że mój kod używa jakichś rzeczy, których nie obsługuje np. Turbo Pascal. Za to Free Pascal (2.6.0-9 [2013/04/16] for i386) to kompiluje bez problemu.

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