Tomarek
23.06.2015, 10:30:53
Hej
Piszę do was z prośbą o pomoc w ogarnięciu 4 zadań na zaliczenie z php.
Ogólnie studiuje grafikę i nie jest mi potrzebne programowanie(nie wiążę z nim przyszłości).
Mogę liczyć na rozwiązanie problemu wraz z komentarzami?
Jeśli ktoś będzie mieć problem na tle graficznym z chęcią pomogę smile.gif
W razie czego mogę zapłacić. Piszcie na priv.
Pyt:
ćwiczenie 1
Wyobraź sobie, ze jesteś właścicielem hurtowni. Napisz instrukcję warunkową,
która policzy rabat dla klienta w zależności od kwoty, za jaką nabywa towar.
Skrypt ma być napisany w języku PHP.
0-250 zł - rabat 2%
250 - 500 zł - rabat 4%
powyżej 500zt - rabat 6%
np.
if ($kwota>500) $rabat=0.06;
elseif ($kwota>250) $rabat=0.04;
//itd.
$kwota=$kwota*(1+$rabat);
ćwiczenie 2
Napisać funkcją o nazwie ZamienLiczbyJesliTrzeba (o 2 parametrach: $liczba1, $liczba2), która
zamienia między sobą
wartościparametrów $liczba1 i $liczba2, jeśli tylko $liczba1 jest większa od
$liczba2.
ćwiczenie 3
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 $zakres1 jest mniejsze lub równe $zakres2 - jeęli nie, to
należy zamienić między sobą obie liczby (wykorzystać funkcję z Zad. 2).
ćwiczenie 4
Napisać funkcję o nazwie ListaLiczb (o 3 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. 3.
Dodatkowo, jeśli $ilosc nie jest większa od zera, to wyświetlić komunikat o błędzie ("Ilość
elementów w tablicy musi być większa od 0.") i przerwać działanie funkcji.
Ostatecznie funkcja wyświetla liczby z tablicy w postaci listy nienumerowanej.
rad11
23.06.2015, 10:36:42
<form method="POST">
<input name="price"/>
<input type="submit" name="calculate_price"/>
</form>
<?php
//ad.1
if (isset($_POST['calculate_price'])) { $price = (int) $_POST['price'];
$kwota = 0;
if ($price > 0 && $price <= 250) {
$rabat = 0.02;
$kwota = $price * (1 + $rabat);
} else if ($price > 250 && $price <= 500) {
$rabat = 0.04;
$kwota = $price * (1 + $rabat);
} else if ($price > 500) {
$rabat = 0.06;
$kwota = $price * (1 + $rabat);
}
}
echo '<br/>------------------------------------------------<br/>'; //ad.2
function ZamienLiczbyJesliTrzeba($liczba1, $liczba2) {
if ((int) $liczba1 > (int) $liczba2) {
$liczba2 = $liczba1;
}
return $liczba2 . '<br />';
}
echo ZamienLiczbyJesliTrzeba
(3
, 2
); echo '<br/>------------------------------------------------<br/>'; //ad.3
function SumaLiczb($zakres1, $zakres2) {
$sum = 0;
if ((int) $zakres1 >= (int) $zakres2) {
$zakres2 = ZamienLiczbyJesliTrzeba($zakres1, $zakres2);
for ($i = (int) $zakres1; $i < (int) ($zakres2 + 1); $i++) {
$sum += $i;
}
} else {
for ($i = (int) $zakres1; $i < (int) ($zakres2 + 1); $i++) {
$sum+=$i;
}
}
return $sum;
}
echo '<br/>------------------------------------------------<br/>'; //ad.4
function ListaLiczb($zakres1, $zakres2, $ilosc) {
if($ilosc <= 0){
return '<br />Ilosc musi byc wieksza niz 0<br />';
}
if ((int) $zakres1 >= (int) $zakres2) {
// $zakres2 = ZamienLiczbyJesliTrzeba($zakres1, $zakres2);
for ($i = 0; $i < (int) $ilosc; $i++) {
$tab[] = rand((int
) $zakres2, (int
) $zakres1); }
} else {
for ($i = 0; $i < (int) $ilosc; $i++) {
$tab[] = rand((int
) $zakres1, (int
) $zakres2); }
}
$list = '<ul style="padding:0; margin:0;">';
foreach($tab as $key => $value){
$list .= '<li style="list-style:none;">'.$value.'</li>';
}
$list .= '</ul>';
return $list;
}
echo ListaLiczb
(5
, 10
, 10
); echo '<br/>------------------------------------------------<br/>';
Powinno dzialac z palca pisane piwo dasz przy okazji
Pyton_000
23.06.2015, 10:47:06
function ZamienLiczbyJesliTrzeba($liczba1, $liczba2) {
if ((int) $liczba1 > (int) $liczba2) {
$liczba2 = $liczba1;
}
return $liczba2 . '<br />';
}
Zamiast pisać takie bzdury to lepiej nie pisz wcale
daWeb
23.06.2015, 10:49:31
rad11, w pierwszym rozwiązaniu łamiesz zasadę DRY, jak dla mnie słabe 3
Tomarek
23.06.2015, 11:59:52
O kurczę dzięki!!!
Ja wiem że dla was to banalne i się dopatrujecie tutaj czegoś więcej, ale dla mnie to na prawdę potrzebne jest by zaliczyć.
Sądzę że wykładowca nie będzie się czepiać tego że "łamię zasadę DRY"(sprawdziłem co to znaczy).
Tylko Pyton_000 napisał że w zad.2 jest jakiś duży błąd. Czy mógłbym liczyć na jego poprawienie?
Jak tylko będę w domu sprawdzę wszystkie programy.
ctom
23.06.2015, 12:36:07
@Tomarek tak z czystej ciekawości ... co Ty odpowiesz gdy dostaniesz pytanie w stylu "dlaczego tak, a nie inaczej"
Tomarek
23.06.2015, 13:24:10
każdą linijkę sobie opiszę komentarzem. Zawsze znajdę w necie co jaka komenda znaczy. A jeśli zapyta mnie o coś czego nie wiem to będę lać wodę że kolega mi pomógł troszkę a to coś innego. Wątpię żeby chciał mnie męczyć szczególnie, że tak jak mówiłem ten przedmiot nie jest kierunkiem wiodącym.
Oczywiście dobrze by było się nauczyć phpa szczególnie że znam html5, css'a (stawiam strony na gotowych systemach). Ale puki co wiedz która dysponuje starcza mi.
Dlatego poprosiłem was o taką pomoc, tak jak poniżej kolega zrobił to w 3 min. Ja bym nawet przez tydzień tego nie zrobił, a mam jeszcze przedmioty wiodące takie jak grafika.
Proszę o wyrozumiałość
daWeb
23.06.2015, 14:15:00
2 jest dobra i tak nie wiemy co ma się stać z tymi zamienionymi wartościami, więc zamiast $liczba2 = $liczba1; daj echo 'zamieniłem wartości liczb'; a linię z return usuń.
kreatiff
23.06.2015, 14:24:26
To 2 to mi wygląda na jakąś zabawę z global wewnątrz funkcji, bo inaczej jak to zwrócić sensownie.
Ale uczyć czegoś takiego dzisiaj to chyba nie jest już wskazane, więc pewnie się mylę.
No tak, i wszystko jasne poniżej.
redeemer
23.06.2015, 14:28:02

W zadaniu 2 chodzi o to, żeby argumenty do funkcji były przekazane
przez referencje, a nie "globale" czy "co się ma stać z zamienionymi wartościami".
daWeb
23.06.2015, 16:20:15
Cytat(redeemer @ 23.06.2015, 15:28:02 )


W zadaniu 2 chodzi o to, żeby argumenty do funkcji były przekazane
przez referencje, a nie "globale" czy "co się ma stać z zamienionymi wartościami".
Nie zgodzę się, bo gdzie masz napisane słowo kluczowe "zmienna" w zadaniu?
co jak wywołam funkcję z referencją na parametrach w taki sposób ZamienLiczbyJesliTrzeba(5, 2) ? error?
buliq
23.06.2015, 17:05:44
@up:
A w jaki sposób ma zamienić liczby miejscami?
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.