Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pytania PHP + SQL
perhydrol
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

Ostrzeżenie: (0%)
-----


Witam,

w dniu jutrzejszym mam odbyć rozmowę kwalifikacyjną na stanowisko młodszego programisty PHP.
Znalazłem kilka postów na podobny temat, ale chciał bym jeszcze o coś dopytać Was.

Macie może pomysł, na jakieś ciekawe zapytania SQL (MySQL) jakie mogli by zadać rekrutujący??
-szukam czegoś na miarę zadania sprawdzającego smile.gif

Kolejna sprawa to sortowanie, mniej więcej mam namiary na tego typu pytanka, komuś przychodzą do głowy jakieś przykłady biggrin.gif


Będę wdzięczny za wasze odp...

-pozdrawiam.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 35)
-mkdes-
post
Post #2





Goście







Nikt nie odpisał.
Nie dziwię się, mysql w praktyce rządzi się swoimi regułami.
Doświadczeń praktycznych nikt nie zdradzi. Za dużo czasu poświęcił na ich dobycie.
Pozostaje ci zbierać doświadczenia i przekonać pracodawcę, że jesteś w stanie rozwiązać każdy problem, mimo nieznajomości tematu. Szybkie uczenie, rozumienie, inteligencja, rozwiązywanie logicznych zadań.
Go to the top of the page
+Quote Post
perhydrol
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

Ostrzeżenie: (0%)
-----


hehe,

OK, może źle sformułowałem swoje pytanie.

Nie liczyłem na to, że ktoś mi zdradzi jakieś magiczne sekrety, a jedynie na to, że przedstawi jakiś scenariusz do rozwiązania.
Czyli jako zadanie dla mnie, coś w stylu sprawdzenia się, bo przecież prawie każdy scenariusz który sobie wymyślę sam, będę go w stanie rozwiązać ;p

Co innego jak się pisze konkretną aplikację i zmaga się z danym "problemem",
więc ciekaw byłem pomysłów scenariuszy do rozwiązania.

-osobiście mam wrażenie, że to trochę wina działu Hydepark. Raczej słabym zainteresowaniem forumowiczów się cieszy ;P
(*oczywiście mogę się mylić)

-pozdrawiam.

Ten post edytował perhydrol 1.03.2010, 23:52:53
Go to the top of the page
+Quote Post
SHiP
post
Post #4





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Myślę, że jakieś klasyczne pytania..
PHP:
- różnice między include a require, include a include_once
- czy wiesz co to jest MVC? Opisz w jednym/dwóch zdaniach
- czy wiesz co to moduł rewrite
- napisz wyrażenie regularne znajdujące użytkowników na literę K posiadającyh "w" na 4 miejscu loginu
- czy wiesz jakie są różnice miedzy funkcjami preg_ oraz ereg_
- napisać klasę A dziedziczącą po B, klasa B powinna implementować wzorzec C

MySQL:
- w jaki sposób grupuje się rekordy, podać przykład (GROUP BY)
- określanie warunkow dla grup (HAVING)
- łączenie zapytań i podzapytania: różne formy typu UNION, ALL, INTERSECT, JOIN (LEFT|RIGHT|INNER)

Późno post dodałeś. W dzień mógłbym więcej wymyślić. Z tego co wiem to zazwyczaj trzeba kawałek kodu napisać lub przeanalizować jakiś gotowy...

Ten post edytował SHiP 2.03.2010, 01:11:25


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
pyro
post
Post #5





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Cytat(SHiP @ 2.03.2010, 00:28:35 ) *
modół rewrite


Nie ma czegoś takiego. Sorrki za mały off-top, ale to się mocno rzuca w oczy tongue.gif


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
SHiP
post
Post #6





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Dzięki za uwagę. Bład ortograficzny poprawiłem biggrin.gif Późno w nocy głupoty piszę smile.gif.

Chodziło mi o Rewrite_module z Apache czyli krótko mówiąć moduł mod_rewrite.
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Może źle to określiłem jako dotyczące PHP ponieważ to część Apache winksmiley.jpg.


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
darko
post
Post #7





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


perhydrol - daj znać, jak poszło i jakie padły pytania (i odpowiedzi).


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
varez
post
Post #8





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


trzeba bylo napisac raczej wczesniej niz o 20 skoro jutro czyli dzis masz/miałeś ta rozmowa tongue.gif
Go to the top of the page
+Quote Post
Spawnm
post
Post #9





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Ale co to za wykuwanie pytań na pamięć , to nie szkoła ... zostaniesz zatrudniony i co powiesz? Nie umiem ?
Go to the top of the page
+Quote Post
Puciek
post
Post #10


TAO programowania


Grupa: Zarejestrowani
Postów: 340
Pomógł: 3
Dołączył: 25.03.2003
Skąd: ze słoika

Ostrzeżenie: (30%)
XX---


Cytat(Spawnm @ 2.03.2010, 14:02:34 ) *
Ale co to za wykuwanie pytań na pamięć , to nie szkoła ... zostaniesz zatrudniony i co powiesz? Nie umiem ?
Ale tak wlasnie przygotowal go nasz system edukacji biggrin.gif


--------------------

http://puciek.wordpress.com prywatnie o świecie
Go to the top of the page
+Quote Post
thek
post
Post #11





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Taaa... Śmiać mi się chciało gdy usłyszałem o zamysłach przy reformie oświaty i porównałem do pierwszych efektów. Zamiast rozwoju samodzielnego myślenia mamy "wbicie się w klucz" i ogólne jedno wielkie krętactwo. Gdybym był obecnym maturzystą, to przygotowania do niej zamiast pół roku lub roku zajęły by mi tydzień lub mniej i zdałbym śpiewająco zarówno przedmioty ścisłe jak i humanistyczne biggrin.gif Jeden dzień na kww (kopiuj-wklej wykuj) części ustnej i przejrzenie materiałów do pisemnej. Sorki, ale tak obecnie to wygląda. Gdy zdawałem ja i rówieśnicy oraz osoby starsze to liczyła się jednak wiedza bardziej i była uzależniona od profilu także. Gdyby ktoś zobaczył obecnie na zaawansowanej maturze zadania jakie robił profil matematyczno-fizyczny to by płakał obecnie i zgrzytał zębami. Pełny przebieg wykresu funkcji z liczeniem punktów przegięcia, miejsc zerowych określania dziedziny i przeciwdziedziny to była tam podstawa bazująca na choćby liczeniu pochodnych, znajomości obliczania granic (lim) i takie inne badziewia, które niektórzy dopiero na studiach poznają. Ja już nawet nie straszę licealistów obecnych całkami, które w liceum także mieliśmy jako profil mat-fiz opracowywane. Tak więc uważam, że obecna szkoła to light jeszcze ogłupiający bardziej niż mający uczyć czegokolwiek. Co zresztą po naszym forum widać, bo matma i logika kompletnie w obecnych czasach to beeeeee. Wszyscy są humanistami i matmy nie rozumieją, albo ścisłowcami i mają dysfunkcje graniczące z dysmózgią, a i tak matmy nie rozumieją biggrin.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
perhydrol
post
Post #12





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

Ostrzeżenie: (0%)
-----


Cytat(darko @ 2.03.2010, 10:57:19 ) *
perhydrol - daj znać, jak poszło i jakie padły pytania (i odpowiedzi).


Witam wszystkich, przepraszam że dopiero dziś odpisuję ale najzwyklej w świecie nie miałem czasu odwiedzić forum.
Przyjęty na okres próbny, a jak mi poszło hmm... przyznam że nie byłem zadowolony z odpowiedzi jakich udzielałem.
Co do pytań jakie padły to nie wszystkie pamiętam, ponieważ rzucane były w moją stronę przez trzy osoby na przemian (większość związana z OOP).

Pytania:
Zmienić kolejność elementów tablicy, mając jedną zmienną pomocnicza "n", bez użycia dodatkowych zmiennych tablicowych! (w pętli, nie za pomocą gotowej funkcji)

  1. $aTab = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
  2. $n;

Cytat
Pożądany wynik: 10, 9, 8, 7, ... 2, 1
mile widziane wasze przykłady rozwiązań smile.gif

-operacje na ciągach znaków preg_, ereg_ etc...
-różnice pomiędzy include, include_once, require...
-przykładowe zadanko obrazujące działanie referencji "&",
-sposoby zabezpieczenia Sesji

-dziedziczenie, interfejsy, klasy-metody abstrakcyjne, "ppp", jak działają przedstawić na tablicy przykład i omówić,
-jakie znam wzorce projektowe, omówić Singleton, MVC,

-sposoby dostępu do baz danych SQL server przy pomocy PHP
-jak skutecznie chronić się przed SQL-Injecton,
-istota działania wyzwalaczy, zademonstrować (sql),
-transakcje (sql),

-prezentacja kodu źródłowego z wybranego zrealizowanego projektu.

Faktycznie trochę późno wpadłem na pomysł aby napisać posta z pytaniem na forum...
Korzystając z okazji chciał bym zapytać kogoś kto odbył szkolenie z ZEND-a, (uzyskał certyfikat), czy może polecić jakieś materiały z którymi warto się zapoznać przed udziałem w takim szkoleniu, ułatwiające jego odbycie.

-pozdrawiam

Go to the top of the page
+Quote Post
thek
post
Post #13





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To nie miałeś jakichś trudnych smile.gif Zadanko z zamianą tablicy jest proste. W tym wypadku wystarczy pętla mająca floor(n/2) kroków smile.gif Jak?
  1. for( $i = 0; $i<floor( count($tablica)/2 ); $i++ ) {
  2. $n = $tablica[$i];
  3. $tablica[$i] = $tablica[ count($tablica)-$i ];
  4. $tablica[ count($tablica)-$i ] = $n;
  5. }
W efekcie działa to tak, że pierwszy zamieniasz z ostatnim, drugi z przedostatnim, trzeci z przedprzedostatnim itd smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
tvister
post
Post #14





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

Ostrzeżenie: (0%)
-----


Hehe $i, $n to już są 2 zmienne.

Proponuje użycie stosu smile.gif


--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post
blooregard
post
Post #15


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
Proponuje użycie stosu

Miało być bez użycia funkcji, więc rozumiem, że array_pop() i array_push() też nie wchodzą w grę.

Jedna zmiennna pomocnicza, zamiana w pętli:
1. z foreach:
  1. $aTab = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  2.  
  3. foreach ($aTab as $n) {
  4. $aTab[10-$n] = $n;
  5. }//foreach
  6.  
  7. print_r($aTab);


2. z while:
  1. <?php
  2. $aTab = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  3. $n=10;
  4. while ($n > 0) $aTab[10-$n] = $n--;
  5.  
  6. print_r($aTab);

rezultat (w obu przypadkach taki sam):
Cytat
Array ( [0] => 10 [1] => 9 [2] => 8 [3] => 7 [4] => 6 [5] => 5 [6] => 4 [7] => 3 [8] => 2 [9] => 1 )


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #16





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@blooregard - toś pojechał hahahh smile.gif
  1. $aTab[count($aTab)-$n]=$n; // to może przejdzie tongue.gif


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
blooregard
post
Post #17


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
@blooregard - toś pojechał hahahh

Nie bardzo załapałem, o co Ci chodzi?


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
phpion
post
Post #18





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@blooregard:
Bez urazy, ale z takim rozwiązaniem pewnie byś wyleciał. Dlaczego? Bo sprawdzi się tylko w tym konkretnym przypadku (lub jemu podobnym). Wystarczy zmienić liczbę elementów w tablicy (jak zauważył ~Cyś) albo ich kolejność i Twoje rozwiązanie leży. Równie dobrze mogłeś napisać:
  1. $aTab = array(10, 9, 8, 7, 6, 5, 4, 3, 2, 1);

