Hej
Ma może ktoś pomysł jak wypisać ze zdania: "Ala ma czarnego kota" zdanie "Czarnego kota ma Ala" bez użycia pętli?
Znalazłem zamianę kolejności wyrazów w zdaniu, ale tylko przy pomocy pętli niestety, a nie mogę tutaj użyć pętli...
Jak nie petla to rekurencja.
A wie może ktoś jak to zapisac? :)
duk86 napisał(a):
Hej
Ma może ktoś pomysł jak wypisać ze zdania: "Ala ma czarnego kota" zdanie "Czarnego kota ma Ala" bez użycia pętli?
Znalazłem zamianę kolejności wyrazów w zdaniu, ale tylko przy pomocy pętli niestety, a nie mogę tutaj użyć pętli...
moze jakies szczegoly? czemu nie mozesz uzyc petli?
jaka zasada sie kierowales przy zamianie kolejnosci wyrazow?
3 slowo, potem 4, potem 2, potem 1?
to rozdziel zdanie po spacjach a potem po prostu wypisz korzystajac z tych indeksow...
W poleceniu jest, że nie mogę użyć pętli. Wyrazy te mają być odczytane w odwrotnej kolejności.
a jaki język?
może zwyczajnie masz rozdzielić zdanie po spacjach do tablicy, potem posortować tablicę jako funkcji porównującej używając randa, złączyć tablicę ze spacjami gotową funkcją która jest w tym języku
jeśli nie to rekurencyjna funkcja wyświetlająca może wyglądać tak:
jeśli długość tablicy > 1
przekaż do funkcji tę samą tablicę z obciętym pierwszym elementem
wypisz pierwszy element
(użycie nawet samej tej funkcji bez sortowania spowoduje już odwrócenie kolejności wyrazów)
Język programowania jest dowolny. Może być nawet kilka języków w jeden połączonych.
Na pewno dowolny, ale najlepiej, żeby to był jakiś w miarę popularny język jak, np. C++.
duk86 napisał(a):
Na pewno dowolny, ale najlepiej, żeby to był jakiś w miarę popularny język jak, np. C++.
A to PHP nie jest popularny?
I to już odwróci kolejność zapisu wyrazów w zdaniu?
no to może C# http://ideone.com/VYCLa1
javascript http://ideone.com/Nl0idf ? ;)
może sprecyzujesz bo wydaje mi się że nie o to chodziło ;D
W pythonie to będzie coś takiego, chyba że wprowadzanie zdania (o którym nic nie wspominałeś) też bez pętli wtedy sam już nie wiem
zdanie = ["Ala ","ma ","czarnego ","kota "]
text=""
zdanie.reverse()
print (text.join(zdanie))
Ruby:
puts "Ala ma czarnego kota".split(/ /).reverse.join(' ')
Haskell:
main = putStrLn . unwords . reverse . words $ "Ala ma czarnego kota"
Smalltalk:
(('Ala ma czarnego kota' tokenize: ' ') reverse join: ' ') printString
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
string text = "Ala ma czarnego kota";
istringstream input(text);
ostringstream output;
istream_iterator<string> input_begin(input), input_end;
vector<string> words(input_begin, input_end);
copy(words.rbegin(), words.rend(), ostream_iterator<string>(output, " "));
string reversed_text = output.str();
cout << reversed_text;
}
Python <html>http://ideone.com/uQCOSB</html>
s = "Ala ma czarnego kota"
l = s.split()
l.reverse()
print " ".join(l)
winerfresh napisał(a):
Ruby:
puts "Ala ma czarnego kota".split(/ /).reverse.join(' ')
to w javascript byłoby niemal identycznie:
"Ala ma czarnego kota".split(/ /).reverse().join(' ')
z tym że według pierwszego posta to miało losowo zmieniać kolejność, a nie ją odwracać ;)
Hmm, ta chwila musiała nadejść.
Jak język dowolny to dowolny:
>++++++++++++++++++++++[++++++++++>,----------]<[-----------------
---------------[++++++++++++++++++++++++++++++++<-----------------
---------------]>[.>][<]++++++++++++++++++++++++++++++++.[-]<[<]<]
Wersja ładniejsza:
>++++++++++++++++++++++[++++++++++>,----------]<
[
--------------------------------[
++++++++++++++++++++++++++++++++<
--------------------------------]
>[.>][<]
++++++++++++++++++++++++++++++++.[-]<[<]<
]