|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
fino a quale step di debugging sei arrivato ? (1, 2, 3)
con quali valori non funziona ? |
|
|
|
|
|
#22 | |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
devi fare il test di positività sul delta |
|
|
|
|
|
|
#23 |
|
Member
Iscritto dal: Oct 2003
Città: Alpignano (TO)
Messaggi: 61
|
ho fatto solo il primo, ma credo che sia li il problema....
per esempio inserendo in ordine: 1 -2 1 Funziona con tutte e 4 le opzioni... ma non funziona con tutti i valori e non riesco a capire perchè. Inserendo per esempio 3 2 1 non funge + |
|
|
|
|
|
#24 |
|
Member
Iscritto dal: Oct 2003
Città: Alpignano (TO)
Messaggi: 61
|
e come lo faccio il test di positività sul delta?
lo metto in un "if...then"? |
|
|
|
|
|
#25 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
se il delta è negativo ci sono due radici complesse e coniugate
se a > 0 la parabola ha concavità verso l'alto, giace tutta nel semipiano positivo e quindi è sempre dis>0 se a < 0 la parabola ha concavità verso il basso, giace tutta nel semipiano negativo e quindi è sempre dis < 0 (se a=0 delta=b*b>0) amen |
|
|
|
|
|
#26 |
|
Member
Iscritto dal: Oct 2003
Città: Alpignano (TO)
Messaggi: 61
|
forse ora ci sono!!!! Guarda un po se così ti pare corretto, a me pare fungere!
|
|
|
|
|
|
#27 | |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
dopo ti faccio vedere la riduzione del codice a 1/5 delle righe (vogliamo dire 9 righe ?) |
|
|
|
|
|
|
#28 |
|
Member
Iscritto dal: Oct 2003
Città: Alpignano (TO)
Messaggi: 61
|
wow!! Tutto in 9 righe??? Splendido... e dire che a me pareva già corto così
|
|
|
|
|
|
#29 | |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
comunque sì se hai adeguatamente "manipolato" i casi per delta<0 andrà bene. comunque ti anticipo che: 1) la morte sua dal punto di vista della semplificazione sintattica sarà il costrutto Select Case (up to 20 righe di codice) 2) la morte sua sull'algoritmo sarà un po' di semplificazione algebrica (up to 8-9 righe) |
|
|
|
|
|
|
#30 |
|
Member
Iscritto dal: Oct 2003
Città: Alpignano (TO)
Messaggi: 61
|
wow
Cmq ora il prog funziona benissimo.. gli ho detto di dirmi che la disequazione non ha soluzioni reali quando il delta è < 0 e ora non si impalla più Thx mille per tutto!! |
|
|
|
|
|
#31 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
cioè non è che non ha soluzioni reali, non ha radici reali, ma è sempre dis>0 per a>0 e dis<0 per a<0 e sono casi che devi considerare.
comunque per ora va bene così. notte. |
|
|
|
|
|
#32 |
|
Member
Iscritto dal: Oct 2003
Città: Alpignano (TO)
Messaggi: 61
|
Bè certo, ma quelli li considero domani
Notte anche a te |
|
|
|
|
|
#33 | |
|
Senior Member
Iscritto dal: May 2002
Città: udine
Messaggi: 546
|
Quote:
...ma mi do da fare!!! Ho trombato nei primi 5 giorni del mese dodici ultra80, otto ultra90, e due oltre100... ![]() Non mi sembra male, vero? Il fatto è che me le ruba tutte wicasa.... che si sa essere un ciao |
|
|
|
|
|
|
#34 | |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
|
|
|
|
|
|
|
#35 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
3 righe di calcolo + l'input dati:
Codice:
Sub Ph@t3()
a = 1
b = 2
c = 4
dis = 2 '1 - [<0] 2 - [<=0] 3 - [>=0] 4 - [>0]'
dis = dis - 2.5
If a = 0 Then Exit Sub
d = b * b - 4 * a * c
If d >= 0 Then: x1 = 0.5 * (b - Sqr(d)) / a: x2 = 0.5 * (b + Sqr(d)) / a
msg$ = "La disequazione è verificata " & Choose(Sgn(d) + 2, _
Choose((Sgn(a) * Sgn(dis) > 0) + 2, "per tutti i valori di R", "per nessun valore di R"), _
Choose((Sgn(a) * Sgn(dis) > 0) + 2, "per tutti i valori di R, " & Choose((Abs(dis) < 1) + 2, "incluso x1=x2= " & x1, "escluso x1=x2= " & x1), IIf(Abs(dis) < 1, "solo per x1=x2= " & x1, "per nessun valore di R")), _
"per tutti i valori " & Choose((Sgn(a) * Sgn(dis) > 0) + 2, "esterni", "interni") & " a x1= " & x1 & " e x2= " & x2 & Choose((Abs(dis) < 1) + 2, ", inclusi x1 e x2", ", esclusi x1 e x2"))
End Sub
|
|
|
|
|
|
#36 |
|
Member
Iscritto dal: Oct 2003
Città: Alpignano (TO)
Messaggi: 61
|
wow
Ma come faccio a scriverlo in pascal? Non serve scrivere "program"? E il begin? Perchè ho provato a scriverlo così, ma non funge, mi chiede il begin. Mi potresti spiegare un po il codice? Le sub non le abbiamo ancora viste Thx!! |
|
|
|
|
|
#37 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
no, lo puoi scrivere direttamente come main program senza bisogno di subroutine.
il problema è piuttosto l'esistenza del costrutto di selezione Choose in Pascal: Funzione Choose Seleziona e restituisce un valore da un elenco di argomenti. Sintassi Choose(indice, scelta-1[, scelta-2, ... [, scelta-n]]) La sintassi della funzione Choose è composta dalle seguenti parti: Parte Descrizione indice Obbligatoria. Espressione numerica o campo che restituisce un valore compreso tra 1 e il numero delle scelte disponibili. scelta Obbligatoria. Espressione Variant contenente una delle scelte possibili. Osservazioni Choose restituisce un valore dell'elenco di scelte in base al valore di indice. Se indice è 1, Choose restituisce la prima scelta dell'elenco; se indice è 2, restituirà la seconda scelta e così via. se l'equivalente di Choose c'è e lo puoi usare bene, senno' o ti fai un function (ma direi che è ancora presto) o usi gli If Then con qualche riga in più (poche) ma guadagnando in leggibilità. |
|
|
|
|
|
#38 |
|
Member
Iscritto dal: Oct 2003
Città: Alpignano (TO)
Messaggi: 61
|
Quindi in teoria potrei scriverlo così com'è?
Le subrutine sarebbero i "sub" vero? Cmq ora faccio un po di prove, poi ti dico |
|
|
|
|
|
#39 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
sì, sì più o meno (Pascal, Basic e Fortran sono fratelli anzi Padre e figli
tieni conto però che il tuo prof. potrebbe arricciare il naso perchè è troppo compatto e quindi poco leggibile ... comunque i parametri di selezione delle varie "frasi" sono tre: 1) segno di delta <0, =0, >0 2) segno del prodotto a*dis >0, <0 3) un indice di disequazione in senso stretto 0, 1 un'altra soluzione è caricare una matrice di frasi msg$(1 To 3, 1 To 2, 1 To 2) da cui estrai quella che ti serve in base ai tre indici calcolati. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:11.




















