Bash - rysowanie trojkata - modyfikacja kodu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
Leewang
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 13 sty 2008, 18:09
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: Blackbox

Bash - rysowanie trojkata - modyfikacja kodu

Post autor: Leewang »

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
Przebojowy Jelonek
Posty: 1048
Rejestracja: 08 maja 2007, 07:40
Wersja Ubuntu: 12.10
Środowisko graficzne: Xfce
Architektura: x86

Odp: Bash - rysowanie trojkata - modyfikacja kodu

Post autor: [r4] »

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.
Awatar użytkownika
Leewang
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 13 sty 2008, 18:09
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: Blackbox

Odp: Bash - rysowanie trojkata - modyfikacja kodu

Post autor: Leewang »

[r4] mógłbyś mi pomóc jak to zaimplementować w kodzie?
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: Bash - rysowanie trojkata - modyfikacja kodu

Post autor: moridin »

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] :-P
http://scripts-zone.info/
Awatar użytkownika
el.pescado
Zakręcona Traszka
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:

Odp: Bash - rysowanie trojkata - modyfikacja kodu

Post autor: el.pescado »

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.
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: Bash - rysowanie trojkata - modyfikacja kodu

Post autor: moridin »

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] :-P
http://scripts-zone.info/
Awatar użytkownika
Leewang
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 13 sty 2008, 18:09
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: Blackbox

Odp: Bash - rysowanie trojkata - modyfikacja kodu

Post autor: Leewang »

moridin dziękuję Ci bardzo za pomoc ! :)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości