🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #92930

Re: zagwozdka - pętla for i ustawianie zmiennej logicznej...

#92930
From: Mirek
Date: Mon, 21 Dec 2009 10:27
39 lines
2401 bytes
On pon, 21 gru 2009 09:47:22 in article news:<hgncmq$26b$1@news.onet.pl>
Krzysztof W. wrote:
> Wersja "ładniejsza" ma wyświetlać ilość powtórzeń danego 
> elementu tylko raz. Kod wygląda tak:

Ładniejsza wersja to by była, gdybyś miał złożoność mniejszą
niż kwadratową ;)
 
>                  for k:=1 to i-1 do
>                     if  (tablica[k]=tablica[i]) then
>                                                  begin
>                                                  powtorzenie:=true;
>                                                  break;
>                                                  end
>                                                 else powtorzenie:=false;
[...] 
> Czy ktoś potrafi mi wyjaśnić, dlaczego MUSZĘ wstawić to nieszczęsne 
> przerwanie pętli(BREAK) po ustawieniu zmiennej na true?

Dlaczego nieszczęsne?

Nieszczęsna (czytaj niepotrzebna) jest ta pętla.
Ten sam rezultat otrzymasz zastępująć pętlę instrukcją:
   powtorzenie:=ile>1;

Pomijam fakt nie zainicjowania zmiennej powtorzenie przed pętlą :(

> bez tego program zachowuje się tak, jakby polecenie
> powtorzenie:=true "przestawiało" zmienną po każdym przebiegu
> pętli. Czyli jak coś było true i znowu ma być true to
> wychodzi false... Ot, ciekawostka :-D

Ciekawostką jest twoje rozumowanie.

Wynik tej pętli czyli wartość zmiennej _powtorzenie_ przy braku
_break_ zależy jedynie od porównania w ostatnim kroku pętli.

Dla losowych danych z dużym prawdopodobieństwem będzie to false
:)
Technical Details
Message-ID: <hgnij5$196$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <hgncmq$26b$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Mirek <pisz_na.mirek@dionizos.zind.ikem.pwr.wroc.pl>
Newsgroups: pl.comp.lang.pascal
Subject: Re: zagwozdka - pętla for i ustawianie zmiennej
 logicznej...
Date: Mon, 21 Dec 2009 10:27:49 +0000 (UTC)
Organization: WUT
Lines: 39
Message-ID: <hgnij5$196$1@inews.gazeta.pl>
References: <hgncmq$26b$1@news.onet.pl>
NNTP-Posting-Host: infrared.zind.ikem.pwr.wroc.pl
X-Trace: inews.gazeta.pl 1261391269 1318 156.17.14.223 (21 Dec 2009 10:27:49 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Mon, 21 Dec 2009 10:27:49 +0000 (UTC)
X-User: mkwasniak
User-Agent: tin/1.9.3-20080506 ("Dalintober") (UNIX) (Linux/2.6.31-1-686 (i686))
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit