Il Bar dell'Ingegneria

PASCAL E-learning

« Older   Newer »
 
  Share  
.
  1.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,170
    Reputation
    +295

    Status
    Offline
    Altra domanda:
    hai indicato come input un γ' (cioè γ.sat-γw).

    Nel caso di presenza di falda a quota diversa dal piano di campagna, teoricamente, servono sia il γ.sat che il γ.nat

    Dato che hai voluto complicare le cose con la questione della falda ritengo che si debba agire conseguentemente.

    Quindi il diagramma delle spinte sarebbe pari a:

    s = ka*γ.nat* z per z<= zw

    s= ka*(γ.nat* zw +(γ.sat-γ.w)*(z-zw)) per quote z> zw.

    La spinta del liquido sarebbe

    sw= γ.w)*(z-zw) per z>zw

    la spinta dovuta al sovraccarico sarebbe

    sq= ka*q

    Tu come intendi calcolare i diagrammi dis pinta?
     
    Top
    .
  2.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    792
    Reputation
    +15

    Status
    Offline
    CITAZIONE (afazio @ 11/2/2014, 12:31) 
    Vediamo di capire qualcosa estraendolo da quest'ammasso di fucsia.
    - Mi pare che hai spostato il controllo che io avevo chiamato con H[m] dal gruppo delle dimensioni al gruppo di controlli a sinistra.

    - Hai utilizzato per i nuovi input numerici i controlli Jujiboutil?

    - Cosa rappresenta il box accanto ai due check box relativi alla presenza della falda?

    Ti segnalo che i doppio radio button relativo alla falda è ridondante dato che ne basterebbe solo uno.
    Voglio comunque mantenere i doppi radio button ma almeno evitare che spuntandone uno devo poi a mano de-spuntare l'altro. Questo puo' avvenire in automatico se li raggruppiamo,

    Ciao

    1) Si, volevo separare ciò che serve per il calcolo dei parametri statici da ciò che serve per il disegno. Ho fatto danno?

    2) Dovrebbero essere quelli standard presenti in Lazarus. Come faccio a capirlo?

    3) il box rappresenta l'input dell'altezza di falda e, nella mia idea, si attiva pigiando sul radio SI, altrimenti è "grigiato".

    CITAZIONE (afazio @ 11/2/2014, 12:59) 
    Altra domanda:
    hai indicato come input un γ' (cioè γ.sat-γw).

    Nel caso di presenza di falda a quota diversa dal piano di campagna, teoricamente, servono sia il γ.sat che il γ.nat

    Dato che hai voluto complicare le cose con la questione della falda ritengo che si debba agire conseguentemente.

    Quindi il diagramma delle spinte sarebbe pari a:

    s = ka*γ.nat* z per z<= zw

    s= ka*(γ.nat* zw +(γ.sat-γ.w)*(z-zw)) per quote z> zw.

    La spinta del liquido sarebbe

    sw= γ.w)*(z-zw) per z>zw

    la spinta dovuta al sovraccarico sarebbe

    sq= ka*q

    Tu come intendi calcolare i diagrammi dis pinta?

    Se non ricordo male, la pressione (per la parte immersa), dovrebbe essere (sovraccarico a parte):

    Pressione del terreno immerso (quindi già corretto per la spinta di Archimede) + pressione idrostatica.
     
    Top
    .
  3.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    2,942
    Reputation
    +187

    Status
    Offline
    3) E' meglio in questi casi utilizzare un checkbutton (con il quadratino). Te ne basta uno soltanto con una Caption del tipo "Falda presente", oppure "Considera la falda", oppure ancora "Considera la falda presente".
    In questo modo non incorri nell'inconveniente che ti dice Afazio.

    I radio button hanno lo 'inconveniente' di poter essere attivo uno ed uno solamente alla volta.
    Immagina di dover avere bisogno di ulteriori radio-button per poter gestire altre scelte. E' chiaro quindi che si dovrà evitare che attivando, che so, la presenza del sovraccarico all'estradosso, venga deselezionata la falda.
    Per evitare questo spiacevole effetto la soluzione è quella di ricorrere ad un RadioBox. Ovvero confini i singoli pulsanti radio a gruppi 'coerenti'.
     
    Top
    .
  4.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,170
    Reputation
    +295

    Status
    Offline
    CITAZIONE (lisa_camayana @ 11/2/2014, 13:18) 
    Ciao

    1) Si, volevo separare ciò che serve per il calcolo dei parametri statici da ciò che serve per il disegno. Ho fatto danno?

    No, nessun danno.
    CITAZIONE
    2) Dovrebbero essere quelli standard presenti in Lazarus. Come faccio a capirlo?

    Lo capisci semplicemente selezionando il componente e guardando nell'ispettore degli oggetti di che tipo si tratta.
    Se è quello standard di Lazarus sarà un TEdit altrimenti è un TJLabeledFloatEdit
    CITAZIONE
    3) il box rappresenta l'input dell'altezza di falda e, nella mia idea, si attiva pigiando sul radio SI, altrimenti è "grigiato".

    ok, Necessita quindi una etichetta che indichi di cosa si tratta e in che unita di misura
     
    Top
    .
  5.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,170
    Reputation
    +295

    Status
    Offline
    CITAZIONE (lisa_camayana @ 11/2/2014, 13:18) 
    Se non ricordo male, la pressione (per la parte immersa), dovrebbe essere (sovraccarico a parte):

    Pressione del terreno immerso (quindi già corretto per la spinta di Archimede) + pressione idrostatica.

    A prescindere dal fatto che tu stessa avevi pensato di scindere poi i risultati in spinta H20 e spinta totale per cui sarebbe necessario calcolare separatamente i vari contributi, in questo caso ti ricordo che la pressione spingente dovuta al terreno è affetta dal coefficiente di spinta attiva mentre quella dovuta al liquido no, per cui le formule che ho dato io, formule separate per ciascun contributo, sono quelle corrette.

    Penso che adesso ci sono tutti gli ingredienti necessari per condire il brodo. Il mio invito è quello di iniziare a produrre tu qualcosa, altrimenti io in due minuti ti scrivo tutto il codice che gestisce i vari controlli e che calcola i vari contributi di spinta senza che alla fine ti resti nulla. Il programma prodotto sarebbe alla fine di una inutilità assoluta e nemmeno utile come trampolino di lancio per chi vuol iniziare a far q2ualcosa in lazarus (perche alla fine lo avrei fatto io spiccicando qui tutto il codice punti e virgola compresi).


    Sai gia come leggere un valore dal form e come depositarlo in una variabile, sai come scrivere una formula che calcola un qualcosa, sai anche come depositare un valore su un componente a schermo, sai come disegnare un segmento (e un diagramma triangolare o rettangolare che sia è pur sempre l'insieme di qualche segmento). Se riscontri problemi sulla gestione dei check box, non devi far altro che chiedere.
     
    Top
    .
  6.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    792
    Reputation
    +15

    Status
    Offline
    CITAZIONE (afazio @ 11/2/2014, 15:13) 
    CITAZIONE (lisa_camayana @ 11/2/2014, 13:18) 
    Se non ricordo male, la pressione (per la parte immersa), dovrebbe essere (sovraccarico a parte):

    Pressione del terreno immerso (quindi già corretto per la spinta di Archimede) + pressione idrostatica.

    A prescindere dal fatto che tu stessa avevi pensato di scindere poi i risultati in spinta H20 e spinta totale per cui sarebbe necessario calcolare separatamente i vari contributi, in questo caso ti ricordo che la pressione spingente dovuta al terreno è affetta dal coefficiente di spinta attiva mentre quella dovuta al liquido no, per cui le formule che ho dato io, formule separate per ciascun contributo, sono quelle corrette.

    Penso che adesso ci sono tutti gli ingredienti necessari per condire il brodo. Il mio invito è quello di iniziare a produrre tu qualcosa, altrimenti io in due minuti ti scrivo tutto il codice che gestisce i vari controlli e che calcola i vari contributi di spinta senza che alla fine ti resti nulla. Il programma prodotto sarebbe alla fine di una inutilità assoluta e nemmeno utile come trampolino di lancio per chi vuol iniziare a far q2ualcosa in lazarus (perche alla fine lo avrei fatto io spiccicando qui tutto il codice punti e virgola compresi).


    Sai gia come leggere un valore dal form e come depositarlo in una variabile, sai come scrivere una formula che calcola un qualcosa, sai anche come depositare un valore su un componente a schermo, sai come disegnare un segmento (e un diagramma triangolare o rettangolare che sia è pur sempre l'insieme di qualche segmento). Se riscontri problemi sulla gestione dei check box, non devi far altro che chiedere.

    Ok...ci provo.

    Mal che vada non ci riesco.....

    bye :)
     
    Top
    .
  7.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,170
    Reputation
    +295

    Status
    Offline
    CITAZIONE (lisa_camayana @ 11/2/2014, 15:47) 
    Ok...ci provo.

    Mal che vada non ci riesco.....

    bye :)

    Esatto. Solo chi tenta di salire la scala puo' scivolare sui gradini
    E se scivoli troverai certamente qualcuno che ti aiuterà.

    Se continuavo io a porre e proporre codice la cosa sarebbe stata oltremodo noiosa per tutti. Invece prova e riporta qui dove hai difficoltà.
     
    Top
    .
  8.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    2,942
    Reputation
    +187

    Status
    Offline
    CITAZIONE (lisa_camayana @ 11/2/2014, 15:47) 
    Ok...ci provo.

    Mal che vada non ci riesco.....

    bye :)

    Lisa è l'unico modo conosciuto per riuscire a fare altri passi oltre quelli già fatti.

    Spesso ti proponi di fare una cosa, e non ti riesce. Una prima volta, una seconda ed una terza.
    Poi ci riprovi in altra maniera sperando di 'ingannare' il compilatore. Poi ti chiedi, davanti alle 3 righe che hai scritto....."ma perchè non funziona?!?".
    E così provando e riprovando. Un'ottima scuola di umiltà. Non è mai come hai pensato all'inizio. Perchè il compilatore è esigente e le cose devono essere solo ed esclusivamente 'come dice lui' e non come pensi tu debba essere.

    Finchè un giorno, a mente serena, magari avendo leggiucchiato qualcosa qui e là ecco che improvvisamente .... funziona. E tu ti chiedi....ci avevo perso una settimana, un mese......ed era così semplice?

    Qui hai il vantaggio di avere un tutor, che ti eviterà, almeno fino al possibile, tanti stop e tante delusioni.
     
    Top
    .
  9.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    186
    Reputation
    0

    Status
    Offline
    Buongiorno, sarò breve, stavo scrivendo un programmino che mi calcolasse tutti i coefficienti di spinta attiva/passiva.
    L'unica cosa che vorrei modificare è questo pezzo di programma
    in pratica vorrei che in base alla mia ag e al mio tipo di terreno mi cambiasse il beta da usare nei calcoli, grazie comunque.
    Il programma mi prende in automatico la terza condizione per tutti i suoli( quindi beta o è uguale a 0.18 o a 0.2), è come se non leggesse la mia ag che inserisco da tastiera.
    CITAZIONE
    procedure TKa_Kp.ComboBox1Change(Sender: TObject);
    var
    amax1,betam:Double;
    begin

    Val(angolo7.text,amax1);

    if (combobox1.itemindex =0) and (amax1<=0.4) and (amax1>0.2)then betam:=0.31;
    if (combobox1.itemindex =0)and (amax1<=0.2) and (amax1>0.1)then betam:=0.29;
    if (combobox1.itemindex =0)and (amax1<=0.1)then betam:=0.20;

    if (combobox1.itemindex =1)and (amax1<=0.4) and(amax1>0.2) then betam:=0.31;
    if (combobox1.itemindex =1)and (amax1<=0.2) and (amax1>0.1) then betam:=0.24;
    if (combobox1.itemindex =1)and (amax1<=0.1)then betam:=0.18;

    if (combobox1.itemindex =2)and (amax1<=0.4) and (amax1>0.2) then betam:=0.31;
    if (combobox1.itemindex =2)and (amax1<=0.2) and (amax1>0.1) then betam:=0.24;
    if (combobox1.itemindex =2)and (amax1<=0.1)then betam:=0.18;

    if (combobox1.itemindex =3)and (amax1<=0.4) and (amax1>0.2) then betam:=0.31;
    if (combobox1.itemindex =3)and (amax1<=0.2) and (amax1>0.1) then betam:=0.24;
    if (combobox1.itemindex =3)and (amax1<=0.1)then betam:=0.18;

    if (combobox1.itemindex =4)and (amax1<=0.4) and (amax1>0.2) then betam:=0.31;
    if (combobox1.itemindex =4)and (amax1<=0.2)and (amax1>0.1) then betam:=0.24;
    if (combobox1.itemindex =4)and (amax1<=0.1)then betam:=0.18;

    angolo8.Text:=floattostr(betam);
    end;

    Scusate funziona, legge comunque il valore e me lo cambia, errore mio ^^"

    amax=ag*Ss*St
    da cui poi beta*amax =kh

    Edited by pepo087 - 17/2/2015, 12:19
     
    Top
    .
  10.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,170
    Reputation
    +295

    Status
    Offline
    CITAZIONE (pepo087 @ 17/2/2015, 12:00) 
    Buongiorno, sarò breve, stavo scrivendo un programmino che mi calcolasse tutti i coefficienti di spinta attiva/passiva.
    ...
    ...
    Scusate funziona, legge comunque il valore e me lo cambia, errore mio ^^"

    amax=ag*Ss*St
    da cui poi beta*amax =kh

    Usi Lazarus?

    Hai valutato la possibilità di cambiare quella sfilza di if ... then con un case combobox1.itemindex of?

    Inoltre per poter tenere aggiornata la finestra serve attivare anche l'evento onChange del controllo angolo7

    Altra cosa: hai valutato la possibilità di installare il controllo per l'input numerico?
     
    Top
    .
  11.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    186
    Reputation
    0

    Status
    Offline
    no, il fatto di usare un bel case ci sta, solo che con l'if era piu' immediato assegnargli piu' condizioni e ho perso meno tempo;la finestra si aggiorna ogni qualvolta cambio il tipo di ag e il di terreno dalla combo box, cioè mi si aggiorna solo il beta per intenderci, purtroppo questo non l'ho ancora fatto,ti dico solo che a volte mi sbaglio nel mettere un numero con la virgola come input iniziale e il programmino crasha, è un mio limite ^^"
    Poi ora come ora stavo passando a grafico il tipo di muro(qualsiasi esso sia) e l'angolo critico ad esso associato, ma so' che perderò tempo e l'esame si avvicina...
    Grazie comunque, sempre gentilissimo ;)
     
    Top
    .
  12.     +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    12
    Reputation
    0

    Status
    Offline
    Ciao.
    Questo è il mio primo post, finora vi ho seguiti in modo "silente". Innanzitutto complimenti per il forum e vi ringrazio perchè mi avete fatto venire la voglia di rispolverare le mie conoscenze di programmazione in Turbo Pascal.
    Sto cercando di passare a questo nuovo modo di programmare ed ho iniziato con l'esempio di questa discussione.
    Ho però un problema e vi chiedo aiuto.
    Sto cercando di installare il pacchetto Jujiboutil come da indicazioni di Afazio (ho letto anche la sesta pagina della discussione "Quattro passi sui quattro vertici". Il pacchetto viene compilato correttamente ma quando vado ad installarlo mi escono fuori questi messaggi che trovate nell'immagine. Io ho installato la versione Lazarus x64 ed ho provato ad installare il pacchetto Jujiboutil sia nella versione 2.0, sia nella versione 2.1.
    jpg
    Già che ci sono vi chiedo anche:
    1) che significato ha il $ in una dichiarazione del tipo array[1..$46]
    2) nel vecchio turbo pascal per provare il codice andavo in debug inserendo alcune variabili e vedendo ad ogni riga di codice che succedeva. Adesso non riesco a farlo nel senso che appena vado dal menu Esegui-->Passo interno o Passo Oltre (F7 ed F8) mi va in assembler. Possibile mai che non si può più debuggare come una volta? Se si, da come si inseriscono i parametri per controllare ad esempio la variazione del valore di una variabile all'interno di un ciclo for?

    Grazie anticipatamente.
     
    Top
    .
  13.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,170
    Reputation
    +295

    Status
    Offline
    CITAZIONE (gbru @ 9/4/2015, 11:40) 
    Ciao.
    Questo è il mio primo post,

    Benvenuto.

    Spero di poterti dare una qualche risposta ma non te lo assicuro.

    CITAZIONE
    Sto cercando di installare il pacchetto Jujiboutil come da indicazioni di Afazio (ho letto anche la sesta pagina della discussione "Quattro passi sui quattro vertici". Il pacchetto viene compilato correttamente ma quando vado ad installarlo mi escono fuori questi messaggi che trovate nell'immagine. Io ho installato la versione Lazarus x64 ed ho provato ad installare il pacchetto Jujiboutil sia nella versione 2.0, sia nella versione 2.1.

    Caspita, tu sei arrivato gia alla versione 2.1 del pacchetto. IO ho controllato la versione che ho installato e sono fermo alla versione 1.0. e purtroppo non posso darti nessuna risposta dato ch eio non riscontro l'errore. Non trovo nemmeno l'unit TreeFilterEdit.


    CITAZIONE
    Già che ci sono vi chiedo anche:
    1) che significato ha il $ in una dichiarazione del tipo array[1..$46]

    Questa definizione di matrice mi sembra molto strana. Dove la hai trovata?

    CITAZIONE
    2) nel vecchio turbo pascal per provare il codice andavo in debug inserendo alcune variabili e vedendo ad ogni riga di codice che succedeva. Adesso non riesco a farlo nel senso che appena vado dal menu Esegui-->Passo interno o Passo Oltre (F7 ed F8) mi va in assembler. Possibile mai che non si può più debuggare come una volta? Se si, da come si inseriscono i parametri per controllare ad esempio la variazione del valore di una variabile all'interno di un ciclo for?

    Se vai nel menù "Visualizza" trovi la voce "finestre di debug" dalla quale puoi selezionare le finestre che desideri per il tuo debug.

    P.S.: Non ho ancora aggiornato nulla del mio ambiente lazarus perche stavo aspettando il rilascio della nuova versione stabile di cui sono gia state selezionate le due versioni candidate. Penso che a brevissimo rilasceranno la nuova versione con quella pensero' poi ad aggiornare anche i vari pacchetti.
     
    Top
    .
  14.     +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    12
    Reputation
    0

    Status
    Offline
    Con la versione 1.0 di Jujiboutil mi da lo stesso problema.
    L'array con il $ l'ha trovato il mio collega in un vecchio codice compilato con delphi anni fa. Appena ho un po di dimestichezza lo provo io. Anche se vedo che il carattere $ viene utilizzato anche in altre parti del codice tipo {$mode objfpc}{$H+}.
    Ok per le finestre che mostrano parametri e variabili, devo prendere dimestichezza con i breakpoint.

    Grazie ancora
     
    Top
    .
  15. Vinc.enzo
        +1   -1
     
    .

    User deleted


    credo che la graffa seguito dal simbolo del dollaro indichi al compilatore di cmpilare l'istruzione.

    www.html.it/pag/15546/la-sintassi-parte-prima/

    www.marcocantu.it/epascal/ch02code.htm

    da quest'ultimo si legge

    Da notare che se la parentesi graffa o la parentesi-asterisco e' seguita dal simbolo del dollaro ($), essa diventa una direttiva del compilatore, come in {$X+}.

    Nota: Attualmente, le direttive del compilatore sono ancora commenti. Ad esempio, {$X+ Questo e' ancora un commento} e' valido. E' sia una valida direttiva sia un valido commento, anche se un buon progammatore tendera' probabilmente a separare direttive e commenti.
     
    Top
    .
91 replies since 3/2/2014, 14:45   1987 views
  Share  
.