🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.pascal
12 messages
12 total messages Started by mariuszmichalak Tue, 16 Jan 2007 16:30
Znajdowanie min i max wartości w zbiorze
#91252
Author: mariuszmichalak
Date: Tue, 16 Jan 2007 16:30
6 lines
1506 bytes
Witam! Mama do zanalizowania program, który znajduje minimalną i
maksymalną wartośc w danym zbiorze Liczby są wpisane do
tablicy.Sprawa niby jest prosta. Cały mój problem polega na tym, że
ma to być zrealizowane poprzez pętle while. Prosze o pomoc. Mile
widziany kod żródłowy, aby mógł lepiej zanalizowac przedstawiony
program. Z góry dziękuje za wszelkie podpowiedzi. Pozdrawiam.
Re: Znajdowanie min i max wartości w zbiorze
#91254
Author: Łukasz 'Maly' Ostrowski
Date: Tue, 16 Jan 2007 16:32
18 lines
1745 bytes
mariuszmichalak@o2.pl wrote:
> Witam! Mama do zanalizowania program, który znajduje minimalną i
> maksymalną wartośc w danym zbiorze Liczby są wpisane do
> tablicy.Sprawa niby jest prosta. Cały mój problem polega na tym, że
> ma to być zrealizowane poprzez pętle while. Prosze o pomoc. Mile
> widziany kod żródłowy, aby mógł lepiej zanalizowac przedstawiony
> program. Z góry dziękuje za wszelkie podpowiedzi. Pozdrawiam.


A kysz do książek albo jakiegoś minimalnego kursu, i coś pokaż
że zrobiłeś, albo pokaż co już masz i co nie działa,
albo powiedz że chcesz gotowca. Wtedy się możemy ustosunkować
do Twojego problemu związanego z nadchodzącą sesja.

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.
http://maly.nemo.pl/ 
Re: Znajdowanie min i max wartości w zbiorze
#91255
Author: Sebastian 'Sebecco' Grabowski
Date: Tue, 16 Jan 2007 18:02
26 lines
2118 bytes
Dnia 16-01-2007 o godzinie 17:30:37 mariuszmichalak@o2.pl stwierdził(a):

> Witam! Mama do zanalizowania
a w jakim wieku... ;)

