Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Rysowanie rombu z gwiazdek



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Algorytmy + inżynieria oprogramowania
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Matii
Gość





PostWysłany: Czw Gru 28, 2017 8:16 pm  OP    Temat postu: Rysowanie rombu z gwiazdek Odpowiedz z cytatem Pisownia

Witam

Postawiłem sobie cel napisania programu rysującego romb z gwiazdek w taki sposób jak na rysunku pod linkiem
https://drukant.pl/images/wzory/W_Wzory/pojedyncze/W002.png a oto kod:
Kod:
program romb;
uses Crt;
const
n = 23; { Ps. dowolna dodatnia liczba nieparzysta }
var
i,j: integer;
begin
     clrscr;
     for i := 1 to n do
        begin
             for j := 1 to n do
                if i < (n div 2) + 1 then  { góra }
                  if (j >= ((n div 2) + 1) - (i - 1)) and (j <= ((n div 2) + 1) + (i - 1)) then
                    write('*')
                  else
                      write(' ')
                else
                    if i = (n div 2) + 1 then  { środek }
                      write('*')
                    else  { dół }
                        if (j >= ((n div 2) + 1) - (n - i)) and (j <= ((n div 2) + 1) + (n - i)) then
                          write('*')
                        else
                            write(' ');
             writeln
        end
end.

Natomiast bardziej doświadczonych programistów prosiłbym o przeanalizowanie go i ewentualne zoptymalizowanie, jeśli coś można w nim usunąć lub poprawić tak, żeby zajmował jeszcze mniej linii niż zajmuje.

Pozdro
Powrót do góry
samolot



Dołączył: 26 Sty 2006
Posty: 8298
Skąd: Toruń

PostWysłany: Czw Gru 28, 2017 10:45 pm      Temat postu: Odpowiedz z cytatem Pisownia

Jeśli chodzi o optymalizację kodu, to właściwie nie chodzi o to, czy dana funkcja będzie napisane w 10 czy 20 wierszach. Nie ma to dla kompilatora i systemu operacyjnego właściwie żadnego znaczenia.
Kod musi być napisany tak, by:
1. Nie marnował zasobów systemu
2. Nie marnował czasu.
3. Niech zajmuje sobie 10 czy 20 wierszy, ale musi tak być napisany , bym po miesiącu nie musiał się domyślać o co w nim chodzi.

Na pewno każdy kod można tak skomasować, by w jednej linii upchać 20 wywołań różnych funkcji. Tylko, że jeśli w algorytmie jest gdzieś błąd do przetestowania, to przy testowaniu robią się schody. Czasem staje się prawie niemożliwe znalezienie błędu, jeśli się kodu nie rozbije na mniejsze części i nie sprawdzi w każdej z nich z osobna, jakie wartości przyjmują zmienne.

_________________
Nie zadawaj bezcelowych pytań / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Matii
Gość





PostWysłany: Czw Gru 28, 2017 11:40 pm  OP(?)    Temat postu: Rysowanie rombu z gwiazdek Odpowiedz z cytatem Pisownia

Dziękuję za odpowiedz Samolot
Powrót do góry
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Algorytmy + inżynieria oprogramowania Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.16293 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |