witam mam problem dostalem takie zadanie wprowadz do tablicy jednowymiarowej i wyprowadzje w kolejnosci odwrotniej mam to zrobic na uniach i strukturach ! wie ktos jak moge takie cos zrobic :D ? z gory dzieki za pomoc !
Moze troche bardzxiej szczegolowo? Co wprowadz? Gdzie wprowadz?
bo jesli tylko liczby to po kiego tam jakies struktury najpierw wprowadzasz i masz jakas zmienna licznik np i a na koniec dajesz od tego i do 0 wypisujesz i jest w odwrotnej kolejnosci
var
tablica : array of string;
z, i: integer;
begin
z:= 7; //liczba danych
SetLength(tablica,z);
for i:=0 to z-1 do
begin
tablica[i] := memo.lines[i];
end;
for i:=z-1 downto 0 do
begin
memo2.lines[i] := tablica[i];
end;
end;
<font color="red">Pisze z głowy - nie testowałem</span>
wiem, że to delphi, ale do BCB nie wiele trzeba zmieniać... odpowiednie "." na "->" i bedzie działać...
Rozwiązanie prymitywne, ale i problem nie podany jakoś sensownie... trzeba by to w 2 funkcje zamknąć, zadeklarować na początku unitu nowy typ dany
TTablica = array of string; a potem w funkcji w var deklarować tablica: TTablica i taki argument ewentualnie przekazać funkcji odwracającej (druga instrukcja for...)
//do postu niżej...
no, to ten kodzik pomoże, zamiast memo.lines[i] dajesz nazwe stringa (np. zmienna[i]) i masz odwróconego....
Tylko jak już wyżej napisałem - lepiej to w funkcji zapisać, bo tak to troche na brudno jest :P
wiec mam wprowadzic jakis dowolny ciag znaczkow a wyprowadzic ten sam ciag tylko ze w odwrotnej kolejnosci
void swap(char* str){
int j=strlen(str);
int i=(j--)/2;
while(i--){
str[i]^=str[j-i];
str[j-i]^=str[i];
str[i]^=str[j-i];
}
}
Tyle tylko, że to rozwiazanie jest bez sensu, bo korzystasz z tablic, żadnych unii, czy struktur :-P (albo zadanie jest bezsensownie sformuowane)
wg. mnie trzeba skozystac ze stosu
albo jezeli tylko tablica to rozwiazanie wpisywac w normalnej kolejnosci i wyciaganie w odwrotnej (w sumie stos :P)
void zmien(int& a, int& b)
{
int temp=a;
a=b;
b=temp;
}
void odwroc(int *tab, int left, int right)
{
if (left<right)
{
zmien(tab[left],tab[right]);
odwroc(tab,left+1,right-1);
}
}
void main()
{
int tab1[8]={1,2,3,4,5,6,7,8};
for (int i=0; i<8; i++)
cout << tab1[i]<<" ";
cout<<endl;
odwroc(tab1,0,7);
for (i=0; i<8; i++)
cout << tab1[i]<<" ";
}