/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
En gaade...
Fra : Frank Ronnie Hansen


Dato : 24-08-01 20:46

Hej gruppe

Jeg er ikke den store programmør, men jeg sidder nu og da og hygger
mig med at løse gåder ved hjælp af Pascal 7.0.

Jeg læste for nylig nedenstående gåde, og jeg har da også løst den ved
hjælp af papir og blyant, (og ikke mindst vidskelæder).

Men det er ikke lykkedes mig at løse den med Pascal 7.0 - er der nogen
her i gruppen som kan fortælle mig hvorledes det kan gøres?

Her er gåden:

5 mænd bor i 5 forskellige huse i 5 forskellige farver, de ryger 5
forskellige cigaretmærker og drikker 5 forskellige drikke. De holder 5
forskellige slags husdyr.

1. Nordmanden bor i det første hus
2. Englænderen bor i det røde hus
3. Det grønne hus ligger til venstre for det hvide hus
4. Danskeren drikker the
5. Ham som ryger Rothmans bor ved siden af ham som har katte

6. Ham som bor i det gule hus ryger Dunhill
7. Tyskeren ryger Marlboro
8. Ham som bor i huset i midten drikker mælk
9. Ham som ryger Rothmans har en nabo, der drikker vand
10. Ham som ryger PallMall holder fugle

11. Svenskeren opdrætter hunde
12. Normanden bor ved siden af det blå hus
13. Ham som har heste bor ved siden af det gule hus
14. Ham som ryger Philip Morris drikker øl
15. I det grønne hus drikkes der kaffe

Hvilken landsmand har en fisk?

-Venlig hilsen
Frank



 
 
Rasmus Klitgaard-Nie~ (25-08-2001)
Kommentar
Fra : Rasmus Klitgaard-Nie~


Dato : 25-08-01 10:28

Frank Ronnie Hansen wrote:
>
> Hej gruppe
>
> Jeg er ikke den store programmør, men jeg sidder nu og da og hygger
> mig med at løse gåder ved hjælp af Pascal 7.0.
>
> Jeg læste for nylig nedenstående gåde, og jeg har da også løst den ved
> hjælp af papir og blyant, (og ikke mindst vidskelæder).
>
> Men det er ikke lykkedes mig at løse den med Pascal 7.0 - er der nogen
> her i gruppen som kan fortælle mig hvorledes det kan gøres?

Jeps.. Du bruger Prolog istedet for :) (logisk programmering er skabt
til sådanne gåder)
>
--
>o ********* PINKY! aka. Rasmus Klitgaard-Nielsen *********
<()> **** Mad Programmer - Commodore Freak - ABP regular ****
^^ "Can't sing. Can't dance. Can handle a sword a little."
-- Victor's resume (Terry Pratchett, Moving Pictures)

Thomas Riedel (25-08-2001)
Kommentar
Fra : Thomas Riedel


Dato : 25-08-01 10:35

Hej Frank

Ja det var ikke helt enkelt, men her er hovedprogrammet:

type

tperson = (nor, eng, dan, sve, tys);
tfarve = (rod, hvid, gul, blaa, gron);
tcigaret = (roth, dunh,marl,pall,phil);
tdrik= (the, vand, maelk,ol, kaffe);
tdyr = (kat, fugl, hund,hest, fisk);

const
person : array [1..5] of tperson = (nor, eng, dan, sve, tys);
farve : array [1..5] of tfarve= (rod, hvid, gul, blaa, gron);
cigaret : array [1..5] of tcigaret = (roth, dunh,marl,pall,phil);
drik : array [1..5] of tdrik= (the, maelk, vand,ol, kaffe);
dyr : array [1..5] of tdyr = (kat, fugl, hund,hest, fisk);

function pos(item : variant; var arr) : integer;
var i : integer;
begin
result := 0;
for i := 1 to 5 do
if tarr(arr)[i] = integer(item) then
begin
result := i;
exit;
end;
write('Ikke fundet');
writeln;
halt;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
repeat
//1. Nordmanden bor i det første hus
if (pos(nor, person) = 1) and
//2. Englænderen bor i det røde hus
(pos(eng, person ) = pos(rod, farve)) and
//3. Det grønne hus ligger til venstre for det hvide hus
(pos(gron, farve) < pos(hvid, farve)) and
//4. Danskeren drikker the
(pos(the, drik) = pos(dan, person)) and
//5. Ham som ryger Rothmans bor ved siden af ham som har katte
(abs(pos(roth, cigaret)-pos(kat, dyr)) = 1) and
//6. Ham som bor i det gule hus ryger Dunhill
(pos(gul, farve) = pos(dunh, cigaret)) and
//7. Tyskeren ryger Marlboro
(pos(tys, person) = pos(marl, cigaret)) and
//8. Ham som bor i huset i midten drikker mælk
(pos(maelk, drik) = 3) and
//9. Ham som ryger Rothmans har en nabo, der drikker vand
(abs(pos(roth, cigaret) - pos(vand, drik)) = 1) and
//10. Ham som ryger PallMall holder fugle
(pos(pall, cigaret) = pos(fugl, dyr)) and
//11. Svenskeren opdrætter hunde
(pos(sve, person) = pos(hund, dyr)) and
//12. Normanden bor ved siden af det blå hus
(abs(pos(nor, person)-pos(blaa, farve)) = 1) and
//13. Ham som har heste bor ved siden af det gule hus
(abs(pos(hest, dyr)-pos(gul,farve)) =1) and
//14. Ham som ryger Philip Morris drikker øl
(pos(phil, cigaret) = pos(ol, drik)) and
//15. I det grønne hus drikkes der kaffe}
(pos(gron, farve) = pos(kaffe, drik)) then
exit
else
nextp;
until false;
end;



proceduren NextP danner en ny permutation, og er lidt kryptisk.
Du kan få hele programmet hvis mailer mig direkte.

jeg får en løsning der ser således ud:


1 2 3 4 5
nor dan eng tys sve
gul blå rød gro hvi
dun rot pal mar phil
van the mæl kaf øl
kat hest fugl fisk hund

Jeg har ikke tjekket om der er flere løsninger

--
Thomas Riedel, LogiHouse
"Frank Ronnie Hansen" <fever@hansen.mail.dk> skrev i en meddelelse
news:3b86b227$0$255$edfadb0f@dspool01.news.tele.dk...
> Hej gruppe
>
> Jeg er ikke den store programmør, men jeg sidder nu og da og hygger
> mig med at løse gåder ved hjælp af Pascal 7.0.
>
> Jeg læste for nylig nedenstående gåde, og jeg har da også løst den ved
> hjælp af papir og blyant, (og ikke mindst vidskelæder).
>
> Men det er ikke lykkedes mig at løse den med Pascal 7.0 - er der nogen
> her i gruppen som kan fortælle mig hvorledes det kan gøres?
>
> Her er gåden:
>
> 5 mænd bor i 5 forskellige huse i 5 forskellige farver, de ryger 5
> forskellige cigaretmærker og drikker 5 forskellige drikke. De holder 5
> forskellige slags husdyr.
>
> 1. Nordmanden bor i det første hus
> 2. Englænderen bor i det røde hus
> 3. Det grønne hus ligger til venstre for det hvide hus
> 4. Danskeren drikker the
> 5. Ham som ryger Rothmans bor ved siden af ham som har katte
>
> 6. Ham som bor i det gule hus ryger Dunhill
> 7. Tyskeren ryger Marlboro
> 8. Ham som bor i huset i midten drikker mælk
> 9. Ham som ryger Rothmans har en nabo, der drikker vand
> 10. Ham som ryger PallMall holder fugle
>
> 11. Svenskeren opdrætter hunde
> 12. Normanden bor ved siden af det blå hus
> 13. Ham som har heste bor ved siden af det gule hus
> 14. Ham som ryger Philip Morris drikker øl
> 15. I det grønne hus drikkes der kaffe
>
> Hvilken landsmand har en fisk?
>
> -Venlig hilsen
> Frank
>
>



Uffe Kousgaard (25-08-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 25-08-01 10:41

Hej

Hvad er regnetiden på dit program ?
Den kan under alle omstændigheder forbedres ved at du foretager de enkelte
validitetscheck på et så tidligt tidspunkt som muligtm dvs ikke nødvendigvis
inderst i permutationsløkken, men undervejs.

Hilsen
Uffe

"Thomas Riedel" <thr@image.danmark> wrote in message
news:LiKh7.12822$3q.452527@news010.worldonline.dk...
> Hej Frank
>
> Ja det var ikke helt enkelt, men her er hovedprogrammet:
>
> type
>
> tperson = (nor, eng, dan, sve, tys);
> tfarve = (rod, hvid, gul, blaa, gron);
> tcigaret = (roth, dunh,marl,pall,phil);
> tdrik= (the, vand, maelk,ol, kaffe);
> tdyr = (kat, fugl, hund,hest, fisk);
>
> const
> person : array [1..5] of tperson = (nor, eng, dan, sve, tys);
> farve : array [1..5] of tfarve= (rod, hvid, gul, blaa, gron);
> cigaret : array [1..5] of tcigaret = (roth, dunh,marl,pall,phil);
> drik : array [1..5] of tdrik= (the, maelk, vand,ol, kaffe);
> dyr : array [1..5] of tdyr = (kat, fugl, hund,hest, fisk);
>
> function pos(item : variant; var arr) : integer;
> var i : integer;
> begin
> result := 0;
> for i := 1 to 5 do
> if tarr(arr)[i] = integer(item) then
> begin
> result := i;
> exit;
> end;
> write('Ikke fundet');
> writeln;
> halt;
> end;
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> repeat
> //1. Nordmanden bor i det første hus
> if (pos(nor, person) = 1) and
> //2. Englænderen bor i det røde hus
> (pos(eng, person ) = pos(rod, farve)) and
> //3. Det grønne hus ligger til venstre for det hvide hus
> (pos(gron, farve) < pos(hvid, farve)) and
> //4. Danskeren drikker the
> (pos(the, drik) = pos(dan, person)) and
> //5. Ham som ryger Rothmans bor ved siden af ham som har katte
> (abs(pos(roth, cigaret)-pos(kat, dyr)) = 1) and
> //6. Ham som bor i det gule hus ryger Dunhill
> (pos(gul, farve) = pos(dunh, cigaret)) and
> //7. Tyskeren ryger Marlboro
> (pos(tys, person) = pos(marl, cigaret)) and
> //8. Ham som bor i huset i midten drikker mælk
> (pos(maelk, drik) = 3) and
> //9. Ham som ryger Rothmans har en nabo, der drikker vand
> (abs(pos(roth, cigaret) - pos(vand, drik)) = 1) and
> //10. Ham som ryger PallMall holder fugle
> (pos(pall, cigaret) = pos(fugl, dyr)) and
> //11. Svenskeren opdrætter hunde
> (pos(sve, person) = pos(hund, dyr)) and
> //12. Normanden bor ved siden af det blå hus
> (abs(pos(nor, person)-pos(blaa, farve)) = 1) and
> //13. Ham som har heste bor ved siden af det gule hus
> (abs(pos(hest, dyr)-pos(gul,farve)) =1) and
> //14. Ham som ryger Philip Morris drikker øl
> (pos(phil, cigaret) = pos(ol, drik)) and
> //15. I det grønne hus drikkes der kaffe}
> (pos(gron, farve) = pos(kaffe, drik)) then
> exit
> else
> nextp;
> until false;
> end;
>
>
>
> proceduren NextP danner en ny permutation, og er lidt kryptisk.
> Du kan få hele programmet hvis mailer mig direkte.
>
> jeg får en løsning der ser således ud:
>
>
> 1 2 3 4 5
> nor dan eng tys sve
> gul blå rød gro hvi
> dun rot pal mar phil
> van the mæl kaf øl
> kat hest fugl fisk hund
>
> Jeg har ikke tjekket om der er flere løsninger
>
> --
> Thomas Riedel, LogiHouse
> "Frank Ronnie Hansen" <fever@hansen.mail.dk> skrev i en meddelelse
> news:3b86b227$0$255$edfadb0f@dspool01.news.tele.dk...
> > Hej gruppe
> >
> > Jeg er ikke den store programmør, men jeg sidder nu og da og hygger
> > mig med at løse gåder ved hjælp af Pascal 7.0.
> >
> > Jeg læste for nylig nedenstående gåde, og jeg har da også løst den ved
> > hjælp af papir og blyant, (og ikke mindst vidskelæder).
> >
> > Men det er ikke lykkedes mig at løse den med Pascal 7.0 - er der nogen
> > her i gruppen som kan fortælle mig hvorledes det kan gøres?
> >
> > Her er gåden:
> >
> > 5 mænd bor i 5 forskellige huse i 5 forskellige farver, de ryger 5
> > forskellige cigaretmærker og drikker 5 forskellige drikke. De holder 5
> > forskellige slags husdyr.
> >
> > 1. Nordmanden bor i det første hus
> > 2. Englænderen bor i det røde hus
> > 3. Det grønne hus ligger til venstre for det hvide hus
> > 4. Danskeren drikker the
> > 5. Ham som ryger Rothmans bor ved siden af ham som har katte
> >
> > 6. Ham som bor i det gule hus ryger Dunhill
> > 7. Tyskeren ryger Marlboro
> > 8. Ham som bor i huset i midten drikker mælk
> > 9. Ham som ryger Rothmans har en nabo, der drikker vand
> > 10. Ham som ryger PallMall holder fugle
> >
> > 11. Svenskeren opdrætter hunde
> > 12. Normanden bor ved siden af det blå hus
> > 13. Ham som har heste bor ved siden af det gule hus
> > 14. Ham som ryger Philip Morris drikker øl
> > 15. I det grønne hus drikkes der kaffe
> >
> > Hvilken landsmand har en fisk?
> >
> > -Venlig hilsen
> > Frank
> >
> >
>
>



Thomas Riedel (25-08-2001)
Kommentar
Fra : Thomas Riedel


Dato : 25-08-01 17:03

Hej Uffe

Du har helt ret, der kan laves talrige optimeringer.
Det tog også flere minutter for den at finde den rigtige løsning
Hilsen
Thomas Riedel
LogiHouse


--
Thomas Riedel, LogiHouse
"Uffe Kousgaard" <uffe@routeware.dk> skrev i en meddelelse
news:3b877295$0$339$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Hvad er regnetiden på dit program ?
> Den kan under alle omstændigheder forbedres ved at du foretager de enkelte
> validitetscheck på et så tidligt tidspunkt som muligtm dvs ikke
nødvendigvis
> inderst i permutationsløkken, men undervejs.
>
> Hilsen
> Uffe
>
> "Thomas Riedel" <thr@image.danmark> wrote in message
> news:LiKh7.12822$3q.452527@news010.worldonline.dk...
> > Hej Frank
> >
> > Ja det var ikke helt enkelt, men her er hovedprogrammet:
> >
> > type
> >
> > tperson = (nor, eng, dan, sve, tys);
> > tfarve = (rod, hvid, gul, blaa, gron);
> > tcigaret = (roth, dunh,marl,pall,phil);
> > tdrik= (the, vand, maelk,ol, kaffe);
> > tdyr = (kat, fugl, hund,hest, fisk);
> >
> > const
> > person : array [1..5] of tperson = (nor, eng, dan, sve, tys);
> > farve : array [1..5] of tfarve= (rod, hvid, gul, blaa, gron);
> > cigaret : array [1..5] of tcigaret = (roth, dunh,marl,pall,phil);
> > drik : array [1..5] of tdrik= (the, maelk, vand,ol, kaffe);
> > dyr : array [1..5] of tdyr = (kat, fugl, hund,hest, fisk);
> >
> > function pos(item : variant; var arr) : integer;
> > var i : integer;
> > begin
> > result := 0;
> > for i := 1 to 5 do
> > if tarr(arr)[i] = integer(item) then
> > begin
> > result := i;
> > exit;
> > end;
> > write('Ikke fundet');
> > writeln;
> > halt;
> > end;
> >
> > procedure TForm1.FormCreate(Sender: TObject);
> > begin
> > repeat
> > file://1. Nordmanden bor i det første hus
> > if (pos(nor, person) = 1) and
> > file://2. Englænderen bor i det røde hus
> > (pos(eng, person ) = pos(rod, farve)) and
> > file://3. Det grønne hus ligger til venstre for det hvide hus
> > (pos(gron, farve) < pos(hvid, farve)) and
> > file://4. Danskeren drikker the
> > (pos(the, drik) = pos(dan, person)) and
> > file://5. Ham som ryger Rothmans bor ved siden af ham som har katte
> > (abs(pos(roth, cigaret)-pos(kat, dyr)) = 1) and
> > file://6. Ham som bor i det gule hus ryger Dunhill
> > (pos(gul, farve) = pos(dunh, cigaret)) and
> > file://7. Tyskeren ryger Marlboro
> > (pos(tys, person) = pos(marl, cigaret)) and
> > file://8. Ham som bor i huset i midten drikker mælk
> > (pos(maelk, drik) = 3) and
> > file://9. Ham som ryger Rothmans har en nabo, der drikker vand
> > (abs(pos(roth, cigaret) - pos(vand, drik)) = 1) and
> > file://10. Ham som ryger PallMall holder fugle
> > (pos(pall, cigaret) = pos(fugl, dyr)) and
> > file://11. Svenskeren opdrætter hunde
> > (pos(sve, person) = pos(hund, dyr)) and
> > file://12. Normanden bor ved siden af det blå hus
> > (abs(pos(nor, person)-pos(blaa, farve)) = 1) and
> > file://13. Ham som har heste bor ved siden af det gule hus
> > (abs(pos(hest, dyr)-pos(gul,farve)) =1) and
> > file://14. Ham som ryger Philip Morris drikker øl
> > (pos(phil, cigaret) = pos(ol, drik)) and
> > file://15. I det grønne hus drikkes der kaffe}
> > (pos(gron, farve) = pos(kaffe, drik)) then
> > exit
> > else
> > nextp;
> > until false;
> > end;
> >
> >
> >
> > proceduren NextP danner en ny permutation, og er lidt kryptisk.
> > Du kan få hele programmet hvis mailer mig direkte.
> >
> > jeg får en løsning der ser således ud:
> >
> >
> > 1 2 3 4 5
> > nor dan eng tys sve
> > gul blå rød gro hvi
> > dun rot pal mar phil
> > van the mæl kaf øl
> > kat hest fugl fisk hund
> >
> > Jeg har ikke tjekket om der er flere løsninger
> >
> > --
> > Thomas Riedel, LogiHouse
> > "Frank Ronnie Hansen" <fever@hansen.mail.dk> skrev i en meddelelse
> > news:3b86b227$0$255$edfadb0f@dspool01.news.tele.dk...
> > > Hej gruppe
> > >
> > > Jeg er ikke den store programmør, men jeg sidder nu og da og hygger
> > > mig med at løse gåder ved hjælp af Pascal 7.0.
> > >
> > > Jeg læste for nylig nedenstående gåde, og jeg har da også løst den ved
> > > hjælp af papir og blyant, (og ikke mindst vidskelæder).
> > >
> > > Men det er ikke lykkedes mig at løse den med Pascal 7.0 - er der nogen
> > > her i gruppen som kan fortælle mig hvorledes det kan gøres?
> > >
> > > Her er gåden:
> > >
> > > 5 mænd bor i 5 forskellige huse i 5 forskellige farver, de ryger 5
> > > forskellige cigaretmærker og drikker 5 forskellige drikke. De holder 5
> > > forskellige slags husdyr.
> > >
> > > 1. Nordmanden bor i det første hus
> > > 2. Englænderen bor i det røde hus
> > > 3. Det grønne hus ligger til venstre for det hvide hus
> > > 4. Danskeren drikker the
> > > 5. Ham som ryger Rothmans bor ved siden af ham som har katte
> > >
> > > 6. Ham som bor i det gule hus ryger Dunhill
> > > 7. Tyskeren ryger Marlboro
> > > 8. Ham som bor i huset i midten drikker mælk
> > > 9. Ham som ryger Rothmans har en nabo, der drikker vand
> > > 10. Ham som ryger PallMall holder fugle
> > >
> > > 11. Svenskeren opdrætter hunde
> > > 12. Normanden bor ved siden af det blå hus
> > > 13. Ham som har heste bor ved siden af det gule hus
> > > 14. Ham som ryger Philip Morris drikker øl
> > > 15. I det grønne hus drikkes der kaffe
> > >
> > > Hvilken landsmand har en fisk?
> > >
> > > -Venlig hilsen
> > > Frank
> > >
> > >
> >
> >
>
>



Frank Ronnie Hansen (27-08-2001)
Kommentar
Fra : Frank Ronnie Hansen


Dato : 27-08-01 14:36


Thomas Riedel skrev

[snip]
>Ja det var ikke helt enkelt, men her er hovedprogrammet:


Mange tak for hjælpen - det var en gåde som overskrider mine
beskedne programmeringsevner.

Venlig hilsen
Frank



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste