Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> ile czego ?
invx
post
Post #1





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


nei mam zajawki jak to wykonac:
- wprowadzam dane liczbowe, np z pliku txt.
- sprawdzam ile zostao wpisanych jakich cyfr

macie jakies wskazowki jak sie do tego zabrac ?


--------------------
RCXcms
www.rcx.prv.pl
Pierwszy polski w pełni zintegrowany system portal
Go to the top of the page
+Quote Post
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


  1. <?php
  2.  $ilosc_znakow = count_chars((string)$dane_z_pliku);
  3. print_r($ilosc_znakow);
  4. ?>


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
invx
post
Post #3





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


ale to trzeba konkretnie ile 1 ile 2 ile 3 ile 4 ile 5 ile 6 ile 7 ile 8 ile 8 i ile 0


--------------------
RCXcms
www.rcx.prv.pl
Pierwszy polski w pełni zintegrowany system portal
Go to the top of the page
+Quote Post
NuLL
post
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


A czy ty moze zagladasz do manuala ? dry.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
mike
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Za koleje pytanie, z którym można sobie poradzić przeszukując funkcje z manuala, dostaniesz ostrzeżenie.
substr_count

  1. <?php
  2.  
  3. for( $i = 0; $i <10; $i++ )
  4. {
  5. echo substr_count( $text_do_przeszukania, $i );
  6. }
  7.  
  8. ?>
Go to the top of the page
+Quote Post
NuLL
post
Post #6





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


mike_mech - a ty patrzales co robi ta funkcja ? snitch.gif count_chars zwraca tablice z iloscia wystapien kazdego znaku.

29 sekund szybciej biggrin.gif

Ten post edytował NuLL 26.10.2005, 13:46:39


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
kszychu
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(invx @ 2005-10-26 13:35:14)
ale to trzeba konkretnie ile 1 ile 2 ile 3 ile 4 ile 5 ile 6 ile 7 ile 8 ile 8 i ile 0

Sprawdziłeś jak zadziała to, co Ci podałem? Nie zastanowiło Cię po co do prezentacji wyników użyłem print_r() a nie echo?..
W manualu, przy funkcji count_chars() masz bardzo ładny przykład. Trochę samodzielności!

mike_mech: to raczej nie zadziała tak jak trzeba.

I jeszcze komentarz do mojego przykładu. Faktycznie jest on trochę... hmmm.... nadmiarowy biggrin.gif bo zostanie wyświetlona tablica wszystkich znaków z ilością ich wystąpienia (dla większości będzie to 0). Należy jeszcze potraktować ją warunkiem !=0. Ale to wszystko jest w manualu!


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
mike
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Hmmm, może macie trochę racji. Mea culpa.

Ale jakby zrzutować to na stringa to może zadziała.
Niestety nie mam jak w tej chwili sprawdzić :/

Jeśli nie zadziała to przepraszam za wprowadzenie w błąd.

Choć z drugiej strony @invx mógłbyś wreszcie zacząć używać manuala i swojej głowy.
Go to the top of the page
+Quote Post
invx
post
Post #9





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


dalej mi to niebardzo odpowiada, mam to napisac nie uzywajac funkcji - mam takowa funkcje stworzyc tongue.gif


--------------------
RCXcms
www.rcx.prv.pl
Pierwszy polski w pełni zintegrowany system portal
Go to the top of the page
+Quote Post
kszychu
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Będziesz tak po kolei mówił, że to ci nie odpowiada bo zawiera pętle a ty masz bez pętli...
Opisz żesz jakie masz założenia!


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
NuLL
post
Post #11





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Ehhhh...
  1. <?php
  2.  
  3. function zbadaj_stringa($string)
  4. {
  5. $ilosci=array();
  6. $c=count($string);
  7. for($i=1;$i<=$c;$i++) $ilosci[$string{$i}]++;
  8.  
  9. return $ilosci;
  10. }
  11.  
  12. ?>

winksmiley.jpg


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
invx
post
Post #12





Grupa: Zablokowani
Postów: 655
Pomógł: 0
Dołączył: 28.11.2003
Skąd: Zagórz

Ostrzeżenie: (80%)
XXXX-


mam napisac funkcje, ktora z podanego ciagu znakow, lub pliku textowego, pobierze dane, i zwruci ile jest jakich cyfr . Nie wiedzialem ze taak funkkcja istnieje w php, wiec nie napisalem ze mam sam funckje stworzyc tongue.gif


--------------------
RCXcms
www.rcx.prv.pl
Pierwszy polski w pełni zintegrowany system portal
Go to the top of the page
+Quote Post
mike
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


  1. <?php
  2.  
  3. function FunkcjaDlaLeniPatentowanych( $strText )
  4. {
  5. $arrTab = array_fill( 0, 10, 0 );
  6. for( $i = 0, $last = strlen( $strText ); $i < $last; $i++ )
  7. {
  8. $arrTab[ (int)$strText{$i} ]++;
  9. }
  10. return $arrTab;
  11. }
  12.  
  13. ?>


Nie gwarantuję że zadziała bo piszę "z palca" na kompie bez php :/
Go to the top of the page
+Quote Post
kszychu
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


@Null, @mike_mech: fragment $ilosci[$string{$i}]++ w ważysz przykładach wywali notice w przypadku, gdy tego pola jeszcze nie będzie. Dobrze byłoby dać:
  1. <?php
  2.  
  3. if(isset($ilosci[$string{$i}])) $ilosci[$string{$i}]++;
  4. else $ilosci[$string{$i}] = 1;
  5. ?>


Zgadzam sie - NuLL


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
mike
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(kszychu @ 2005-10-26 15:26:39)
@Null, @mike_mech: fragment $ilosci[$string{$i}]++ w ważysz przykładach wywali notice w przypadku, gdy tego pola jeszcze nie będzie.

No właśnie zabezpieczyłem się przed tym dając:
  1. <?php
  2.  
  3. $arrTab = array_fill( 0, 10, 0 );
  4.  
  5. ?>
Go to the top of the page
+Quote Post
NuLL
post
Post #16





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


mike_mech - indexy sa inne - my z Kszychem zapisujemy wg znaku ty natomiast jak ASCII numer znaku. - pozatym twoj tez wywali notice'y jakoze tablica ASCII jest wieksza niz 9.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
kszychu
post
Post #17





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


NuLL: nie nie, teraz już nie ma potrzeby wypełniać całej tablicy ASCII, wystarczy 10 pol od 0 do 9. I nie muszą to być kody ASCCI jako indeksy, mogą być cyfry zliczane.
Przykład mike'a jest bardzo fajny. Gdyby dało się ominąć count() to już w ogóle byłoby bez funkcji ;-)


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
mike
post
Post #18





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(kszychu @ 2005-10-26 15:37:41)
Gdyby dało się ominąć count() to już w ogóle byłoby bez funkcji ;-)

1. No właśnie count() było błędem, zmieniłem na strlen();
2. Ale fakt faktem, jedna funkcja zostaje :/ A raczej dwie bo jeszcze jest array_fill(), choć tą można wyeleminować instrukcją warunkową.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #19





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


  1. <?php
  2. function FunkcjaDlaLeniPatentowanych2( $strText )
  3. {
  4.     $arrTab = array_fill( 0, 9, 0 );
  5.     $i = 0;
  6.     foreach( $strText as $element )
  7.     {
  8.         $arrTab[ (int)$element ]++;
  9.         $i++;
  10.     }
  11.     return $arrTab;
  12. }
  13. ?>

smile.gif
// EDIT: dodane $element, LOL zapomnialem o array_fill tongue.gif

Ten post edytował dr_bonzo 26.10.2005, 14:43:15


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
mike
post
Post #20





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


@dr_bonzo Twoje rozwiązanie ma jedną wadę:
Cytat
Warning: Invalid argument supplied for foreach() in /home/site/10846/www/test.php on line 6

Nie można w php5 traktować stringów jak tablice w sposób w jaki Ty to zrobiłeś tongue.gif
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: 19.08.2025 - 20:36