smile.gif
Go to the top of the page
+Quote Post
Spawnm
post
Post #19





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Leży nie tylko ze względu na ilość, ale i sam pomysł - co zrobisz gdy w tej tablicy pojawią się array(2,11,-4,234,22,12,4,55,-99,0) ?
Go to the top of the page
+Quote Post
thek
post
Post #20





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Bloo, ale Twój przykład idzie się paść gdy tablica nie jest w kolejności, bo uwzględnia fakt, że liczby sa kolejne i wykorzystuje to do rozpoznawania klucza winksmiley.jpg A tu chodzi o odwrócenie tablicy jak mniemam zwyczajne. Równie dobrze mogłem napisać
  1. for($i=0; $i<10; $i++)
  2. $tablica[$i] = $i+1;
i efekt byłby identyczny biggrin.gif
Pytanie do tvistera. Czy pętlę while i for można traktować zamiennie? Bo z tego co mi wiadomo dobry lub prosty algorytm pozostawia swobodę do takiej zamiany. Stos zaś jak chcesz zastosować? Gdzie będziesz odkładac elementy, skoro zabronione jest użycie drugiego typu tablicowego a $n może być jedynie skalarem w domyśle? Równie dobrze i szybko bym mógł zrobić:
  1. while ($n[] = array_pop( $tablica ) ) {}

i to by dopiero była szybka piłka winksmiley.jpg Problemem tego zadania jest zrobienie funkcji "swap" tak naprawdę by tylko z 1 zmiennej korzystała. Mogę chyba przecież odczytać klucz tego elementu funkcją key() czy przesunąć wskaźniki z użyciem next() skoro zmienna iterująca jest zabroniona. Bo jakoś po tej tablicy muszę się poruszać, a zmienna pomocnicza MUSI zawierać element tymczasowy smile.gif To zaś wymusza użycie while lub foreach. A skoro mamy
foreach( $tablica AS $value)
to też musimy jakoś inaczej obejść brak iteratora. Bo inaczej tablica (1,3,5,7,9,2,4,6,8,10), czyli nieuporządkowana zrobi nam według kodu bloo (10,9,8,7,6,5,4,3,2,1) i tak, więc to nie jest rozwiązanie. tu trzeba przynajmniej funkcji key użyć:
  1. foreach( $tablica AS $n ) {
  2. if( $key() > floor( count($tablica)/2 ) )
  3. break;
  4. $tablica[ key() ] = $tablica[ count($tablica)-key()-1 ];
  5. $tablica[ count($tablica)-key()-1 ] = $n;
  6. }


EDIT: break jest by w połowie się zakończyła, bo inaczej podwójnie całą tablice odwrócimy, a więc wrócimy do punktu wyjścia biggrin.gif
EDIT2: napisałem też o next(), ponieważ while też MUSI jakoś przechodzić po kolejnych elementach tablicy a $n nie może być do tego celu użyte. Różnica pomiędzy while i foreach to tak naprawdę "tylko" fakt, że ten drugi będzie miał next() "wbudowany" w siebie, podczas gdy while będzie go musiało wywoływać jawnie, a konstrukcja będzie wyglądać tak:
  1. reset( $tablica );
  2. while( $n = current() ){
  3. if( $key() > floor( count($tablica)/2 ) )
  4. break;
  5. $tablica[ key() ] = $tablica[ count($tablica)-key()-1 ];
  6. $tablica[ count($tablica)-key()-1 ] = $n;
  7. next($tablica);
  8. }


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
blooregard
post
Post #21


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Dzięki Panowie za zmieszanie mnie z błotem, ale w zadaniu NIGDZIE nie jest napsiane, że chodzi o zamianę elementów w tablicy o DOWOLNEJ liczbie DOWOLNYCH elementów, jest podana konkretna tablica.
Cytat
Pytania:
Zmienić kolejność elementów tablicy, mając jedną zmienną pomocnicza "n", bez użycia dodatkowych zmiennych tablicowych! (w pętli, nie za pomocą gotowej funkcji)

[PHP] pobierz, plaintext
$aTab = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
$n;

Cytat
Pożądany wynik: 10, 9, 8, 7, ... 2, 1

Tak?
Czy może ja nie umiem czytać?


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Spawnm
post
Post #22





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Bloo , jesteś mało kreatywny tongue.gif
Go to the top of the page
+Quote Post
blooregard
post
Post #23


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
Bloo , jesteś mało kreatywny

To kwestia interpretacji treści zadania.
Jeśli się ze mną nie zgadzacie, proszę, wskażcie mi, w którym miejscu źle je zrozumiałem.



--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
thek
post
Post #24





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Nikt Cię bloo nie zmieszał. Ot wspomnieliśmy, że Twoje rozwiązanie jest prawdziwe tylko dla określonego przypadku i w większości innych nie zda egzaminu. Popatrz na mój post gdzie zamieniłem elementy tablicy i jaki wynik otrzymam w efekcie użycia Twojego algorytmu. To dalekie od odwrócenia kolejności elementów niestety. Ja to zrobiłem na 2 zmiennych początkowo bo dla mnie iterator w for nigdy nie był zmienną "istotną", ale skoro mi go wytknięto to go "usunąłem" przerobiwszy nieco funkcję by korzystała na bieżąco z key(), który ów iterator mi zwraca. Dla mnie nie jest to optymalne rozwiązanie bo mam użycie key() czy count() w jednym przebiegu i wolałbym to pchnąć do osobnych zmiennych dla szybkości działania. Ale jak mus to mus winksmiley.jpg


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
perhydrol
post
Post #25





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

Ostrzeżenie: (0%)
-----


No dokładnie, nie trafiło mi się nic co by było jakieś super ambitne hehehe

Zadającemu to przykładowe zadanie chodziło dokładnie o takie rozwiązanie zadania:

  1. for( $i = 0; $i<floor( count($tablica)/2 ); $i++ ) {
  2. $n = $tablica[$i];
  3. $tablica[$i] = $tablica[ count($tablica)-$i ];
  4. $tablica[ count($tablica)-$i ] = $n;
  5. }


Jeśli natomiast chodzi o sformułowanie treści zadania, to miałem podobny problem, bo przyjąłem że chodzi o konkretną tablicę, ale szybko mnie uświadomiono, że nie jest tak.


-dzięki za zainteresowanie, pozdrawiam smile.gif
Go to the top of the page
+Quote Post
thek
post
Post #26





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




No kurna... Moje pierwsze rozwiązane jakie tu podałem. Na dodatek z małym błędem. Zapomniałem że tam gdzie jest count($tablica)-$i ma być jeszcze -1 by się indeksy zgadzały smile.gif Inna sprawa, że jak wspomniano $i to już 2 zmienna pomocnicza tongue.gif A więc przedostatni mój post jest tak naprawdę prawidłowy.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
nasty
post
Post #27





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Thek, lepiej by było jakbyś zliczanie elementów tablicy wyciągną gdzieś na zewnątrz a nie zliczał jej długość przy każdej iteracji.
Go to the top of the page
+Quote Post
blooregard
post
Post #28


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
Jeśli natomiast chodzi o sformułowanie treści zadania, to miałem podobny problem, bo przyjąłem że chodzi o konkretną tablicę, ale szybko mnie uświadomiono, że nie jest tak.

Ja nie miałem takiego szczęścia.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
phpion
post
Post #29





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@blooregard:
Może nie zostało to jasno napisane, ale możliwe, że było to zrobione z premedytacją. W tym momencie pracodawca może ocenić w jaki sposób pojmujesz stawiane przed Tobą zadania. Czy podchodzisz do nich do bólu "indywidualnie", czy starasz się rozwiązać je w sposób przemyślany i bezpieczny. Pomyśl, że szef zleca Ci (już jako pracownikowi) dokładnie takie zadanie jak dostał autor tematu na rozmowie, dokładnie tak samo sformułowane - po prostu przesyła Ci maila od klienta. Oddając kod, który będzie działał tylko i wyłącznie w określonym (przykładowym) przypadku raczej nie uradujesz szefa winksmiley.jpg
Go to the top of the page
+Quote Post
blooregard
post
Post #30


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Tak, tak, wiem.

Tylko zauważ, że w treści jest jasno napisane: żadnych funkcji, jedna zmienna pomocnicza, a tu co mamy?
@perhydrol:
Cytat
Zadającemu to przykładowe zadanie chodziło dokładnie o takie rozwiązanie zadania:

Po czym okazuje się, że prawidłowe rozwiązanie zawiera FUNKCJĘ count() i DWIE zmienne pomocnicze $i i $n.
A nie da się napisać algorytmu zamieniającego miejscami elementy tablicy bez użycia co najmniej jednej dodatkowej (poza $i - indeksem tablicy) zmiennej, tej, w ktrej jest przechowywana tymczasowa wartość elementu.
Tak samo nie da się w PHP bez użycia f-cji count() sprawdzić ilości elementów tablicy.

Więc zadanie zostało źle sformułowane (wg. mnie):
Cytat
Zmienić kolejność elementów tablicy, mając jedną zmienną pomocnicza "n", bez użycia dodatkowych zmiennych tablicowych! (w pętli, nie za pomocą gotowej funkcji)

No kurde, wyraźnie jest - jedna zmienna i bez użycia funkcji.

Ale OK, wyszedłem na idiotę, podając rozwiązanie godne działu "Przedszkole", nie mam Wam za złe, możecie sobie po mnie jeździć, ile wlezie. Ja jednak będę uparcie obstawiał przy mojej wersji interpretacji TREŚCI zadania.



--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
phpion
post
Post #31





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




No już nie popadajmy w paranoję. Wydaje mi się, że zakaz użycia funkcji tyczył array_reverse, a nie jakiejkolwiek funkcji*.

Cytat(blooregard @ 12.03.2010, 15:00:00 ) *
Tak samo nie da się w PHP bez użycia f-cji count() sprawdzić ilości elementów tablicy.

foreach() oraz $licznik++ smile.gif

* bingo!
Cytat
Zmienić kolejność elementów tablicy, mając jedną zmienną pomocnicza "n", bez użycia dodatkowych zmiennych tablicowych! (w pętli, nie za pomocą gotowej funkcji)


Ten post edytował phpion 12.03.2010, 15:13:36
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #32





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@blooregard - co Ty się tak przejmujesz? biggrin.gif


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
thek
post
Post #33





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Cytat(nasty @ 12.03.2010, 14:36:17 ) *
Thek, lepiej by było jakbyś zliczanie elementów tablicy wyciągną gdzieś na zewnątrz a nie zliczał jej długość przy każdej iteracji.
I stworzył dodatkową zmienną, której nie mogłem według warunków zadania utworzyć winksmiley.jpg Popatrz nasty na treść i powiedz jak mając tylko jedną zmienną, zrobić to zadanko inaczej. Nie mogłem sobie wyskoczyć na zewnątrz z tą zmienną bo bym utworzył drugą zmienną. To samo tyczyło się licznika. Utworzenie go byłoby kolejną zmienną.

I do tego momentu popieram oraz bronię blooregarda. Miała być jedna i będzie jedna zmienna. Nie zgodzę się jednak z nim co do funkcji. Ja to odebrałem jako brak możliwości skorzystania z gotowej funkcji, która zrobi to nam od razu, a więc array_reverse, a nie wszystkich funkcji tablicowych. I tu popieram phpiona.

Stąd zastosowałem w swoim przykładzie key() i count() w wersji poprawionej. Spełnia ona dokładnie warunki zadającego pytanie. Dokładnie jedna zmienna pomocnicza, gdyż reszta liczona na bieżąco. Wiem, że jest to nieoptymalne, ale takie były wymagania. I za to, że koleś powiedział o jednej, a użył dwóch bym go opierniczył smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
perhydrol
post
Post #34





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.12.2006

Ostrzeżenie: (0%)
-----


Dociekliwi do bólu widzę biggrin.gif


Cytat
Zmienić kolejność elementów tablicy, mając jedną zmienną pomocnicza "n", bez użycia dodatkowych zmiennych tablicowych! (w pętli, nie za pomocą gotowej funkcji)

tak dla sprostowania, przepraszam że po raz kolejny słabo sprecyzowałem treść (w pętli, nie za pomocą gotowej funkcji),
aczkolwiek taką dokładnie treść sam dostałem,

oczywiście pierwsze co zaproponowałem jako rozwiązanie zadania to użycie funkcji reverse _array();
szybko jednak zostałem uświadomiony, że nie tędy droga tongue.gif

smile.gif
Go to the top of the page
+Quote Post
SHiP
post
Post #35





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Myślę ze przy takiej tablicy daloby sie to nawet zrobic bez zmiennej $n. Wystarczy dwie pętle while dac...

Ten post edytował SHiP 17.03.2010, 22:50:07


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
Kocurro
post
Post #36





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


A co powiecie na to? smile.gif

  1. $aTablica = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 );
  2.  
  3. for ( $n = 0; $n < count( $aTablica ) / 2; $n++ ) {
  4. $aTablica[$n] = $aTablica[$n] + $aTablica[count( $aTablica ) - $n];
  5. $aTablica[count( $aTablica ) - $n] = $aTablica[$n] - $aTablica[count( $aTablica ) - $n];
  6. $aTablica[$n] = $aTablica[$n] - $aTablica[count( $aTablica ) - $n];
  7. }


Użyta jest tylko jedna zmienna pomocnicza - jeśli bardzo chcecie to macie wersje hardcore:

  1. $aTablica = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 );
  2.  
  3. reset ( $aTablica );
  4.  
  5. while ( key( $aTablica ) < count( $aTablica ) / 2 ) {
  6. $aTablica[key( $aTablica )] = $aTablica[key( $aTablica )] + $aTablica[count( $aTablica ) - key( $aTablica )];
  7. $aTablica[count( $aTablica ) - key( $aTablica )] = $aTablica[key( $aTablica )] - $aTablica[count( $aTablica ) - key( $aTablica )];
  8. $aTablica[key( $aTablica )] = $aTablica[key( $aTablica )] - $aTablica[count( $aTablica ) - key( $aTablica )];
  9.  
  10. next ( $aTablica );
  11. }


Wersja hardcore nie używa żadnej zmiennej poza tablicą biggrin.gif

Nie sprawdzałem czy wersja hard core dobrze działa - czas pisania wersji hardcore 3 minuty, wersji zwykłej około minuty ...

Pozdrawiam serdecznie,
Łukasz

--- edit ---

Wersja hardlama smile.gif

  1. $aTablica = array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 );
  2.  
  3. $aTablica[count( $aTablica )] = 0;
  4.  
  5. while ( $aTablica[count( $aTablica ) - 1] < ( count( $aTablica) - 1 ) / 2 ) {
  6.  
  7. $aTablica[$aTablica[count( $aTablica ) - 1]] = $aTablica[$aTablica[count( $aTablica ) - 1]] + $aTablica[count( $aTablica ) - $aTablica[count( $aTablica ) - 1]];
  8. $aTablica[count( $aTablica ) - $aTablica[count( $aTablica ) - 1]] = $aTablica[$aTablica[count( $aTablica ) - 1]] - $aTablica[count( $aTablica ) - $aTablica[count( $aTablica ) - 1]];
  9. $aTablica[$aTablica[count( $aTablica ) - 1]] = $aTablica[$aTablica[count( $aTablica ) - 1]] - $aTablica[count( $aTablica ) - $aTablica[count( $aTablica ) - 1]];
  10.  
  11. $aTablica[count( $aTablica ) - 1]++;
  12. }
  13.  
  14. unset( $aTablica[count( $aTablica ) - 1] );


Czas pisania tej wersji - 3 minuty na przerobienie wersji podstawowej, tutaj nie używam żadnej funkcji z wyjątkiem count, while i unset (ale je można przyjąć za element języka) biggrin.gif Już bardziej nie wiem jak to zakombinować. Oczywiście mogą tutaj być błędy natury błędnego przepisania - śpieszyłem się bardzo.

Ten post edytował Kocurro 18.03.2010, 13:00:08
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 09:45