Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Trójkąt z gwiazdek - Pomocy, trójkąt z gwiazdek
aragorn280
post 6.10.2020, 13:27:53
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.10.2020

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


Napisałem taki kod, który tworzy trójkąt z gwiazdek ,ale nie wiem jak go obrócić. DOdatkowo jakby ktos umial zrobic że widoczne sa tylko krawedzie tego trójkąta. Dziękuje za pomoc

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>


<?php
$bok=$_POST['bok'];


function hop($bok){
for($i=1;$i<=$bok;$i++){
for($j=$i;$j<=$bok;$j++){
echo '*';

}
echo '<br>';

}

}
hop($bok)
?>

</body>
</html>
Go to the top of the page
+Quote Post
SmokAnalog
post 6.10.2020, 15:21:45
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Zadanko domowe? smile.gif

Obrócić w którą stronę?

Żeby było widać tylko krawędzie, zastanów się jaki if dać w środku, żeby wypluwać gwiazdki tylko dla skrajnych wartości.
Go to the top of the page
+Quote Post
aragorn280
post 6.10.2020, 15:39:35
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.10.2020

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


Obrócić do góry nogami
Go to the top of the page
+Quote Post
SmokAnalog
post 6.10.2020, 15:48:30
Post #4





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Spróbuj sam i daj znać jak idzie.
Go to the top of the page
+Quote Post
gino
post 6.10.2020, 16:08:53
Post #5





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


no i jak idzie ?
Go to the top of the page
+Quote Post
aragorn280
post 6.10.2020, 16:15:28
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.10.2020

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


Okej zrobiłem że jest przezroczysty środek ,ale nie mam pomysłu jak go obrócić

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>


<?php
$bok=$_POST['bok'];


function hop($bok){
for($i=1;$i<=$bok;$i++){
for($j=$i;$j<=$bok;$j++){
if($i==1 || $i==$bok){

echo '*&nbsp&nbsp';
}else if($j==$i || $j==$bok){
echo '*&nbsp&nbsp&nbsp';
}else {
echo '&nbsp&nbsp&nbsp&nbsp';
}


}
echo '<br>';

}

}
hop($bok)
?>

</body>
</html>
Go to the top of the page
+Quote Post
gino
post 6.10.2020, 16:17:18
Post #7





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


zmodyfikuj drugie for na to:

Kod
for($j=1;$j<=$i;$j++)


edit:

moim zdanie pierwsza funkcja działała lepiej

Ten post edytował gino 6.10.2020, 16:20:19
Go to the top of the page
+Quote Post
aragorn280
post 6.10.2020, 16:26:26
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.10.2020

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


Jasne chciałem tylko wypróbować 2 warianty wink.gif Dzięki za pomoc
Go to the top of the page
+Quote Post
SmokAnalog
post 6.10.2020, 16:35:57
Post #9





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Fajnie gino, że podsuwasz uczniowi gotowce. Dzięki tobie niczego się nie nauczy specool.gif
Go to the top of the page
+Quote Post
gino
post 6.10.2020, 17:01:36
Post #10





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


no dobrze Smoku, ale aragorn napisał, że nie ma pomysłu. Ale ok.
@aragorn warunek jest do przeróbki, dlatego pisałem, że wcześniejszy układ trójkąta lepiej mi się podobał. Pomyśl i przerób tak aby zostały tylko boki trójkąta z gwiazdek. Jeżeli napiszesz, że nie dasz rady to dam Ci rozwiązanie tego zadania. Tak dla wprawki.

Ten post edytował gino 6.10.2020, 17:02:55
Go to the top of the page
+Quote Post
aragorn280
post 6.10.2020, 20:17:34
Post #11





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.10.2020

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


Już go poprawiłem, ale oczywiście możesz podesłać swoje rozwiązanie jeśli chcesz
Go to the top of the page
+Quote Post
gino
post 6.10.2020, 20:26:32
Post #12





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


pokaż tą funkcję, mają być wszystkie boki trójkąta jako gwiazdki, środek pusty.
Go to the top of the page
+Quote Post
aragorn280
post 6.10.2020, 20:36:44
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.10.2020

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


chodzi o ta czy ta moja pierwsza?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>


<?php
$bok=$_POST['bok'];


function hop($bok){
for($i=1;$i<=$bok;$i++){
for($j=1;$j<=$i;$j++){
if($i<=1 || $i==$bok){

echo '*&nbsp&nbsp';
}else if($j<=1 || $j==$i){
echo '*&nbsp&nbsp';
}else {
echo '&nbsp&nbsp&nbsp&nbsp';
}


}
echo '<br>';

}

}
hop($bok)
?>

</body>
</html>

Tutaj jest ta pierrwsza przerobiona

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>


<?php
$bok=$_POST['bok'];


function hop($bok){
for($i=1;$i<=$bok;$i++){
for($j=$i;$j<=$bok;$j++){

if($i<=1 || $i==$bok){
echo "*&nbsp&nbsp";
}else if($j<=$i || $j==$bok){

echo '*&nbsp&nbsp';

}else{
echo '&nbsp&nbsp&nbsp&nbsp';
}

}
echo '<br>';
}
}
hop($bok)
?>

</body>
</html>
Go to the top of the page
+Quote Post
gino
post 6.10.2020, 20:39:14
Post #14





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


ten warunek przy większej ilości gwiazdek ($bok) nie domyka podstawy trójkąta. Twój warunek jest tak pokombinowany że do $bok 4-6 jest w miarę ok, później już nie.
Go to the top of the page
+Quote Post
aragorn280
post 6.10.2020, 20:42:47
Post #15





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 6.10.2020

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


zapewne jest to kwestia spacji ,ale to tylko kwestia wizualna. Sądze ze na sprawdzianie by uznali
Go to the top of the page
+Quote Post
gino
post 6.10.2020, 20:51:38
Post #16





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


no nie do końca, nadaj na Twojego HTML-a czcionkę np. monospace, któr równo rozprowadza znaki to zobaczysz, albo wrzuć do WriteCodeOnline czy innego php online. Albo coś działa albo nie.

można to zrobić tak:

Kod
function hop($bok)
{
    $str = '';
    for($i=1;$i<=$bok;$i++){
        for($j=1;$j<=$i;$j++){
            $str .= ($j>1 && $j!==$i && $i<$bok)
                ?'&nbsp'
                :'*';
        }
       $str .= '<br>';
    }
    return $str;
}
echo hop($bok);


wrzucająć zamiast &nbsp dowolny znak ascii można wypełnić go tym znakiem
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 29.03.2024 - 09:12