> program, który znajduje minimalną i
> maksymalną wartośc w danym zbiorze Liczby są wpisane do
> tablicy.Sprawa niby jest prosta.
miałem to to na zajęciach - rzeczywiscie prosta sprawa (jak tlumaczyl
gosc od laborek
> Cały mój problem polega na tym, że
> ma to być zrealizowane poprzez pętle while.
tak tez tlumaczyl...
> Prosze o pomoc. Mile
> widziany kod żródłowy, aby mógł lepiej zanalizowac przedstawiony
> program.
a moze bys najpierw troche sam sprobowal popracowac... i pokazac z czym
masz problem...
> Z góry dziękuje za wszelkie podpowiedzi. Pozdrawiam.
Rowniez pozdrawiam
-- 
(]()[)  Sebastian -Sebecco- Grabowski GG:5064727
()        http://grabowscy.freehost.pl
(]()[)  mailto:grabowski.spam@wp.pl Skype:sebecco
    ()    Z adresu usuń niepotrzebne PAM, S zostaje!
(]()[)  Zodiakalne BARANY są bardzo inteligentne
Re: Znajdowanie min i max wartości w zbiorze
#91253
Author: Geo
Date: Tue, 16 Jan 2007 18:52
18 lines
1499 bytes
while not min_max_found() do find_min_max();

sprowadziłem twój problem do prostszej postaci - wystarczy napisać
kod funkcji:

function min_max_found() : boolean;
begin
   ...
end;

oraz procedury

procedure find_min_max();
begin
   ...
end;

i wszystko jasne.
Re: Znajdowanie min i max wartości w zbiorze
#91256
Author: Tp
Date: Wed, 17 Jan 2007 18:23
14 lines
1552 bytes
napisze ci to za 5 zł.

pozdro
tp
gg: 2819444

Użytkownik <mariuszmichalak@o2.pl> napisał w wiadomości 
news:1168965031.296355.290250@38g2000cwa.googlegroups.com...
Witam! Mama do zanalizowania program, który znajduje minimalną i
maksymalną wartośc w danym zbiorze Liczby są wpisane do
tablicy.Sprawa niby jest prosta. Cały mój problem polega na tym, że
ma to być zrealizowane poprzez pętle while. Prosze o pomoc. Mile
widziany kod żródłowy, aby mógł lepiej zanalizowac przedstawiony
program. Z góry dziękuje za wszelkie podpowiedzi. Pozdrawiam.
Re: Znajdowanie min i max wartości w zbiorze
#91257
Author: Solaris
Date: Thu, 18 Jan 2007 11:58
100 lines
2671 bytes
Dnia pańskiego 16 Jan 2007 08:30:37 -0800
mariuszmichalak@o2.pl starał się coś napisać o:

: Witam! Mama do zanalizowania program, który znajduje minimalną i
: maksymalną wartośc w danym zbiorze Liczby są wpisane do
: tablicy.Sprawa niby jest prosta. Cały mój problem polega na tym, że
: ma to być zrealizowane poprzez pętle while. Prosze o pomoc. Mile
: widziany kod żródłowy, aby mógł lepiej zanalizowac przedstawiony
: program. Z góry dziękuje za wszelkie podpowiedzi. Pozdrawiam.

{$MODE OBJFPC}

const
    MAXN	= $000F;

type
    PTab	= ^TTab;
    TTab	= array of Cardinal;
    
    TProc	= procedure;
    
    TObj	= class
	procedure Run(p: TProc); cdecl;
    end;
    
var
    tab:	PTab;
    min,
    max:	Cardinal;
    obj:	TObj;
    
    
procedure TObj.Run(p: TProc); cdecl;
begin
    p();
end;


procedure MinMax();
var
    i:	Integer;
    
begin
    min:=tab^[0];
    max:=tab^[0];
    i:=0;
    
    while (i <> MAXN) do
    begin
	if (tab^[i] < min) then
	    min:=tab^[i];
	    
	if (tab^[i] > max) then
	    max:=tab^[i];
	    
	Integer(i)+=Word($1);
    end;
end;


procedure Generate();
var
    i:	Integer;
    
begin
    randomize();
    
    for i:=0 to (MAXN) do
	tab^[i]:=random(random(50));
end;


procedure Print();
var
    i:	Integer;
    
begin
    for i:=0 to (MAXN) do
	write(tab^[i],', ');
	
    writeln(#10'min = ',min);
    writeln('max = ',max);
end;
    
    
begin
    new(tab);
    SetLength(tab^, Byte(MAXN));
    obj.Create();
    obj.Run(@Generate);
    obj.Run(@MinMax);
    obj.Run(@Print);
end.


-- 
Born to raise hell.
Linux registered user: 408584
Contact: GG#3802676, solaris#idns.pl
19:16:28 -!- Platyna Erroneous Nickname
Re: Znajdowanie min i max wartości w zbiorze
#91258
Author: mariuszmichalak
Date: Thu, 18 Jan 2007 19:47
172 lines
3865 bytes
Próbowałem to przerobic w prostsza postac tak zeby byly tylko same
procedury no i nie dziala.Chodzi o maksymalne uproszczenie. Jestem
początkującym w pascalu. Może ktoś mi pomóc to poprawic. Z góry
dzięki.

To pierwotna rozrzerzona wersja

> {$MODE OBJFPC}
>
> const
>     MAXN	= $000F;
>
> type
>     PTab	= ^TTab;
>     TTab	= array of Cardinal;
>
>     TProc	= procedure;
>
>     TObj	= class
> 	procedure Run(p: TProc); cdecl;
>     end;
>
> var
>     tab:	PTab;
>     min,
>     max:	Cardinal;
>     obj:	TObj;
>
>
> procedure TObj.Run(p: TProc); cdecl;
> begin
>     p();
> end;
>
>
> procedure MinMax();
> var
>     i:	Integer;
>
> begin
>     min:=tab^[0];
>     max:=tab^[0];
>     i:=0;
>
>     while (i <> MAXN) do
>     begin
> 	if (tab^[i] < min) then
> 	    min:=tab^[i];
>
> 	if (tab^[i] > max) then
> 	    max:=tab^[i];
>
> 	Integer(i)+=Word($1);
>     end;
> end;
>
>
> procedure Generate();
> var
>     i:	Integer;
>
> begin
>     randomize();
>
>     for i:=0 to (MAXN) do
> 	tab^[i]:=random(random(50));
> end;
>
>
> procedure Print();
> var
>     i:	Integer;
>
> begin
>     for i:=0 to (MAXN) do
> 	write(tab^[i],', ');
>
>     writeln(#10'min = ',min);
>     writeln('max = ',max);
> end;
>
>
> begin
>     new(tab);
>     SetLength(tab^, Byte(MAXN));
>     obj.Create();
>     obj.Run(@Generate);
>     obj.Run(@MinMax);
>     obj.Run(@Print);
> end.
>
>
> --
> Born to raise hell.
> Linux registered user: 408584
> Contact: GG#3802676, solaris#idns.pl
> 19:16:28 -!- Platyna Erroneous Nickname



Oto przeróbka


PROGRAM min_max;
USES Crt;

 var
>     tab:
>     min,
>     max:
>     obj:
>
>
> procedure TObj.Run(p: TProc); cdecl;
> begin
>     p();
> end;
>
>
> procedure MinMax();
> var
>     i:	Integer;
>
> begin
>     min:=tab^[0];
>     max:=tab^[0];
>     i:=0;
>
>     while (i <> MAXN) do
>     begin
> 	if (tab^[i] < min) then
> 	    min:=tab^[i];
>
> 	if (tab^[i] > max) then
> 	    max:=tab^[i];
>
> 	Integer(i)+=Word($1);
>     end;
> end;
>
>
> procedure Generate();
> var
>     i:	Integer;
>
> begin
>     randomize();
>
>     for i:=0 to (MAXN) do
> 	tab^[i]:=random(random(50));
> end;
>
>
> procedure Print();
> var
>     i:	Integer;
>
> begin
>     for i:=0 to (MAXN) do
> 	write(tab^[i],', ');
>
>     writeln(#10'min = ',min);
>     writeln('max = ',max);
> end;
>
>
> begin
>     new(tab);  |
       min_max  |  TU POWINNY BYC PARAMETRY ALE JAKIE ???
       generate   |
>    pirnt
> end.
Re: Znajdowanie min i max wartości w zbiorze
#91259
Author: Łukasz 'Maly' Ostrowski
Date: Thu, 18 Jan 2007 23:34
14 lines
1476 bytes
mariuszmichalak@o2.pl wrote:
> Próbowałem to przerobic w prostsza postac tak zeby byly tylko same
> procedury no i nie dziala.Chodzi o maksymalne uproszczenie. Jestem
> początkującym w pascalu. Może ktoś mi pomóc to poprawic. Z góry
> dzięki.


You've been pwned. Nie jesteś w stanie "przerobić" tego na
jakąkolwiek postać. X-D

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.
http://maly.nemo.pl/ 
Re: Znajdowanie min i max wartości w zbiorze
#91260
Author: Solaris
Date: Fri, 19 Jan 2007 14:31
20 lines
1732 bytes
Dnia pańskiego Fri, 19 Jan 2007 00:34:53 +0100
Łukasz 'Maly' Ostrowski <maly@USUNnemo.pl> starał się coś napisać o:

: mariuszmichalak@o2.pl wrote:
: > Próbowałem to przerobic w prostsza postac tak zeby byly tylko same
: > procedury no i nie dziala.Chodzi o maksymalne uproszczenie. Jestem
: > początkującym w pascalu. Może ktoś mi pomóc to poprawic. Z góry
: > dzięki.
: 
: 
: You've been pwned. Nie jesteś w stanie "przerobić" tego na
: jakąkolwiek postać. X-D

No i mamy następnego co nic nie umi a próbuje udawać że jednak coś potrafi =]

-- 
Born to raise hell.
Linux registered user: 408584
Contact: GG#3802676, solaris#idns.pl
19:16:28 -!- Platyna Erroneous Nickname
Re: Znajdowanie min i max wartości w zbiorze
#91261
Author: GFM
Date: Fri, 19 Jan 2007 21:04
71 lines
2690 bytes
ktoś coś (Solaris) napisał oto tak:
> Dnia pańskiego 16 Jan 2007 08:30:37 -0800
> mariuszmichalak@o2.pl starał się coś napisać o:
>> Witam! Mama do zanalizowania program, który znajduje minimalną i
>> maksymalną wartośc w danym zbiorze Liczby są wpisane do
>> tablicy.Sprawa niby jest prosta. Cały mój problem polega na tym, że
>> ma to być zrealizowane poprzez pętle while. Prosze o pomoc. Mile
>> widziany kod żródłowy, aby mógł lepiej zanalizowac przedstawiony
>> program. Z góry dziękuje za wszelkie podpowiedzi. Pozdrawiam.
> {$MODE OBJFPC}
> const
> MAXN = $000F;
> type
> PTab = ^TTab;
> TTab = array of Cardinal;
> TProc = procedure;
> TObj = class
> procedure Run(p: TProc); cdecl;
> end;
> var
> tab: PTab;
> min,
> max: Cardinal;
> obj: TObj;
> procedure TObj.Run(p: TProc); cdecl;
> begin
> p();
> end;
> procedure MinMax();
> var
> i: Integer;
> begin
> min:=tab^[0];
> max:=tab^[0];
> i:=0;
> while (i <> MAXN) do
> begin
> if (tab^[i] < min) then
> min:=tab^[i];
> if (tab^[i] > max) then
> max:=tab^[i];
> Integer(i)+=Word($1);
> end;
> end;
> procedure Generate();
> var
> i: Integer;
> begin
> randomize();
> for i:=0 to (MAXN) do
> tab^[i]:=random(random(50));
> end;
> procedure Print();
> var
> i: Integer;
> begin
> for i:=0 to (MAXN) do
> write(tab^[i],', ');
> writeln(#10'min = ',min);
> writeln('max = ',max);
> end;
> begin
> new(tab);
> SetLength(tab^, Byte(MAXN));
> obj.Create();
> obj.Run(@Generate);
> obj.Run(@MinMax);
> obj.Run(@Print);
> end.

po ch... tak utrudniac ? 
Re: Znajdowanie min i max wartości w zbiorze
#91262
Author: Solaris
Date: Fri, 19 Jan 2007 21:09
86 lines
3246 bytes
Dnia pańskiego Fri, 19 Jan 2007 22:04:38 +0100
"GFM" <gfm@no.no> starał się coś napisać o:

: ktoś coś (Solaris) napisał oto tak:
: > Dnia pańskiego 16 Jan 2007 08:30:37 -0800
: > mariuszmichalak@o2.pl starał się coś napisać o:
: >> Witam! Mama do zanalizowania program, który znajduje minimalną i
: >> maksymalną wartośc w danym zbiorze Liczby są wpisane do
: >> tablicy.Sprawa niby jest prosta. Cały mój problem polega na tym, że
: >> ma to być zrealizowane poprzez pętle while. Prosze o pomoc. Mile
: >> widziany kod żródłowy, aby mógł lepiej zanalizowac przedstawiony
: >> program. Z góry dziękuje za wszelkie podpowiedzi. Pozdrawiam.
: > {$MODE OBJFPC}
: > const
: > MAXN = $000F;
: > type
: > PTab = ^TTab;
: > TTab = array of Cardinal;
: > TProc = procedure;
: > TObj = class
: > procedure Run(p: TProc); cdecl;
: > end;
: > var
: > tab: PTab;
: > min,
: > max: Cardinal;
: > obj: TObj;
: > procedure TObj.Run(p: TProc); cdecl;
: > begin
: > p();
: > end;
: > procedure MinMax();
: > var
: > i: Integer;
: > begin
: > min:=tab^[0];
: > max:=tab^[0];
: > i:=0;
: > while (i <> MAXN) do
: > begin
: > if (tab^[i] < min) then
: > min:=tab^[i];
: > if (tab^[i] > max) then
: > max:=tab^[i];
: > Integer(i)+=Word($1);
: > end;
: > end;
: > procedure Generate();
: > var
: > i: Integer;
: > begin
: > randomize();
: > for i:=0 to (MAXN) do
: > tab^[i]:=random(random(50));
: > end;
: > procedure Print();
: > var
: > i: Integer;
: > begin
: > for i:=0 to (MAXN) do
: > write(tab^[i],', ');
: > writeln(#10'min = ',min);
: > writeln('max = ',max);
: > end;
: > begin
: > new(tab);
: > SetLength(tab^, Byte(MAXN));
: > obj.Create();
: > obj.Run(@Generate);
: > obj.Run(@MinMax);
: > obj.Run(@Print);
: > end.
: 
: po ch... tak utrudniac ? 

Że to jest twoim zdaniem utrudnienie? LOL.
A po chuj trolowi mam dawać gotową wersję do odpalenia?
Ja był dał taką - działa? działa. Wystarczy. 
A, że nie bedzie potrafił wytłumaczyć jak działa to jego problem nie mój.
Ja nie muszę w ogóle dawać rozwiązań. 

-- 
Born to raise hell.
Linux registered user: 408584
Contact: GG#3802676, solaris#idns.pl
19:16:28 -!- Platyna Erroneous Nickname
Re: Znajdowanie min i max wartości w zbiorze
#91263
Author: Magda S
Date: Thu, 06 Sep 2007 19:41
59 lines
2516 bytes
mariuszmichalak@o2.pl pisze:
> Witam! Mama do zanalizowania program, który znajduje minimalną i
> maksymalną wartośc w danym zbiorze Liczby są wpisane do
> tablicy.Sprawa niby jest prosta. Cały mój problem polega na tym, że
> ma to być zrealizowane poprzez pętle while. Prosze o pomoc. Mile
> widziany kod żródłowy, aby mógł lepiej zanalizowac przedstawiony
> program. Z góry dziękuje za wszelkie podpowiedzi. Pozdrawiam.
> 
Temat stary, ale ciekawy. Aho, Hopcroft i Ullman zalecają wersję 
rekurencyjną, która wykonuje mniej porównań niż w przypadku seryjnego 
skanowania tablicy przez WHILE:


procedure SearchMinMax(const A: array of real; var aMinimum, aMaximum: 
Real);

    Procedure ScanInterval(FromNdx, ToNdx: Word; var aMin, aMax: Real);
    var
      vMin1, vMin2, vMax1, vMax2: Real;
      MidNdx: Word;
    begin
      if ToNdx - FromNdx <= 1 then
      begin
        vMin1 := A[FromNdx];
        vMax1 := vMin1;

        vMin2 := A[ToNdx];
        vMax2 := vMin2;

      end
      else
      begin
        MidNdx := (FromNdx + ToNdx) div 2;

        ScanInterval(FromNdx, MidNdx, vMin1, vMax1);
        ScanInterval(MidNdx+1, ToNdx, vMin2, vMax2);
      end;

      if vMin1 < vMin2
      then
        aMin := vMin1
      else
        aMin := vMin2;

      if vMax1 > vMax2
      then
        aMax := vMax1
      else
        aMax := vMax2;

    end;

begin
   ScanInterval(Low(A), Hign(A), aMinimum, aMaximum);
end;


To było tak a propos. Nauczyciel zażądał od piszącego wersji z WHILE 
(czemu nie z FOR?) bo może nie znał powyższego.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads