glazi91
14.02.2012, 21:10:22
Witam,
Jestem studentem I roku i mam problem z podstawami programowania w PHP. Męczę się z tym już ponad 2 tygodnie i dalej mi ciężko to zrozumieć. Więc jak ktoś mógłby spojrzeć na te zadania byłbym bardzo wdzięczny.:-)
zad.1
Napisać funkcję o nazwie SumaLiczb (o 2 parametrach: $zakres1, $zakres2), która zwraca sumę liczb z zakresu od $zakres1 do $zakres2 (włącznie).
Należy przy tym najpierw sprawdzić, czy $zakres 1 jest mniejsze lub równe $zakres2- jeśli nie, to należy zamienić między sobą obie liczby (wykorzystać funkcję z Zad 1). Pierwsze zadanie zrobiłem tak:
function ZamienLiczbyJesliTrzeba(&$liczba1, &$liczba2)
{
if($liczba1 > $liczba2)
{
$tmp = $liczba1;
$liczba1 = $liczba2;
$liczba2 = $tmp;
echo "zamienilem ";
}else{
echo "nie zamienilem ";
}
}
zad 3
Napisać funkcję o nazwie ListaLiczb o parametrach: $zakres1, $zakres2, $ilosc wczytujący do utworzonej wewnątrz funkcji tablicy $tab losowe liczby całkowite z zakresu od $zakres1 do $zakres2 w ilości $ilosc.
Zweryfikować zmienne $zakres1 i $zakres2 podobnie jak w zad 2
Dodatkowo, jeśli $ilosc nie jest większa od zera, to wyświetlić komunikat o błędzie i przerwać działanie funkcji.
Ostatecznie funkcja wyświetla liczby z tablicy w postaci listy nienumerowanej.
zad 4
Napisać funkcję o nazwie WyswietlLiczby_ObliczSrednia o 4 parametrach($ilosc1 $ilosc2 $zakres1 $zakres2) wczytując do tablicy $tab utworzonej wewnątrz funkcji losową ilość liczb(ilosc elementów od $ilosc1 do $ilosc2).
Każdy element tablicy ma być losową liczbą z zakresu od $zakres1 do $zakres2.
Następnie funkcja ma wyświetlić te liczby w tabeli o grubości linii 1 (tylko pojedyncza kolumna).
Ostatecznie funkcja ma zwrócić średnią arytmetyczną liczb z tej tablicy.
Resztę zadań spróbuje zrobić sam jak pomożecie mi zrobić te, to z resztą powinienem sobie poradzić tylko potrzebuje zobaczyć jak to zacząć.
Z góry dziękuje wam za pomoc.:-)
Pozdrawiam,
Kshyhoo
14.02.2012, 21:13:03
Niestety, nie rozwiązujemy zadań. Jak masz problem z kodem, to zapraszamy.
glazi91
14.02.2012, 21:18:46
jak prześle kody tych zadań jak ja zrobiłem (oczywiscie nie do końca dobrze) to pomożecie?:-)
Kshyhoo
14.02.2012, 21:20:40
Możemy pomóc, ale nikt nie zrobić nic za Ciebie.
glazi91
15.02.2012, 17:40:39
ok. to jutro prześle kody bo mam na innym komputerze.
Pozdrawiam
to zad 1
Kod
<?php
function ZamienLiczbyJesliTrzeba(&$liczba1, &$liczba2)
{
if($liczba1 > $liczba2)
{
list($liczba1, $liczba2) = array($liczba2, $liczba1);
echo "zamienilem ";
}
else
{
echo "nie zamienilem ";
}
}
?>
zad 2
<?php
function SumaLiczb(&$Zakres1, &$Zakres2)
{
if($Zakres1<=$Zakres2)
{
$suma=$Zakres1+$Zakres2;
echo "Dodalem";
}
else
{
ZamienLiczbyJesliTrzeba(&$Zakres1, &$Zakres2);
$suma=$Zakres1+$Zakres2;
echo "Zamienilem liczby i dodalem";
}
return $suma;
}
?>
zad 3
<?php
function ListaLiczb($Zakres1, $Zakres2, $ilosc)
{
$Zakres1=rand(-10,10);
$Zakres2=rand(-10,10);
$tab[]=array($Zakres1, $Zakres2);
$ilosc=count($tab);
if($ilosc<0)
{
echo" Ilosc elementow w tablicy musi byc wieksza od 0.";
return;
}
else
{
//nie wiem jak wywolac liste nienumerowana.
}
}
?>
zad 4
<?php
function DzielenieTekstow($wyrazenie_zlozone)
{
$wyrazenie_zlozone = 'Komputer,Serwer,Router,Klawiatura,Mysz,Karta sieciowa,Monitor,Zasilacz';
echo "$wyrazenie_zlozone<br/>";
$wyrazenie_zlozone = explode(',', $wyrazenie_zlozone);
for($i = 0; $i < count($wyrazenie_zlozone); $i++)
{
echo "$wyrazenie_zlozone[$i]";
}
}
?>
I wiem ze to zle...ale nie wiem w czym tkwi problem:)
nospor
15.02.2012, 17:45:00
1)
Temat: Jak poprawnie zatytulowac watek2) Proszę używać bbcode!
3)
Cytat
I wiem ze to zle...ale nie wiem w czym tkwi problem:)
A czymże się objawia to źle?
glazi91
15.02.2012, 17:47:07
objawia się tym że nie zaliczyłęm U wykładowcy:P
i przepraszam ze nie napisalem tamtego w BBcode:)
nospor
15.02.2012, 17:51:11
$tab[]=array($Zakres1, $Zakres2);
$ilosc=count($tab);
if($ilosc<0)
Zawsze do tablicy dodajesz dwie liczby i jeszcze robisz warunek, czy przypadkiem tablica nie mniej niż 0 elementów? Logike już miałeś na tych studiach?
ps: $tab[]=array
wiesz w ogole po co używa się [] ? Nic dziwnego, że cię oblał. Przecież ty nie znasz totalnych podstaw. Najpierw się uczymy, potem chodzimy na zaliczenia
glazi91
15.02.2012, 17:52:51
Cytat
Dodatkowo, jeśli $ilosc nie jest większa od zera, to wyświetlić komunikat o błędzie i przerwać działanie funkcji.
programowanie dopiero zaczełem a to miało się odności do tej części zadania...przecież wiem że jest źle i właśnie chce się tutaj dowiedzieć co..
nospor
15.02.2012, 17:55:10
Ja sie nie pytalem o programowanie a o logike. To są dwa oddzielne przedmioty

Dobra, nie ważne. Napisałem tu tylko dlatego, że miałeś durny tytuł i nadal masz. Proszę na PW poprawny tytuł tematu, w przeciwnym wypadku temat zamknę.
glazi91
15.02.2012, 17:56:28
Cytat
ps: $tab[]=array
wiesz w ogole po co używa się [] ? Nic dziwnego, że cię oblał. Przecież ty nie znasz totalnych podstaw. Najpierw się uczymy, potem chodzimy na zaliczenia
W internecie czytałem ze służy do numerowania tablic czy cos takiego.
Kshyhoo
15.02.2012, 17:56:33
Cytat(glazi91 @ 15.02.2012, 17:47:07 )

objawia się tym że nie zaliczyłęm U wykładowcy:P
Mnie zawsze zastanawia powód obrania kierunku nauki. Ja wiem, że nie zostałem weterynarzem, bo nie lubię grzebać w zdechłych zwierzach a i w żywych byłoby gdzie pogrzebać - co mnie również nie interesuje...
Cytat(glazi91 @ 15.02.2012, 17:47:07 )

i przepraszam ze nie napisalem tamtego w BBcode:)
Istnieje funkcja

.
Po za tym, używaj odpowiedniego formatowania kodu (wcięcia, itp). Przypomnę też, że funkcja musi coś zwrócić, nie wszędzie o tym pamiętasz.
nospor
15.02.2012, 17:58:21
Cytat
). Przypomnę też, że funkcja musi coś zwrócić, nie wszędzie o tym pamiętasz.
Bo przekazuje parametry przez referencje.... Hehe, studencik okazał się mądrzejszy od starego wygi ;P Za karę rozwiązujesz mu zadania
Kshyhoo
15.02.2012, 18:01:21
Stary to może jestem, ale gdzie tam mi do wygi
glazi91
15.02.2012, 18:20:21
I nie ma nikogo kto może wytłumaczyć jakie robie błędy?
krzywy36
15.02.2012, 18:27:55
Po pierwsze wstawiaj kod w bbcode bo strasznie się to czyta, co do zadania z sumowaniem, załóżmy, że $zakres1 = 2 i $zakres2 = 5, jakie liczby masz tu zsumowac? podpowiem: 2, 3, 4 i 5, a Ty sumujesz 2 i 5, widzisz w czym problem? Zupdateuję zaraz post o następne zadania.
Edit: kolejne zadanie - lista, po pierwsze losujesz liczby od -10 do 10 a w zadaniu jest napisane, że ma losować od $zakres1 do $zakres2 (wiesz czym jest zakres?), potem sprawdzasz jaką wielkość ma tablica do której przypisałeś jakieś bzdety. $ilosc ustalasz przekazując parametr do funkcji i Twoja tablica z liczbami losowymi powinna mieć $ilość elementów, rozumiesz? Powinieneś użyć pętli która się wykona $ilość razy, i za każdym wykonaniem umieści w tablicy losową wartość z zakresu $zakres1 do $zakres2. Czytaj uważnie i ze zrozumieniem, te zadania nie są trudne.
glazi91
15.02.2012, 18:33:03
już wiem o co ci chodzi tylko jakiej funkcji mam użyć by dodać zakres od $zakres1 do $zakres2?
nospor
15.02.2012, 18:34:08
glazi91
15.02.2012, 18:40:22
Cytat
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
to z tego co rozumiem to mam zrobić coś takigo:
$zakres1 = 1 $zakres1;<=10; $zakres1++
$zakres2 = $zakres1 + $zakres2
?
właśnie to mi ciężko pojąć:/
krzywy36
15.02.2012, 18:42:38
wiesz czym są pętle i jak działają? w tym wypadku pętla for. Jestem pewien, że nie wiesz, więc zabierz się najpierw za to. Przeanalizuj poniższy kod:
<?php
$zakres1 = 2;
$zakres2 = 7;
for($i = $zakres1; $i <= $zakres2; $i++)
{
}
?>
w php nie ma jako takiej struktury definiującej zakres, ale powyższy kod wyświetla wszystkie liczby z podanego zakresu, poczytaj o pętlach.
glazi91
15.02.2012, 18:43:00
do zdania 4 to rozumiem że musi to być pętla foreach?
krzywy36
15.02.2012, 18:45:36
może, nie musi.
Edit:
btw, kod php wstawiaj w znaczniki php a nie code, ładniej wygląda
glazi91
15.02.2012, 18:51:28
dobra zaraz spróbuje poprawić zadanie 3 zobaczymy co wyjdzie..
jeszcze jedno pytanie
Bo chodzi o to że
$zakres1 i $zakres2 nie miały przypisane liczby bo wykładowa sprawdza te funkcje na swoim skrypcie
krzywy36
15.02.2012, 18:53:00
Przypisałem do nich przykładowe liczby, żebyś zrozumiał o co chodzi, skrypt będzie działał niezależnie od tego jakie wartości będą miały te zmienne.
glazi91
15.02.2012, 19:00:19
Kod
<?php
function SumaLiczb(&$Zakres1, &$Zakres2)
{
$i=rand($Zakres1,$Zakres2);
if($Zakres1<=$Zakres2)
{
$suma=$i;
echo "Dodalem";
}
else
{
ZamienLiczbyJesliTrzeba(&$Zakres1, &$Zakres2);
$suma=$i;
echo "Zamienilem liczby i dodalem";
}
return $suma;
}
?>
a tak jest dobrze?
krzywy36
15.02.2012, 19:09:20
a działa?...
przeanalizowałeś kod który napisałem? musisz ZSUMOWAĆ wylosowane liczby, a Twoja $suma to rand($zakres1, $zakres2).
Zrób tak:
1. Tworzysz pętlę która wykonuje się $ilość razy.
2. W pętli losujesz liczbę z zakresu od $zakres1 do $zakres2 i dodajesz ją do ogólnej sumy
3. Po pętli zwracasz sumę.
Prościej się nie da... powyższy algorytm nie przewiduje zamiany $zakres1 i $zakres2, ale jeśli napiszesz to tak żeby działało to z dodaniem zamieniania nie będzie problemu.
glazi91
15.02.2012, 19:12:15
<?php
function SumaLiczb(&$Zakres1, &$Zakres2)
{
$i=rand($Zakres1,$Zakres2);
if($suma = $zakres1; $suma <= $zakres2; $suma++)
{
echo "Dodalem";
}
else
{
ZamienLiczbyJesliTrzeba(&$Zakres1, &$Zakres2);
$suma= $zakres1; $suma <= $zakres2; $suma++;
echo "Zamienilem liczby i dodalem";
}
return $suma;
}
?>
czy tak? bo nie wiem jak dodac zakres do siebie wykorzystujac pętle bo jak zakres2 jest mniejszy to musze zamienic i dopiero dadac a jak wiekszy to dodać
krzywy36
15.02.2012, 19:14:46
nie, nie tak. Odpowiedź masz w moim poprzednim poście... CZYTAJ ZE ZROZUMIENIEM. Ja się poddaję, może komuś innemu się nudzi.
nospor
15.02.2012, 19:15:05
Proszono Cię wiele razy. Nie słuchasz, twoja sprawa.zamykam
Jak uznasz, że uzywanie poprawnego bbcode oplaca sie - zapraszam na PW
edit: otwieram
glazi91
15.02.2012, 20:18:12
function SumaLiczb(&$Zakres1, &$Zakres2)
{
if($i = $zakres1; $i <= $Zakres2; $i++);
{
}
else
{
ZamienLiczbyJesliTrzeba(&$Zakres1, &$Zakres2);
{
echo "Zamienilem liczby i dodalem"; }
}
return $i;
}
?>
co jeszcze trzeba tu zmienic:(
nospor
15.02.2012, 20:29:32
if($i = $zakres1; $i <= $Zakres2; $i++);
CO TO JEST?
Rozróżniasz IF od FOR?
Piszesz te posty co parę minut bez żadnego zastanowienia. strzelasz kodem na lewo i prawo z nadzieją, że może trafisz. Ty w ogóle nie kumasz co piszesz.
Forum jest od pomagania a nie od myślenia za Ciebie.
Ty jesteś albo niesamowity leń, albo niesamowita ciemna masa. Sorki, że tak piszę, ale może sie wkoncu otrząśniesz i się weźmiesz w garść.
Nie rozumiesz banalnego FOR? Nie rozumiesz jak to działa? To weź człowieku usiądź nad tym forem, popatrz na przykłady, przeanalizuj, zrób, potestuj, pozmieniaj parametry i zobacz co się dzieje. Jak ty chcesz coś zaliczyć jak ty tak prostych rzeczy nie rozumiesz. No my za ciebie nie będziemy myśleć.
piotrooo89
15.02.2012, 22:08:10
studiuje informatykę i nie mogę patrzyć jak kaleczysz programowanie... na 1 roku jest wstęp do programowania, proszę chodź na wykłady i laborki...
temat, zamykam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.