Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Leewang
Piegowaty Guziec
Posty: 9 Rejestracja: 13 sty 2008, 18:09
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: Blackbox
Post
autor: Leewang » 05 sty 2009, 14:59
Witam
Mam kod który wypisuje z gwiazdek trójkąt zapełniony w środku, może mi ktoś powiedzieć jak zrobić, aby trójkąt był pusty w środku?
Kod: Zaznacz cały
#!/bin/bash
if [ -z $1 ]
then
echo "Prawidlowe wywolanie skryptu: $0 [dlugosc_podstawy]"
exit 1
fi
liczba=$1
i=1
pom=1
while [ "$i" -le $liczba ]
do
j=$i
while [ "$j" -le $liczba ]
do
echo -n "*"
j=$(($j+1))
done
echo ""
pomoc=1
while [ "$pomoc" -le $pom ]
do
echo -n " "
pomoc=$(($pomoc+1))
done
pom=$(($pom+1))
i=$(($i+2))
done
echo ""
exit 0
[r4]
Przebojowy Jelonek
Posty: 1048 Rejestracja: 08 maja 2007, 07:40
Wersja Ubuntu: 12.10
Środowisko graficzne: Xfce
Architektura: x86
Post
autor: [r4] » 05 sty 2009, 15:09
Pisac na ekran gwiazdke tylko wtedy, gdy indeks wskaznika polozenia kursora jest rowny pierwszej lub ostatniej pozycji w linii.
I believe not drinking is actually the best way to not get a hangover in the first place.
Coincidentally, it's also the best way to not enjoy your life.
Leewang
Piegowaty Guziec
Posty: 9 Rejestracja: 13 sty 2008, 18:09
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: Blackbox
Post
autor: Leewang » 05 sty 2009, 15:51
[r4] mógłbyś mi pomóc jak to zaimplementować w kodzie?
moridin
Sędziwy Jeż
Posty: 57 Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:
Post
autor: moridin » 05 sty 2009, 17:17
Kod: Zaznacz cały
#!/bin/bash
if [ -z $1 ]
then
echo "Prawidlowe wywolanie skryptu: $0 [dlugosc_podstawy]"
exit 1
fi
liczba=$1
i=1
pom=1
while [ "$i" -le $liczba ]
do
j=$i
while [ "$j" -le $liczba ]
do
if [[ $liczba -eq $i ]] || [[ 1 -eq $i ]]
then
echo -n "*"
else
if [[ $j -eq $i ]] || [[ $j -eq $liczba ]]
then
echo -n "*"
else
echo -n " "
fi
fi
j=$(($j+1))
done
echo ""
pomoc=1
while [ "$pomoc" -le $pom ]
do
echo -n " "
pomoc=$(($pomoc+1))
done
pom=$(($pom+1))
i=$(($i+2))
done
echo ""
exit 0
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2]
http://scripts-zone.info/
el.pescado
Zakręcona Traszka
Posty: 734 Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:
Post
autor: el.pescado » 05 sty 2009, 17:46
W sumie lepiej uniknąć porównań i wyrażeń warunkowych w pętli:
Kod: Zaznacz cały
print "*\n"
for i = 2..n-1
print "*"
for j = 2..i-1
print " "
print "*\n"
for j = 1..n
print "*"
print "\n"
W pseudokodzie, żeby było czytelniej.
moridin
Sędziwy Jeż
Posty: 57 Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:
Post
autor: moridin » 05 sty 2009, 20:11
Hmm..
No tak. Ale ja mialem ten program zmodyfikowac a nie napisac;-)
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2]
http://scripts-zone.info/
Leewang
Piegowaty Guziec
Posty: 9 Rejestracja: 13 sty 2008, 18:09
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: Blackbox
Post
autor: Leewang » 05 sty 2009, 21:42
moridin dziękuję Ci bardzo za pomoc !
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości