Pages: [1]   Go Down
Print
Author Topic: Dubbio su esercizio SePi  (Read 2244 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
turiddu91
Matricola
*
Offline Offline

Gender: Male
Posts: 27


Tutto ciò che tu vorresti è un'utopia..


WWW
« on: 24-05-2018, 23:05:16 »

Salve a tutti,

scrivo questo post a proposito della proposta di esercizio fatta dal prof.

In poche parole, bisognava emulare un processo di compravendita tra negozio e cliente, con una parte dedicata anche al negozio che contatta la banca per controllare i dati della carta di credito.
Solo che, si deve descrivere il canale dal punto di vista del negozio e, non del cliente.

Ho scritto questo codice:

Code:
type bankProc = ?string.!string.end
type storeAcceptPrice = &{
                            ok: bankProc.end,
                            quit: end
}
type storeSelectProd = &{
prodOne: ?integer.!integer.storeAcceptPrice ,
quit: end
}

new store client : storeSelectProd
client select prodOne.
client?price.
if price > 50
then client select quit. end
else client select ok. client!"234234". client?numberReceipt. print!"numero scontrino "++numberReceipt. end
|
case storeSelectProd of
prodOne ->{
store!34.
case storeAcceptPrice of
ok ->  store?numberCard.store!numberCard++"234".end
quit -> end
}

E' sicuramente sbagliato, perchè il compilatore online mi segnala degli errori.
Uno di questi è "required (...)+ loop did not match anything at input 'type'", ma non riesco a capire quale "(...)+" sia richiesto.
Probabilmente c'è qualcosa, del linguaggio, che mi sfugge.

Naturalmente, il codice è scritto nel modo più semplice possibile, cioè con un solo prodotto da scegliere e, nessun reale controllo da parte della banca.

Cosa sbaglio?

Grazie.
Logged
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.083



WWW
« Reply #1 on: 25-05-2018, 15:09:54 »

Esercizio:
Trovare la secchiata di errori presenti nel codice del post precedente e correggerli.
Dopo, confrontare la soluzione con la seguente

Code:
type bankProc = ?string.!string.end

type storeAcceptPrice = &{  ok: bankProc,
                            quit: end }

type storeSelectProd = &{ prodOne: !integer.storeAcceptPrice,
  quit: end }


new store client : storeSelectProd

client select prodOne.
client?price.
if price > 50
then client select quit
else client select ok. client!"234234".
client?numberReceipt.
printString!"numero scontrino "++numberReceipt
|
case store of     
       prodOne -> { store!34. case store of
ok ->  store?numberCard.store!numberCard++"234"
quit -> {} }
       quit -> {}
« Last Edit: 26-05-2018, 09:46:09 by Franco Barbanera » Logged
Franco Barbanera
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 3.083



WWW
« Reply #2 on: 25-05-2018, 15:59:45 »

Qui c'e' un errore


type bankProc = ?string.!string.end

type storeAcceptPrice = &{  ok: bankProc,
                            quit: end }
                        
type storeSelectProd = &{ prodOne: !integer.storeAcceptPrice,
           quit: end }


new store client : storeSelectProd

new sch bch    : !(bankProc)


client select prodOne.
client?price.
if price > 50
then client select quit
else client select ok. client!"234234".
client?numberReceipt.
printString!"numero scontrino "++numberReceipt
|
case store of     
       prodOne -> { store!34. case store of
          ok ->  sCH!(store)
          quit -> {} }
       quit -> {}
|
bCH?bank.
bank?numberCard.bank!numberCard++"234"

     
« Last Edit: 26-05-2018, 09:46:01 by Franco Barbanera » Logged
Pages: [1]   Go Up
Print
Jump to: