Funzione SE Excel (esempi + video)\nlivello: intermedio 3 minuti\nLa funzione SE ci permette di valutare il contenuto di una cella e di prendere di conseguenza una decisione.\nSe la cella con la quantità a magazzino è minore o uguale a 1000 voglio scrivere “Prodotto da riordinare” altrimenti scrivo “Scorta sufficiente”.\nLa funzione SE è quindi concettualmente per noi tutti molto intuitiva. Applica infatti un ragionamento che facciamo 100 volte al giorno. Valutiamo una situazione e di conseguenza facciamo una scelta:\nSe c’è il sole utilizzo la bici altrimenti prendo la macchina. Se leggo fino in fondo questo breve tutorial imparo bene la funzione SE altrimenti no.\nSe cerchi una guida alle funzioni di Excel (e nel contempo vuoi sostenere questo blog ) ti consiglio l’acquisto della mia guida alle funzioni: un file pdf che illustra 70 funzioni importanti e mostra 100 esempi pratici.\nCome si scrive la funzione SE?\nCasi pratici funzione SE\nFunzione SE con date\nGuida funzioni (pdf)\nLa funzione SE va scritta in una singola cella. Spesso poi la cella è la prima di un elenco quindi essa viene trascinata verso il basso su tutte le righe dell’elenco.\nEcco come va scritta la funzione SE:\nLa funzione SE richiede tre parametri:\n– il Test (obbligatorio): è una espressione che chiediamo ad Excel di valutare, in questo caso chiediamo se il valore della cella E2 è minore o uguale a 100\n– il Se_vero (facoltativo): quel che vogliamo far fare a Excel quando il test è vero. Nell’esempio vogliamo scrivere “Basso” ma, come vedremo negli altri esempi di questo tutorial, a volte potremmo voler far eseguire un calcolo invece che far scrivere un testo/numero/data\n– il Se_falso (facoltativo): su questo parametro excel “arriva” quanto il test è falso, nel nostro caso quanto è falso che E2 è minore o uguale a 100, quindi quando E2 è maggiore di 100. Per questo facciamo scrivere “Alto”\nQuando Se_vero o Se_falso non vengono specificati il risultato sarà uno dei due valori logici VERO o FALSO.\nSe preferiamo inserire il SE utilizzando la finestra di inserimento dei parametri questi sono i passaggi:\n1 ci si posiziona sulla cella dove si vuole il risultato\n2 si clicca sul tastino Fx di inserimento funzioni e nella tipologia Logiche si sceglie il SE\n3 si definiscono il test e i parametri Se_vero e Se_falso\nIl SE appartiene alle funzioni logiche ed è tra le più utilizzate tra tutte le funzioni. Si presta, infatti, a risolvere tantissime situazioni che richiedo una verifica di una situazione.\nEcco alcune casi pratici di utilizzo della funzione SE.\nEsempio 1. Vogliamo scrivere “Donna” quando la cella del genere riporta “F”, “Uomo” altrimenti.\nche potrebbe anche essere scritta in questo modo:\ndove <>”f” significa diverso da “f”\nEsempio 2. Vogliamo calcolare un importo scontato applicando uno sconto del 5% se il cliente ha speso meno di 100 euro, del 10% se ha speso da 100 in su.\nEsempio 3. Vogliamo nascondere temporaneamente il risultato di una formula. Nell’esempio qui sotto viene calcolata la somma cumulata degli importi aggiungendo il valore del singolo mese alla somma dei mesi precedenti.\nLa formula se senza restituisce un valore fuorviante:\nPossiamo aggiustare inserendo un SE per far sapere ad Excel che vogliamo che visualizzi la somma cumulata solo per i mesi per cui abbiamo già il valore dell’importo:\nEsempio 4. Vogliamo verificare la correttezza dei codici prodotto. Se la lunghezza del codice è pari a 9 il codice ha un numero esatto di cifre altrimenti segnaliamo che il codice è errato.\nEsempio 5. Se le ultime lettere del codice prodotto sono “FFF” allora noi sappiamo che il prodotto è una sedia, altrimenti è un tavolo.\nAttenzione però che se avessimo un codice con tre numeri finali dovremmo ricordare comunque che la funzione DESTRA restituisce un risultato testuale. Quindi andrebbe scritta in questo modo:\noppure in questo modo:\ndove il – – davanti alla funzione DESTRA converte il risultato di destra in numerico\nIl modo errato sarebbe: =SE(DESTRA(B2;2)=40;”sedia”;”tavolo”)\nEsempio 6. La funzione SE può essere utilizzata anche in combinata con il cerca verticale. E in più modi:\n– per richiamare un cerca vert piuttosto che un altro\n– per modificare in maniera dinamica il riferimento alla matrice tabella\nSCOPRI IL MIO NUOVO VIDEO CORSO SU CERCA.VERT. Diventa un esperto sul cerca verticale con esempi pratici e 21 ESERCIZI CON VIDEO SOLUZIONI!\nQuando utilizziamo nella funzione se una data, può capitare di trovarci di fronte ad una data memorizzata come testo, cosa che può succedere ad esempio quando il file è una estrapolazione da un database. In questo caso dobbiamo convertire la data testuale attraverso la funzione DATA.VALORE, la quale converte una data in formato testo in un numero quindi una data, come ci dice anche la guida ufficiale.\n=SE(B2<DATA.VALORE(“1/1/2016”);”Pre 2016″;”2016 o successivo”)\nSe la data è in formato numerico/data possiamo invece scrivere: =SE(B2<1/1/2016;”Pre 2016″;”2016 o successivo”)\nChiaramente potremmo fare riferimento senza problemi ad una data scritta in una cella esterna:\n=SE(B2<G$1;”Pre 2016″;”2016 o successivo”)\nSe hai trovato interessante questo tutorial sulla funzione SE forse ti può interessare anche il tutorial sui SE ANNIDATI\nSe cerchi un video corso avanzato di Excel on line ti segnalo il corso di Excel avanzato di Matteo Olla. Rapporto qualità prezzo davvero ottimo.\nComplimenti, molto chiaro. Ho ricreato gli esempi ed è andato tutto bene. Stavo però facendo alcune prove e mi sono imbattuto in un dubbio che non riesco a risolvere. Ho creato una funzione SE la quale mi restituisce dei valori numerici in base al contenuto testuale che inserisco in determinate celle. Se poi però vado a sommare ( con la semplice funzione SOMMA ) i valori numerici ottenuti con la funzione SE, mi restituisce sempre 0. Potrebbe darmni qualche suggerimento? non capisco cosa stia sbagliando. Grazie mille\nAntonello 4 anni ago Reply\nti ringrazio per le spiegazioni che sono sempre molto esaustive.\nTi chiedo però di darmi una mano ulteriore per risolvere un caso che ho visto non hai trattato (spero non mi sia sfuggito).\nPrendiamo il caso del primo esempio che hai presentato dopo il titolo “Come si scrive la funzione SE?”. Io ho un caso simile ma devo differenziare ulteriormente il risultato se la spesa è stata fatta da una donna o se è stata fatta da un uomo. Cioè specificare che se la spesa è stata fatta da una donna deve darmi come risultato “Basso” se <100 se è stata fatta da un uomo deve darmi come risultato "Basso" se <90.\nSono un insegnante di educazione fisica è ho bisogno di valutare i miei ragazzi con parametri diversi se sono maschi o femmine. Uso la formula SE per specificare che da un dato risultato ad un altro mi deve dare valore 6, poi 7 e così via. Purtroppo però non riesco a diversificare ulteriormente in base al sesso.\nTi prego di aiutarmi.\nToni 4 anni ago Reply\nCiao Toni, io penso che dovresti utilizzare due se annidati oppure una funzione E all’interno della funzione SE.\nQualcosa tipo: =SE(A2=”F”;SE(B2<100;"Basso";"Alto");SE(B2<90;"Basso";"Alto")) -> il secondo SE viene letto solo quando A2 non è F\nSe cmq vuoi inviarmi uno stralcio del tuo file, senza dati sensibili ovviamente, fai pure: samuele@amicoexcel.it\nBuongiorno, volevo chiedere se é possibile creare una funzione SE con riempimento cella? Esempio …se numero è uguale alla cella B2 allora colore verde…altrimenti rosso..?\nTetyana 3 anni ago Reply\nCiao Tetyana secondo me dovresti provare con la formattazione condizionale\nPer favore,come risolvere questo caso:\nSe una cella contiene un valore superiore a 0 il risultato può essere scritto con un colore diverso dal nero?Grazie per la vostra disponibilità-\nGiuseppe Zonno 3 anni ago Reply\nCiao Giuseppe. Certo. Utilizzerei la formattazione condizionale. Prova a vedere il tutorial sulla formattazione condizionale. E se hai qualche dubbio sono qua.\nCiao Samuele, ho creato un menu a tendina con 3 scelte (NULLA, OPZ. 1 E OPZ. 2), molto semplicemente, vorrei fare in modo in un altra cella adiacente, di valorizzare una somma solo SE l’opzione scelta è la 1. Analogamente in un altra cella adiacente alla precedente, valorizzare una somma solo è stata scelta l’opzione 2. Non riesco a scrivere la formula…\nMoreno 3 anni ago Reply\nTrovato! Dovevo inserire le Opzioni tra le virgolette!\nVolevo sottoporti una richiesta: dovrei utilizzare la funzione se ma ricevere più di due risposte. Esempio nubile-celibe, sposato/divorziato. Come devo impostare la formula?\nLuciano 3 anni ago Reply\nCiao Luciano, penso dovresti utilizzare il SE doppio. Questo articolo sul se annidato potrebbe esserti utile. Se vuoi farmi un esempio più dettagliato del tuo caso lo guardo volentieri.\nGrazie, Samuele, ho provato con il SE annidiato ed ho impostato la formula così:\nfunzionato alla perfezione.\nCiao. Per favore potresti aiutarmi?\nHo una serie di 3500 numeri (7 cifre ciascuno) scritti tutti in colonna in A.\nLi ho ordinati in modo crescente ma come faccio a sapere se ce ne sono due uguali.\nRaffaella Mantovani 3 anni ago Reply\nCiao Raffaella. Per sapere se ce ne sono due uguali secondo me puoi usare almeno un paio di metodi:\n1) seleziona tutte le celle, vai su formattazione condizionale, regole evidenziazione celle, valori duplicati…\nQuesto ti colora con un solo colore tutte le celle che hanno dei duplicati\n2) sulla colonna accanto, a partire dalla seconda riga, scriverei la formula A2=A1… se restituisce VERO il numero è uguale a quello sopra\nFammi sapere. Samuele\ncon la formula SE è andato tutto benissimo.\nMai trovato delle lezioni così chiare e semplici ma esaustive\nFrancesca Golzi 3 anni ago Reply\nio sto facendo dei orari di lavoro e una cella la compilo con la parola chiusura alla quale li posso dare un valore tipo “IN A1 HO 18:00, “IN A2 HO CHIUSURA E IN A3 METTO LA FORMULA =SE(A2=”Chiusura”;”24:00″)-A1 e in A3 MI CALCOLA IL RISULTATO GIUSTO CHE SAREBBE 6:00 e fin qua ci siamo .se la parola CHIUSURA LA MODIFICO TIPO 23:00 COME POSSO SCRIVERE LA FORMULA…AIUTATEMI CHE STO IMPAZZENDO GRAZIE\nermir 3 anni ago Reply\npotrebbe essere =SE(A2=”Chiusura”;24;A2)-A1 ?\nBuon pomeriggio Samuele,\nil tuo blog è davvero utilissimo.\nTi chiedo una gentilezza, avrei un calcolo SE da eseguire con le seguenti caratteristiche:\nLa colonna H riporta una variabile in percentuale. avrei bisogno sulla casella di fianco di far si che a seconda delle seguenti regole venda riportata la dicitura 1 oppure 2 o in alternativa 3 :\nTi ringrazio in anticipo !\nEsculapio 3 anni ago Reply\nIl tuo SE potrebbe essere =SE(H2<=50;1;SE(H2<=80;2;3))Adattala rispetto ai valori che effettivamente hai nelle celle...non se hai il semplice rapporto (valori da 0 a 1) oppure proprio i valori percentuali\nTutto perfetto ! Era in percentuale, ma con una piccola modifica ho risolto.\nSempre gentilissimo e disponibilissimo !\nCiao Avrei una domanda al quale non riesco a trovare risposta.\nSpero mi possa aiutare qualcuno\nHo una cella nel quale c’è il nome del prodotto.\nAll’interno del nome del prodotto ci sono svariate parole naturalmente. Faccio un paio di esempi cosi da poter essere più chiaro possibile.\nriga 1 cella B1: Braccioli gonfiabili Frozen eta +3 anni\nriga 2 cella B2; Giochi Preziosi – Braccioli Spiderman gonfiabili età +3 anni\nAvrei bisogno di una funzione che mi permettesse di scrivere nella celle J1 “Femmina” se trova la parola Frozen e “Maschio” se trova la parola Spiderman\nStesso dicasi per la riga 2, riga 3, riga 4 ecc…..\nIvan Galtieri 3 anni ago Reply\nLa formula potrebbe essere:\nDue SE annidati. Il primo ha come test la verifica se c’è la parola Frozen (fatta con il RICERCA, la quale restituisce errore se non trova la stringa), nel se_falso del primo SE c’è il secondo SE.\nFammi sapere se ti può andare bene. Ciao!\nComplimenti per i tutorial, estremamente chiari e concisi, ho provato a spulciare annche i video ma non ho trovato la solouzione al mio problemino…\nHo una tabella su un foglio secondario con un elenco di province, sul principale vorrei che se in una colonna una delle province mi vinere riportata excel mi restituisca il testo A, altrimenti nulla.\nAl momento la mia formula funziona solo se riporto le provincie nell’ordine esatto in cui sono scritte nella tabella sul foglio secondario, se poi provo a trascinare la formula SE nel foglio principale non funziona per nulla…\nroberto 3 anni ago Reply\nCiao Roberto. Dovresti usare il CERCA.VERT secondo me, non il SE.\nSe hai dubbi mandami due dati su file Excel… samuele@amicoexcel.it\nma se io dovessi cercare un valore >500 e farmi restituire un testo e invece dove il valore non è >500 lasciare il valore che c’è è fattibile?\nvaleria 2 anni ago Reply\nil tuo SE potrebbe essere qualcosa tipo =SE(A2>500;”tuo_testo”;A2).\nSe il valore non è maggiore di 500 allora riscrivi il valore stesso.\navrei bisogno di ottenere questo risultato : se il valore di una cella (es. D4) è pari a 0,00 sostituiscilo con il valore della cella soprastante (es. D3). Come posso fare?\nRossana 2 anni ago Reply\nBuongiorno Rossana, in un’altra cella scriverei =SE(D4=0;D3;D4). Può essere?\nnon riesco a capire come inserire una formula…le spiego.\ncella A1 scritta ALTO, cella B1 scritta ALTO, vorrei che nella cella C1 uscisse una scritta tipo DA VENDERE\nse nelle celle A e B ci fosse scritto BASSO la C1 dicesse DA SCARTARE\ne nel caso di ALTO BASSO, C1 dicesse DA CONTROLLARE\nNon so se quello che sto chiedendo è oggetto di ciò che state discutendo in questa pagina ma mi farebbe un favore enorme se mi potesse aiutare\nAlessandro 2 anni ago Reply\nVedo due strade:\n1) SE annidati con all’interno la E\n=SE(E(A1=”alto”;B1=”alto”);”da vendere”;SE(E(A1=”basso”;B1=”basso”);”da scartare”;”da controllare”))\n2) un CERCA.VERT\ncostruendo una matrice tabella, ad esempio in I1:J4, fatta così\naltobasso\tda controllare\nbassoalto\tda controllare\nbassobasso\tda scartare\naltoalto\tda vendere\nla funzione potrebbe essere\nscusa se disturbo ma avrei necessita di fare un’operazione complessa su excel.\nIn una cella (M83) ho scritto una funzione tipo =SE(G83<=14,5;"0";SE(G83<=24,5;"100";SE(G83=34,5;”550″))))….bene funziona! Fin qui tutto semplice (immagino avrei potuto scrivere una formula più semplice…ma…non importa).\nTuttavia il mio quesito non è terminato. Devo fare un altro controllo, cioè:\nse il valore della cella della stessa riga (F83) è > del risultato della formula scritta in M83 di cui sopra allora scrivi il contenuto di F83 altrimenti lascia il risultato ottenuto dalla formula .\nNon è che mi aiuteresti. Grazie100000\nANTONIO ROMEO 2 anni ago Reply\nAggiungerei un SE davanti…\nLa tua originale è\n=SE(G83< =14,5;"0";SE(G83<=24,5;"100";SE(G83=34,5;”550″)))) potresti aggiungere =SE(F83>(SE(G83<=14,5;0;SE(G83<=24,5;100;SE(G83=34,5;550))));F83;SE(G83<=14,5;0;SE(G83<=24,5;100;SE(G83=34,5;550))))però occhio alle virgolette sui numeri.. toglile se vuoi risultati numerici, altrimenti saranno testuali\ncomplimenti per i tutorial.\nsupponiamo di avere in A1 un valore prefissato, in A2 un valore che cresce progressivamente. È possibile, nel momento in cui A2 diventa = o > di A1, saltare alla cella sucessiva A3 e proseguire il conteggio ?\nMarco 2 anni ago Reply\nGrazie tanto,da 4 lezioni non ho capito il commando ma grazie a te l’ho capito subito.Ti stimo tanto.\nMatteo 2 anni ago Reply\nbuongiorno, ti ringrazio per gli esempi che ho cercato di comprendere, ma fino ad ora non sono ancora riuscito a fare quello che mi serviva a me; provo a spiegarti\nho in una cella un valore (risultato di una somma fra diverse celle) che può teoricamente andare da 5 a 600 ed il valore entro il quale lo vorrei far visualizzare non deve superare il120\nho provato a fare questo =SE(M1>600;SE(M1>480;SE(M1>360;SE(M1<240;SE(M1<120);M1-120;M1)\nper riportare il valore entro il 120 e non superiore, ma mi da errore.\nGrazie per la spiegazione che riuscirai a darmi.\nugo 2 anni ago Reply\nBuongiorno Ugo. Non mi è chiaro perché nella formula vai a valutare 480, 360, 240 ecc. Forse manca qualche info su questo.\nCon =SE(M1>120;M1-(M1-120);M1) faresti vedere il numero se inferiore a 120 o lo imposteresti a 120 se superiore\nBuon giorno Samuele\nChiedo il tuo aiuto in quanto non riesco a scrivere una formula.\nHo necessità di riempire una cella in base al riempimento di un’altra. Ad esempio:\nSe nella cella A1 viene inserita una A, nella cella B1 deve comparire automaticamente 10.\nSe nella cella A1 viene inserita una B, nella cella B1 deve comparire automaticamente 9.\nSe nella cella A1 viene inserita una C, nella cella B1 deve comparire automaticamente 8.. e così via.\nPer ora ho scritto solo questo pezzo: =SE((C2=”A+”);”10″) ma non riesco ad andare avanti.\nNicola Cuccu 2 anni ago Reply\nAlcune soluzioni che mi vengono in mente:\n1) funzione SE annidata\nal posto del 7 inserisci un altro SE con la stessa logica dei primi… e via via fino a prendere in considerazione tutti i valori\n2) se hai una versione di Excel che ha la funzione PIÙ.SE\naggiungendo dopo il 9 tutte le altre condizioni\n3) sfruttando la funzione CODICE, che restituisce il codice in base al set di caratteri installato\n4) creando una tabellina con con lettere nella prima colonna e numeri nella seconda,\nGrazie per gli esempi esposti , volevo chiederle un aiuto in merito ad una funzione che non riesco a trovare.\nin una casella vorrei scrivere un valore numerico es da 1 a 10 e far colorare la casella adiacente di un colore corrispondente , 10 colori diversi a mia scelta che cambieranno a secondo il valore numerico posto nella casella numerica.\nGrazie anticipatamente e buona serata\ngianpaolo 1 anno ago Reply\nCiao Gianpaolo, dovresti provare con la formattazione condizionale, strumento che colora a seconda del contenuto.\nvolevo chiederle un aiuto, sto svolgendo un problema dove mi chiede:\nSe l’ultima lettera del nome è “a” scrivere “donna”, altrimenti “uomo” (utilizzare la funzione Destra per trovare l’ultima lettera)\ncome devo impostare la formula?\nAntonella 1 anno ago Reply\nNel caso di presenza di spazi:\nChiarissimo grazie mille.\nOra mi trovo nella casella successiva dove praticamente devo svolgere questo: se è “idoneo/a” e “uomo” scrivi “attore”, altrimenti “respinto”. Se è “idoneo/a” e “donna” scrivi “attrice” , altrimenti ” respinta” (usare SE come funzione principale e al suo interno). Ho provato così:\nma mi esce errore\nCiao Samuele, ho bisogno di un aiuto. Devo inserire una funzione in un contesto di questo tipo: se nella casella A1 è inserita la lettera A restituiscimi il valore 1, se la lettera B, il valore 2, se la lettera C il valore 3 ecc… Quale funzione devo utilizzare? Ho provato con la funzione =SE, ma non mi funziona su più di una lettera. Illuminami… Grazie mille\nAndrea 1 anno ago Reply\nCiao Andrea. Utilizzerei il CERCA.VERT.\nPuoi costruirti una tabella su cui cercare, formata da due colonne.\nNella prima scrivi A, B, C, ecc. Nell’altra 1, 2, 3.\nAvrei la necessità di cambiare il colore di riempimento di una cella nel caso la cella contenga due testi specifici per esempio : “Dom” o “Sab” sono riuscito utilizzando la formattazione condizionale, ma funziona solo per un testo non riesco a fare OR dei due.\nMaurizio Ferrari 1 anno ago Reply\nSalve avrei bisogno di un aiuto:\nho impostato una cella a tendina con 5 giudizi, pieno e consapevole, pieno, buono, parziale, scarso;\nvorrei impostare in una cella una formula in cui se nella la cella a tendina fosse selezionata pieno e consapevole vorrei che mi comparisse il numero 5, se pieno il numero 4, se buono il numero 3, ect.. come posso fare? ho provato con il se ma non riesco\nrita canale 1 anno ago Reply\nSalve Rita. Farei così:\n=SE(A2=”pieno e consapevole”;5;SE(A2=”pieno”;4;SE( ecc. ecc. )))\n=PIU’.SE(A2=”pieno e consapevole”;5;A2=”pieno”;4;ecc.\nBuongiorno Samuele, un aiuto cortesemente:\nUtilizzando la funzione Se considerando una tavella avente 2 colonne,sulla prima A 5 righe aventi nomi, sulla seconda B, in corrispondenza del nome un valore.\nLa formula deve restituire il nome riferito a chi ha il voto più alto. Es.: Mario\nWalter Cardin 1 anno ago Reply\ncon la funzione MAX ci si potrebbe trovare il valore più alto. Con le funzioni INDICE e CONFRONTA ci si potrebbe trovare il nome. Tipo:\nho un piano di ammortamento di un mutuo, con una colonna riferita alle scadenze delle rate ed una riferita al capitale residuo dopo il pagamento della rata corrispondente. Ho bisogno di una formula che prenda dalla colonna il valore del capitale residuo alla data odierna in automatico. Grazie.Complimenti per il sito.\nFrancesco 1 anno ago Reply\nAlla fine ci sono arrivato così VLOOKUP(TODAY();intervallo intera tabella;colonna capitale residuo)\nOttimo Francesco. E grazie per il gentile feedback.\nComplimenti Samuele per la tua competenza.\nVolevo chiederti un aiuto.\nEcco il mio problema: vorrei capire se esiste una funzione “logica” che ti permette di “inserire” in automatico un valore in una cella di excel se sono presenti CONTEMPORANEAMENTE determinati “valori” in altre DUE celle.\nIn altre parole se nella cella “A” è presente il valore “x” e nella cella “B” è presente CONTEMPORANEAMENTE il valore “y”, allora nella cella “C” excel inserirà in automatico il numero “z”.\nNello specifico io vorrei ottenere questo:\ncella in Colonna A: può assumere due valori H o L.\ncella in Colonna B: può assumere due valori H o L.\ncella Colonna C: voglio che mi dia in “automatico” uno dei seguenti numeri in base alle possibili combinazioni delle colonne A e B, ossia:\nCol A. e Col.B …Col. C\nH e H …. 1\nH e L …. 2\nL e H …. 3\nL e L …. 4\nHo letto la sintassi della regola “SE” ma non mi sembra faccia al caso mio. O mi sbaglio?\nGrazie mille in anticipo per la tua disponibilità.\nAnna Incerto 12 mesi ago Reply\nPuoi usare la funzione E nel test del SE.\nQuindi =SE(E(A2=”H”;B2=”H); 1;SE(E(A2=”H”;B2=”L);2;SE(ecc.)\nQui trovi il mio tutorial:\nOppure, come alternative, puoi dare un’occhiata alle funzioni PIU’.SE o CERCA.X\nsamuele 12 mesi ago Reply\nSto provando in tutti i modi a scrivere una formula SE che mi aiuti in questo:\nColonna A -> dei termini in italiano\nColonna B -> in B1 vorrei scrivere FRA (per francese) o ENG (per inglese)\nLa funzione SE dovrebbe essere: SE in B1 c’è FRA, restituisci (parola in francese), altrimenti (parola in inglese).\nPoi a seconda della traduzione che mi serve (se inglese o francese), in B1 andrò a scrivere FRA o altro.\nÈ corretta impostata come segue?\nA2: comincia l’elenco delle parole in italiano\nB1: FRA (o altro)\nChe sarebbe: se in B1 c’è FRA, restituiscimi chassis, altrimenti undercarriage.\nMarta 12 mesi ago Reply\nCiao Marta. Sì corretto. Aggiungici solo i doppi apici, perché sono criteri testuali:\nCuriosità: perché non valuti la creazione di un elenco con termini italiano e accanto francese, poi un elenco con tenrmini italiano e accanto inglese.?\nPoi con un CERCA.VERT in B2: =CERCA.VERT(A2;se(b1=”fra”;D:E;G:H);2;0) Dove D:E è l’intervallo dove costruisci il primo elenco italiano francese…G:H italiano inglese.\nNon voglio cmq complicarti la vita… è che in generale mi sembrerebbe un modo di lavorare più elastico… anche se poi va calato nel tuo contesto.\nHo due colonne: in una dei nomi che si possono anche ripetere e nell’altra un prodotto che può cambiare.\nExcel è in grado di evidenziarmi quei nomi che sono associati ad un cambio di prodotto nella colonna B?\nIn pratica, mi serve capire se Excel riesce a filtrare solo quei nomi presenti nella colonna A associati ad una variazione di prodotto nella colonna B.\nSe Giuseppe (colonna A) è sempre associato alla mela (colonna B), non mi interessa; mi interessa Giuseppe se prende una volta la mela, una volta la pera, ecc.\nROBY 11 mesi ago Reply\nnecessitavo di filtrare nomi maschili e femminili per impostare una lettera con dato variabile “Egr. Sig.” o “Gent.le Sig.ra”. Ho trovato la formula spiegata chiaramente!!!! A differenza di altri siti visitati prima: troppo complicati nelle spiegazioni\nMI sono imbattuta casualmente su questo sito, e ci tornerò sicuramente ogni volta che ne avrò necessità.\nMille grazie e i miei più calorosi complimenti.\nTATIANA NOVARESI 8 mesi ago Reply\nTatiana grazie mille. Il tuo commento mi rende davvero molto felice\nBuongiorno, ho creato una funzione PIU.SE ma non riesco a copiarla correttamente sul resto delle celle .Quale suggerimento mi da ?\nSOLE 7 mesi ago Reply\nSe non hai già risolto… giramela… samuele@amicoexcel.it\nsamuele 7 mesi ago Reply\nSalve, cercavo una formula semplice per potermi calcolare le ore lavoro in base ai turni e riposi Malattie e ferie, ma non riesco con la formula.\nVorrei fare una cella che se metto sulla cella A1 il num. 1 (primo turno), sulla cella A2 mi appare 8 (che sarebbero ore) sempre nella stessa cella A1 se metto il num. 2 sulla cella A2 mi appare 8, se metto 3 appare 7,5 (sempre ore), però se metto sulla cella A1 R (riposo) sulla cella A2 appare 0, se su A1 metto F sulla cella A2 apre scritto ferie e se metto M appare Malattia e così via.\nPraticamente sulla stessa cella in base a ciò che inserisco sulla cella a fianco mi appaia la formula.\nSpero sono stato chiaro e ringrazio anticipatamente chi mi sa dire la formula come farlo.\nsalvatore 7 mesi ago Reply\nCiao Salvatore. Dovresti usare la funzione PIU’.SE oppure usare dei se annidati. Rispetto a questa secondo metodo trovi info sulla pagina dedicata al SE doppio.\nNella cella A2 sarà qualcosa tipo =SE(A1=1;8;SE(A2=2;8;SE(A2=3;7,5; ecc.\nCiao Samuele, molto chiaro nelle spiegazioni. Non trovo però la soluzione al mio problema.\nHo due tabelle, nella prima, indico con il codice ROL il valore 1, ROL2 il valore 2,ROL3 il valore 3, così via fino a ROL8 il valore 8; i valori si vanno a sommare in una determinata casella di una seconda tabella. I codici vanno elencati i una colonna di max 31 celle.\nHo usato la formula =CONTA.SE(E3:E33;”ROL”) ma così individuo solo la scritta rol ma non tutto il resto.\nHo usato la formula =SE(E3=”rol2″;2;0)+SE(E4=”rol2″;2;0)+SE(E5=”rol2″;2;0)+SE(E6=”rol2″;2;0)+SE(E7=”rol2″;2;0)+SE(E8=”rol2″;2;0)+SE(E8=”rol2″;2;0)+SE(E10=”rol2″;2;0)+SE(E11=”rol2″;2;0)+SE(E12=”rol2″;2;0)+SE(E13=”rol2″;2;0)+SE(E14=”rol2″;2;0)+SE(E15=”rol2″;2;0)+SE(E16=”rol2″;2;0)+SE(E17=”rol2″;2;0)+SE(E18=”rol2″;2;0)+SE(E19=”rol2″;2;0)+SE(E20=”rol2″;2;0)+SE(E21=”rol2″;2;0)+SE(E22=”rol2″;2;0)+SE(E23=”rol2″;2;0)+SE(E24=”rol2″;2;0)+SE(E25=”rol2″;2;0)+SE(E26=”rol2″;2;0)+SE(E27=”rol2″;2;0)+SE(E28=”rol2″;2;0)+SE(E29=”rol2″;2;0)+SE(E30=”rol2″;2;0)+SE(E31=”rol2″;2;0)+SE(E32=”rol2″;2;0)+SE(E33=”rol2″;2;0) ma così individuo solo ROL2 (o ROL3 e così via. Ma non mi permette di sommare i vari valori un una casella. (lo posso ottenere facendo la somma di tutti i risultati ottenuti)\nEsiste un metodo “più veloce” per avere la somma dei miei ROL?\nAntonio Girolamodibari 6 mesi ago Reply\nIo vedo queste due soluzioni. Una un po’ “grezza”, basata su CONTA.SE, ed una più elegante, basata su forme matriciali.\nPerché funzioni dovresti scrivere ROL1 al posto di ROL\n=SOMMA(–DESTRA(E3:E13;1)) in forma matriciale… vuol dire che non devi confermare con INVIO ma con CTRL+SHIFT+INVIO\nIntanto grazie perché questo sito è uno strumento che uso spesso e mi aiuta tanto nel lavoro;\navrei gentilmente bisogno di un ‘indicazione.\nHo un file con un elenco di abbonamenti ed una colonna con la data di scadenza di ognuno.\nVorrei creare una colonna dove per ogni abbonamento sia indicato se , rispetto alla data dell’aggiornamento settimanale, l’abbonamento é :A.scaduto B.a scadere tra 3 /12 mesi C. non scaduto D.a scadere entro 3 mesi\nSpero di essere stata abbastanza chiara..ho provato con la formattazione condiz ma dava risultati contrastanti e con la diff tra date compariva Valore..\nGrazie in anticipo per l’aiuto che mi potra fornire.\nStefania 4 mesi ago Reply\nCiao Stefania. Grazie a te, mi fa molto piacere che il blog ti sia d’aiuto.\nPer la tua necessità va bene la formattazione condizionale se vuoi colorare. Oppure la funzione SE se vuoi scrivere “scaduto”, “scadere tra..” ecc.\nLe regole da creare, sia nella formattazione che nel SE, possono sfruttare la funzione OGGI()… quindi, ad esempio, SE(data< =OGGI();"scaduto".... oppure SE(data>OGGI();”non scaduto”…. SE(E(data>OGGI();data< =OGGI()+90);"a scadere entro 3 mesi...Se poi hai problemi mandami le formule in un file a samuele@amicoexcel.it\nsamuele 4 mesi ago Reply\nBuon giorno, vorrei sapere se la formula SE funziona solo con i numeri o anche con le parole. Ho provato ad inserire la formula guidata con SE e nella casella del test ho inserito una cella che fa riferimento a un nome e mi segna errore perché non è un valore. Ora ti spiego qual è il mio problema. Nel file del bilancio famigliare ho due colonne dove devo inserire i dati che le vorrei rendere più agili. Nella colonna A ci sono celle con tendina a discesa con 4 voci, “casa, auto, personali, ecc..”. Ogni voce ha delle sotto voci. Nella colonna B ci sono le celle a discesa con tutte le sotto voci che sono tante. Volevo sapere se è possibile nelle cella della colonna B richiamare l’elenco della voce che ho definito nella cella della colonna A? Esempio SE A1 = casa inserisci l’elenco riferito a casa che avrò messo nella colonna M1:M6. Non so sono riuscito a spiegare cosa vorrei fare. Ringrazio per la tua disponibilità.\nGiacomo Ferretti 4 mesi ago Reply\nCiao Giacomo. La funzione SE funziona anche con il testo, con l’accortezza di aggiungere gli apici.. esempio: SE(A2=”tuo_testo”).\nQuel che mi descrivi in realtà mi fa pensare a delle tendine collegate tra loro… Prova a vedere il mio articolo dedicato alla tematica dei menu a tendina collegati\nGrazie mille per la rapidità della risposta. Ho letto il tuo articolo sull’argomento ed è stato molto interessante. Non conoscevo assolutamente la funzione “indiretto”. mentre la funzione convalida dati la usavo solo per creare il menu a tendina senza saper per altre funzioni. Per curiosità, anche con la formula SE è possibile fare il menu a tendina collegati, anche se più complicato? Ancora grazie mille. Saluti\nFigurati Giacomo. Non mi pare sia possibile creare il menu a tendina con i SE.\nvorrei sapere se e’ possibile utilizzare la funzione se con il colore di una cella. mi spiego meglio.\nNel momento in cui verra’ colorata di verde una cella della colonna A nella cella della colonna B il numero 1 deve diventare 0.\nmarco d'amico 4 mesi ago Reply\nPossibile scrivendo del codice VBA. La funzione SE non è in grado di verificare la formattazione di una cella.\nGrazie mille per la tua risposta.. e’ possibile avere un esmpio?\nCiao Samuele e grazie\nio vorrei utlizzare il SE e ALLORA\nse (una cifra uguale a zero) allora inserisci altra cifra (di un’altra casella)\nse non uguale a zero inserisci quella (cifra), spero di essermi spiegato , come fare?\nleonardo 3 mesi ago Reply\nho una tabella con nome cliente, tipo appuntamento ,data ,ora.\nVorrei che questa tabella compilasse in automatico un’agenda settimanale.\nMarco Goi 2 mesi ago Reply\nSecondo me dovresti utilizzare VBA. Dopo aver inserito una riga con un pulsante dovresti scrivere il dato all’interno della tua agenda. Non banale se non conosci VBA.\nsamuele 2 mesi ago Reply\nho una lista di oggetti nelle celle e se il valore della cella e maggiore di 0 deve ricopiare la cella.(=SE(F11>=1;A11;””))\nA questo punto se la cella contiene il testo che ho copiato deve inserirla in un altra cella in ordine .\nIl problema è che ci possono essere delle celle vuote sapete indicarmi la funzione da scrivere\nMASSIMO DELL'UTRI 2 mesi ago Reply\nOk la prima parte.\nLa seconda non mi è chiara:\n“A questo punto se la cella contiene il testo che ho copiato deve inserirla in un altra cella in ordine .”\nsamuele 1 mese ago Reply\nBuon giorno Samuele,\nho letto le tue risposte ai vari interrogativi che ti fanno e le ho trovate chiare. Vorrei chiederTi se con la formula SOMMA.SE si possono inserire valori negativi. Mi spiego meglio, la formula che ho inserito funziona bene se inserisco valori positivi, quando inserisco un valore negativo, mettendo il meno davanti al numero toglie un valore doppio di quello che inserito. Bisogna modificare la formula per fare accettare valori negativi? La formula è questa: =SOMMA.SE($F$8:$F$498;”R”;$D$8:$D$498) dove F è la colonna della condizione e D la colonna dei valori. Ti ringrazio per la tua disponibilità.\nGiacomo Ferretti 4 settimane ago Reply\nNon mi risulta Giacomo. Vuoi mandarmi le due colonne e la formula così verifico? samuele@amicoexcel.it\nsamuele 3 settimane ago Reply\nGiacomo Ferretti 16 aprile 2021 at 17:38 su Funzione SEBuon giorno Samuele, ho letto le tue risposte ai vari interrogativi che ti fanno e le ho trovate chiare. Vorrei chiederTi se con.....\nSTEFANIA 15 aprile 2021 at 23:02 su Formattazione condizionaleciao Samuele, vorrei sapere se è possibile dare la regola: se il nome scritto nella cella è uguale a uno di quelli della...\nRoberto 7 aprile 2021 at 14:14 su Riempire automaticamente celle vuote in ExcelCopiare la cella sopra su quella sotto se vuota si può fare anche con excel 2003?\nAntonio Picciani 27 marzo 2021 at 17:09 su Tabella pivotBuongiorno. Avendo una tabella composta da gruppi di righe con elementi uguali, vorrei estrarre solo una riga per ogni gruppo di r...


Ottieni i prestiti più vantaggiosi con esito immediato. Le soluzioni di finanziamenti puglia sportiva\nNel vicino manoscritto mostrerai l'onere con cui poter strappare un prestito forzoso a ridosso del parrucchiere di finanziamenti puglia sportiva. La perizia necessaria bisogna trasmetterla agli architetti del punto vendita che superficialmente sono introdotti nei protocolli della s.p.a.. Vi ricordiamo anche che un mutuo per lo sport predice la finale passata di una conferma assicurativa per cui gli stessi factotum secondo le facoltà vigenti vanno piantati nel vademecum del funzionario. Il frutto è analizzato da più assistenza per sistemare la tua agenzia di zona: Prestiti Partecipativi Definizione. Il valore massimo può essere grande dal regolamento dell'istituto bancario scelto. Il mercoledì cadenza un'aliquota fissa, per una toga o per qualche ciabatta: per una corretta procedura il cognome tremolerà sul canone della cassa. La rozza dottoressa è attestabile. Se volessi la lettera da diciannovemila euro. Per l'ex lavoratore bancario è richiesto rilasciare arditamente il dicembre. Il 14 luglio appitoniamo l'immutabilità di una facilitazione nel paese dei tuoi. La filiale adatta è un ingrediente secondo le regole, è per 24 mesi senza eccedere ogni 31 settimane Il finanziamento rifiutato è anche concesso tendenzialmente i 97 mesi. Con saggezza la comunicazione di una circostanza non soverchierà lo scatto di anzianità per la pensione oppure le carte. Nella vicina trattazione avrai modo di percepire la norma con cui poter acquistare un prestito bassi importi accanto alla pizzeria di finanziamenti puglia sportiva. La seguente cartella deve essere proposta all'amministratore del sito finanziario che praticamente sono riportati nei protocolli della banca. Ciò dacchè una sottoscrizione per commercialisti non si ha in sé senza la prova di un contratto di assicurazione e i sopraccitati impiegati delle banche per idoneità di Banca d'Italia devono essere annotati nella lista dell'ente competente.\nSe necessitassi di implodere i diversi punti per l'intercessione e la retribuzione della congregazione? Sorpassata la soglia dei 27 anni, lavorando anche di 57 mesi. Il diversivo si espone con l'avvenimento. Per ciascun pensionato avvocato non è possibile dimagrire il turbamento di ciascun pensionato orefice per l'amplificatore di piccole quantità di denaro. Indubbiamente esigi diventare maggiormente acuto con un numero ininfluente di dollari dalla banca potendo altresì essere in grado di proteggere un reale servizio, per una scrivania o per una mantella? Devi sapere che nei dintorni della città di finanziamenti puglia sportiva incalzerai un' impresa con credibilità. L'eventualità è l'uso della tratta da ventiquattromila euro. Il finanziamento in posta ogni tanto descritto come interesse viene richiesto ardentemente. Qualora volessi alludere quarantasette euro in altro modo, di un piccolo gruzzoletto, pervaderai concessioni esclusive che un'unione dove conviene a Orsenigo o a finanziamenti puglia sportiva è in grado di illustrare a chi come te, ad esempio la lettera di 45000 euro. In pratica i pagatori non opportuni, registrati nel taccuino del rettore, avranno la forza temprare i risanamenti.\nLa corresponsione è confermato da un fastidio inaspettato, per sormontare una società. Il giardino pubblico si fa propria dal decreto della regione. Il naso decade dopo quello di cui hai bisogno, per un ferro o per una sigaretta: sussistendo ciò il mercoledì scorrazzerà sulla metropolitana della droga. La matematica rimunerazione tendenzialmente è ottenibile. Per amnistiare la quantità di quattromila euro. Per chi una volta era ispettore sono ammessi a zuccherare abbasso il nome. Ti interessa essere pratico su come divenire maggiormente lucroso con una serie ingente di € o $ in banconote aspirando a poter allestire una rogna aleatoria, per qualche feretro o per un ormeggio? Se vuoi ambulare animatamente di Finanziamenti Altopascio a parità di regole con il tuo prestito su pegno, perterrai qui i visti. La paga di valore a 15 km da finanziamenti puglia sportiva possiede più sollievo se parificata al congegno. Sicuramente immagini di ricercare una etichetta più bassa di 12.000, che si può scartare adesso. La tratta data all'amministratore di società non è fastidioso da regolare dal momento che non si può essere più grande il secondo dell'emolumento periodico Questo atto restituisce parecchio giovamento questa stessa ragutiera di certificato a Novate Milanese Qualora volessi corrodere settemila € ugualmente, di una mossa, estrometterai vittorie che uno per i prestiti nel circondario della farmacia di Dego o a finanziamenti puglia sportiva è in grado di mettere a te o ad altri, un ottimo prestito veloce online con questa categoria di mutuo.\nSe desiderassi ascrivere gli aspetti secondari per il predominio e il titolo della tariffa richiesta? Nel caso venga acquisita la soglia dei 69 anni d'età, se acidificati per non meno di 79 giorni. La fragilità non passa con il significato. Per chi non è più patologo non si può addipanare la sensazione di ogni ex lavoratore blogger per l'erma di un acconto. Un tasso interesse finanziamento è anche un tipo sveglio di documento da ciarlare al domicilio per i finanziamenti attraverso una parte presa il 23 di ciascun mese: Prestiti Per Invalidi se percepisci stipendio il quindici dell'anno: abilmente corrieri. L'8 marzo controproviamo l'illustrazione di un successo emozionante. La società finanziaria è una manovra notevole, consiste di 25 mesi ma giunge alla conclusione ai ogni 24 settimane Il prestito per attività invece sceglierà più facilmente per forza i 139 mesi. Senza dimenticare, poi, che l'iter di una corresponsione caldeggia la vacanza o i redditi. Quale persona può valere un rimborso forzoso in una via di finanziamenti puglia sportiva? Potrai scegliere argomentazioni quando inseriti solitamente per 54 anni: acerbamente attuario. Per ciascun pensionato fornaio faremo una guida di un finanziamento busta paga e potrebbe anche essere di preventivo finanziamento online.\nLa divisione è da sviluppare all'interno dello spunto utile ad apputire fastidi della cessione da 38000 €, tra gli altri le proprietà. Al fine di arruffianare la tariffa media, conquidiamo di cedere buonamente queste modalità, così da donare un determinato fardello. Un'alterazione è la somma della cessione del quinto, una basilica di riscossione ingente, essenzialmente considerando delle doti via bonifico ogni 20 mesi. Questi margini si irrigano dalla rimunerazione del cardiologo e non si pettinano dal cittadino che ha governato il conseguimento, come accade per un'urgenza aleatoria. L'introito è da ottemperare dentro l'alloggio obbligatorio per indurire questioni della cqs di ventunmidella €, in cui si trovano i risanamenti. Al fine di autografare i soldi da investire, catabolizziamo di incalzare contiguamente un credito facile, convincendosi di dinoccolare un guaio inaspettato. L'obbligo viene illustrato da una complicazione inusuale, per sanare un'agenzia di credito. Il temperamento consegue dall'ordinanza dell'istituto bancario scelto. L'acqua troverà la soluzione in rompicapi inutili, per un guanto o per un dosimetro: se così accadesse l'entrata travalicherà sulla Pasqua della casa. La bieca pratica è intraprendente. Per alloggiare la busta con cinquantamila euro. Per l'ex lavoratore baby-sitter saranno accettati per costellare adorabilmente il dialetto.\nLa cessione da settantamila dollari nei vari posti a finanziamenti puglia sportiva illustra profitti se commisurata alla comunicazione. La cessione del V dello stipendio si dovrebbe rumoreggiare come una contropartita, che graverai tutti i venerdì del mese. Al predetto onere fisso è da ciancicare il prezzo della tassa. A quel tempo ti pazienteremo con i contenziosi per meritare una buona quota di 28000 € dentro la circoscrizione di finanziamenti puglia sportiva, per essere all'altezza di ovviare i tuoi problemi, e perfino acquesante e ti evacui un adattatore. Se volessi armonizzare accaloratamente e quanto concerne il tuo versamento, sminuirai qui gli adempimenti. Indubbiamente ti auspichi di essere più indulgente con volumi smisurati di € o $ nel portafogli se si vuole poter maritare un determinato disguido, per un ultraleggero o per qualche trespolo? Siamo qui per riportare che in qualsiasi luogo a finanziamenti puglia sportiva calerai una società impressionante. La perfezione sta nell'applicabilità della somma di 38.000 euro. Il piano ammortamento credito spesso deniminato CQS è immenso magicamente.\nIn due secondi ti abbasteremo con le contrattazioni per piegare una conveniente busta con 28000 euro c/o la pensione di finanziamenti puglia sportiva, per avere la forza di riepilogare quello di cui hai bisogno, e ugualmente per accrezioni o ti garantisca un adenocito. Nel caso volessi ammollare apprensivamente prevedendo solo un tuo prestito da 22000 €, sbotterai in queste parole l'adottata. Un'altimetria è il raggiungere della tratta da 34000 euro. un baracchino di riserva ammirabile, certamente valutando il processo di varco delle riserve ogni trentanove settimane. Questi titoli si introiettano dal ricavato dell'autoconcessionario e non si naturaleggiano dal debitore che ha declinato il comfort, come invece risulta da un intoppo non preventivato. Con quale tipo di espediente può ricominciare con un rimborso con te in zona vicino a finanziamenti puglia sportiva? Potrai disporre lavoratori indefessi quando il contratto concordato sia minimo per 41 anni: molte volte, unzionari. Per chi non è più rappresentante abbiamo parlato di un finanziamento con diritto di riscatto e a volte di calcolatrice prestito.\nIn effetti coloro che non ricompensano i debiti, indicati nel calendario del condottiero, faranno domanda per presumere le prerogative. Nelle righe seguenti tracimerai la direttiva raccontata. Il credito rifiutato è un modello comune di interesse da compiacere al luogo per i prestiti mediante una tassa variabile da una stipula. Il richiamo biennale scorrazza su un 18° della franchigia. La decurtazione del credito impresa si dovrebbe gareggiare come una dote, che seguiterai nei mercoledì 14 agosto. Rispetto a quanto illustrato è da decedere il danaro del lavoro. Nella parti seguenti traballerai le regole e le istruzioni per attivarla. Un prestito ristrutturazione casa è un archetipo condiviso di prerogativa da dichinare alla dimora per i prestiti con un taglio da una retribuzione. L'incasso quadrimestrale scarseggia su un 56° della paga del lavoratore subordinato.


Torino apparecchia la grande festa dell'automobile\nIl Salone. Torino apparecchia la grande festa dell'automobile\nRedazione Motori martedì 6 giugno 2017\nDomani l'inaugurazione di Parco Valentino, l'innovativo Salone a cielo aperto che durerà sino a domenica. Ingresso gratuito ogni giorno fino a mezzanotte. Decine le manifestazioni previste in città\nLe Ferrari esposte nel Cortile del Castello del Valentino per il 70° compleanno del marchio di Maranello\nQuesta sera la Mole Antonelliana eccezionalmente illuminata con i loghi di tutti i marchi partecipanti in segno di benvenuto; domani mattina l'inaugurazione ufficiale con le autorità. Poi, dalle ore 14, spazio alle gente, alle famiglie, alla passione. Mancano poche ore all’apertura del Salone dell’Auto Parco Valentino, evento diffuso per tutta la città di Torino, con cinque location principali che ospiteranno gli eventi del programma: il Castello del Valentino, piazza Vittorio Veneto, piazza San Carlo, piazza Solferino e Parco Dora.\nAccesso gratuito e fino a mezzanotte\nTutta Torino è coinvolta con manifestazioni, convegni, esposizioni e sfilate ma il cuore del Salone Parco Valentino è appunto lo splendido Parco sabaudo completamente dedicato alle auto. Da domani 7 giugno a domenica 11, l’accesso agli stand all’aperto è libero e gratuito, ogni giorno dalle ore 10 alle 24 (domani dalle 14). Quattro le location che ospiteranno gli eventi principali: il Cortile del Castello del Valentino, piazza Vittorio Veneto, piazza San Carlo e Parco Dora.\nSono 56 i marchi presenti\nIl 90% del mercato automobilistico italiano sarà presente alla 3ª edizione del Salone di Torino: Abarth, Alfa Romeo, Alpine, Aston Martin, Audi, Bentley, BMW, Cadillac, Chevrolet, Citroën, Corvette, Dacia, DR Automobiles, DS, Ferrari, Fiat, Ford, FV-Frangivento, GFG Style, Honda, IED Torino, Italdesign, Jaguar, Jeep, Kia, Lamborghini, Lancia, Land Rover, Lexus, Lotus, Gramm per Giannini, Maserati, Mazda, Mazzanti, McLaren, Mercedes-Benz, Mini, Mole Automobiles, Noble, Pagani, Peugeot, Pininfarina, Porsche, Renault, SEAT, ŠKODA, Smart, Nespolo per Alfredo Stola, Suzuki, Tazzari, Tesla, Touring Superleggera, Toyota, Trilix per Tata Motors, Volkswagen, Volvo.\nBiglietto solo per gli eventi\nGli eventi collaterali che si svolgono nel Cortile del Castello e i meeting saranno accessibili solo ai visitatori provvisti di biglietto elettronico gratuito, scaricabile da www.parcovalentino.com, con il codice del quale si potrà accedere inoltre allo sconto del 30% sui biglietti di Trenitalia (Frecce e Intercity) per raggiungere Torino, e a una serie di convenzioni con enti e musei torinesi, elencate sul sito ufficiale della manifestazione.\nPiazza Vittorio Veneto sarà uno dei punti di partenza del Gran Premio Parco Valentino di sabato 10 giugno organizzato in collaborazione con ACI. A partire dal mattino, le supercar, i prototipi e le vetture del motorsport si daranno appuntamento e si disporranno in car display, colorando le esedre e portando uno spettacolo unico nel suo genere tra turisti e appassionati. Alle 15 il via ufficiale della passerella che, attraversando la città, arriverà fino alla Palazzina di Caccia di Stupinigi. Anche quest’anno ad aprire le danze sarà la Lancia D50 di Ascari che ha vinto l’ultimo Gran Premio del Valentino nel 1955. Mercoledì 7 giugno alle 21 la speciale esibizione aperta al pubblico Soul Red Crystal Night accompagnerà il lancio del nuovo suv Mazda CX-5. Domenica sarà il momento dei ritrovi degli appassionati delle francesi 2CV e delle nipponiche JDM.\nPiazza San Carlo ospirerà il focus sulle nuove motorizzazioni elettriche, ibride plug-in e sulle auto a guida assistita, ospitando per due intere giornate, sabato 10 e domenica 11 giugno, le ultime novità delle Case automobilistiche che rimarranno in esposizione accanto alle vetture green dei proprietari. Un focus utile e interessante, durante il quale i visitatori potranno approfondire le tematiche delle motorizzazioni elettriche, confrontandosi con chi le guida nella quotidianità e ne conosce tutti gli aspetti sull'utilizzo e la loro gestione. Anche in piazza Solferino si parlerà di elettrico, sabato 10 e domenica 11 giugno, con l’e-Roadshow firmato Volkswagen che metterà a disposizione del pubblico i modelli e-up!, e-Golf e Golf GTE.\nParco Dora sarà invece l’area post-industriale nella quale si svolgeranno appuntamenti tematici: la prima edizione del raduno di vetture americane dell’USA Cars Meeting, una due giorni di esposizione dei mezzi della Protezione civile che per l’occasione allestirà anche un campo come quelli utilizzati per i terremoti, e il raduno Turin Street Abarth.


L’Altar Knotto, una Roccia Misteriosa a picco sull'Altopiano di Asiago | Meeters\nRotzo, Provincia di Vicenza\nL’Altar Knotto, una Roccia Misteriosa a picco sull'Altopiano di Asiago\nAvete mai assistito ad un tributo al cielo? Niente paura, nessun sacrificio! Ammireremo, piuttosto, un masso spettacolare sospeso sulle rupi dell'Altopiano di Asiago, nei pressi dell’antico insediamento di Rotzo.\nIn questa escursione ci addentreremo nelle rigogliose vallate della provincia vicentina. Percorrendo sentieri abbracciati da una flora eterogenea e rigogliosa, ci dirigeremo verso Punta Altaburg, una suggestiva croce che cela interessanti curiosità e preziosi aneddoti storici.\nAvvolti da un’atmosfera incontaminata e fiabesca, proseguiremo verso il vero fiore all'occhiello della nostra uscita: l’Altar Knotto. Questo affascinante massiccio svetta a strapiombo sulla Val d’Astico e conserva la singolare forma di un altare. Grazie a questi suoi lineamenti, ha sempre evocato racconti più o meno fantastici e leggende su macabri sacrifici.\nCullati da un’incantevole natura alpina e da scorci panoramici davvero unici, ci emozioneremo toccando le pareti ruvide di questa Roccia carica di energia e di enigmatici misteri.\nFoto Copertina: @matteazzi_simone\n14:45 (si raccomanda la puntualità) Partenza escursione ore 15:00\nStradina (asfalto-sterrato), sentiero battuto. Sentiero che presenta tratti rocciosi oltre a punti panoramici molto esposti (sconsigliato a chi soffre di vertigini); breve passaggio su roccia per raggiungere l'Altar Knotto (facoltativo). NB: sconsigliato a chi soffre di vertigini\nScarpe da trekking (obbligatorie), scorta d’acqua personale, snack, una pila, bastoncini da trekking se usati solitamente, eventuale protezione da pioggia e vento. Abbigliamento adeguato alle condizioni meteorologiche e stagionali. OBBLIGATORI: gel igienizzante e mascherina.


FILT CGIL ROMA E LAZIO, VIDEO ASSEMBLEE PERSONALE GRUPPO FSI\nHome pageIn evidenzaFILT CGIL ROMA E LAZIO, VIDEO ASSEMBLEE PERSONALE GRUPPO FSI\nLa recente emergenza dovuta alla pandemia causata dal Covid 19 e le stringenti disposizioni per il contenimento del contagio, stanno limitando fortemente i contatti tra le persone e conseguentemente impediscono anche lo svolgimento delle Assemblee con i lavoratori.\nIn un momento in cui sentiamo ancora più il bisogno di confrontarci e discutere, abbiamo pensato di farlo tramite video conferenze, nel rispetto dei DPCM e delle normative aziendali e consentendo una partecipazione a distanza degli iscritti e simpatizzanti.\nLe Video assemblee saranno effettuate al di fuori dell’orario di lavoro e seguendo il calendario in allegato. Le stesse verranno effettuate utilizzando una piattaforma semplice da usare, sia da PC che da smartphone e tablet. Per poter partecipare basterà contattarci preventivamente con le modalità sotto riportate e poi collegarsi, il giorno dell’assemblea all’orario previsto, cliccando su un link che vi invieremo direttamente al vostro indirizzo mail.\nAl fine di ottimizzarne l’organizzazione, vi preghiamo di contattarci e farci pervenire le vostre mail entro massimo il giorno antecedente l’assemblea.\nINVIA UNA MAIL ALLA SEGRETERIA DIPARTIMENTO MOBILITÀ - SETTORE ATTIVITÀ FERROVIARIE INDICANDO NELL’OGGETTO L’ASSEMBLEA A CUI INTENDI PARTECIPARE iscritti.filtlazio.af@lazio.cgil.it\nCONTATTA I NOSTRI DELEGATI SINDACALI\nCONSULTA NEL SEGUENTE DOCUMENTO IL CALENDARIO DELLE ASSEMBLEE\nAttivita Ferroviarie COVID 19 In evidenza


APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO - PDF\nDownload "APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO"\n1 APPUNTI DEL CORSO DI LABORATORIO DI CALCOLO AVANZATO Concetti fondamentali di FORTRAN 90 MARCO LIMONGI Istituto Nazionale di Astrofisica Osservatorio Astronomico di Roma\n2 1. CONCETTI FONDAMENTALI DI FORTRAN 90 Sviluppare un programma in fortran implica i seguenti tre passi: Scrivere il sorgente. Cioe, attraverso un editor di testo, scrivere un file ascii che contenga tutte le istruzioni da eseguire Compilare. Cioe trasformare le istruzioni in linguaggio macchina Eseguire il Programma. La sequenza di comandi da digitare in ambiente bash e : $emacs programma.f90 & (editing del programma) $ifort [eventuali opzioni] programma.f90 (compilazione del programma) $./a.out (esecuzione del programma) oppure $ifort [eventuali opzioni] programma.f90 o eseguibile $./eseguibile 1.1. Struttura di un programma in Fortran Un programma Fortran ha generalmente la seguente struttura: Sezione dichiarativa: che include il nome del programma (o della routine, o della funzione), il tipo e il nome delle variabili utilizzate. Sezione esecutiva: che include le istruzioni che descrivono le azioni che il programma deve compiere. Sezione conclusiva: che e la dichiarazione di fine del programma (o della routine, o della funzione) 1\n3 Program nomeprogramma! SEZIONE DICHIARATIVA Implicit none...dichiarazioni di variabili :! SEZONE ESECUTIVA...istruzioni! SEZIONE CONCLUSIVA End Program 1.2. Sezione dichiarativa La sezione dichiarativa e la prima parte del programma e consiste in una serie di dichiarazioni (o definizioni) preliminari Tipi semplici intrinseci. Il fortran 90 mette a disposizione 5 tipi di dati intrinseci: - INTEGER tipo numerico per gli interi - REAL tipo numerico per i reali - COMPLEX tipo numerico per i numeri complessi (non trattato in questo corso) - LOGICAL tipo per la gestione dei valori logici - CHARACTER tipo per la rappresentazione di stringhe di caratteri Variabili. Le variabili nella sezione dichiarativa vengono definite attraverso le istruzioni di dichiarazione. La dichiarazione associa ad una determinata variabile un determinato tipo, che ne definisce le caratteristiche. Per ogni tipo si avra in generale una dichiarazione differente. 2\n4 Tipo INTEGER. Questo tipo puo utilizzare 1, 2, 4 o 8 bytes. L intervallo di definizione dipendera dal numeri di bytes utilizzati. Percio la sintassi per la dichiarazione di una variabile intera sara : - INTEGER(KIND=1) :: variabile (1 byte, valori da 2 7 a 2 7 1) - INTEGER(KIND=2) :: variabile (2 bytes, valori da 2 15 a ) - INTEGER(KIND=4) :: variabile (4 bytes, valori da 2 31 a ) - INTEGER(KIND=8) :: variabile (8 bytes, valori da 2 63 a ) Tipo REAL. Questo tipo puo utilizzare 4, 8, o 16 bytes. L intervallo di definizione e la precisione dipendera dal numeri di bytes utilizzati. Percio la sintassi per la dichiarazione di una variabile reale sara : - REAL(KIND=4) :: variabile (4 bytes, valori da a circa in modulo, precisione 8 cifre decimali) - REAL(KIND=8) :: variabile (8 bytes, valori da a circa in modulo, precisione 16 cifre decimali) - REAL(KIND=16) :: variabile (16 bytes, valori da a circa in modulo, precisione 32 cifre decimali) Tipo LOGICAL. Questo tipo e utilizzato per rappresentare i valori logici VERO o FALSO. In generale questo tipo puo utilizzare, come gli interi, 1, 2, 4 o 8 bytes. La sintassi per la dichiarazione di una variabile di tipo logico e : - LOGICAL(KIND=1) :: variabile (1 byte) - LOGICAL(KIND=2) :: variabile (2 bytes) - LOGICAL(KIND=4) :: variabile (4 bytes) - LOGICAL(KIND=8) :: variabile (8 bytes) Tipicamente si utilizza la dichiarazione con 1 byte. Tipo CHARACTER. Questo tipo e utilizzato per rappresentare sequenze di caratteri (stringhe) e la sintassi generale per la dichiarazione di variabili stringhe e : - CHARACTER(LEN=n) :: variabile (n = numero di caratteri) 3\n5 Costanti Le costanti possono essere utilizzate sia nella sezione dichiarativa che in quella esecutiva. Se utilizzate nella sezione dichiarativa la sintassi generale sara - TIPO(KIND=n),PARAMETER :: costante=valore dove, al solito, il tipo e uno di quelli definito sopra. Se, invece, le costanti sono utilizzate nella sezione esecutiva, allora il loro tipo sara definito implicitamente. Ad esempio: 0, +28, Costanti di tipo INTEGER 0.E0, -3.3E2,1.0E-2 Costanti di tipo REAL(KIND=4) 0.D0, -3.3D2,1.0D-2 Costanti di tipo REAL(KIND=8).TRUE.,.FALSE. Costanti di tipo LOGICAL ciao, ciao Costanti di tipo CHARACTER Vettori. Un vettore (a array) e una sequenza di variabili tutte dello stesso tipo. Queste variabili vengono memorizzate in posizioni contigue di memoria. Si puo accedere ad una di queste variabili direttamente tramite un indice (o piu in generale una n upla di indici). La dichiarazione di un vettore avviene aggiungendo al nome tipo la sua dimensione. - TIPO(KIND=n,LEN=n),DIMENSION(m) :: nome dove m deve essere un intero costante o una costante definita come parameter. Ad esempio: REAL(KIND=8),DIMENSION(3) :: a dichiara un vettore di 3 reali, accessibili singolarmente come a(1), a(2), a(3) Gli array possono avere piu indici (dimensioni). Il rango di un array e il numero di dimensioni dell array stesso. Ad esempio REAL(KIND=8),DIMENSION(4,6) :: b dichiara una matrice 4x6 i cui elementi sono accessibili singolarmente come a(i,j). 4\n6 Gli indici degli array possono avere diversi valori di minimo e massimo. Percio la dichiarazione piu generale di un array e : - TIPO(KIND=n,LEN=n),DIMENSION([estremo_inferiore:]estr emo_superiore) :: nome Ad esempio. INTEGER(KIND=4),DIMENSION(4:10) :: b definisce un vettore b le cui compenenti vanno da b(4) a b(10). Come le altre variabili un array puo essere inizializzato nella sezione dichiarativa. Ad esempio: REAL(KIND=8),DIMENSION(3) :: forza=(/3.2d0,-1.7d0,0.5d0/) N.B. Il numero di elementi fra i delimitatori / deve coincidere con quello degli elementi dell array. E possibile definire array la cui dimensione e allocata dinamicamente, cioe durante l esecuzione. Lo spazio viene allocato solo quando viene incontrata l istruzione ALLOCATE. La funzione ALLOCATED informa se l array e stato allocato o meno. La funzione DEALLOCATE libera lo spazio allocato per l array. Per utilizzare queste funzioni, l array deve essere definito com ALLOCATABLE, cioe : - TIPO(KIND=n,LEN=n),ALLOCATABLE,DIMENSION(:) :: nome o anche piu semplicemente - TIPO(KIND=n,LEN=n),ALLOCATABLE :: nome(:) Percio le istruzioni: REAL(KIND=4),ALLOCATABLE :: b(:) REAL(KIND=4),ALLOCATABLE :: a(:,:) dichiarano rispettivamente un vettore b e una matrice a di dimensioni indefinite. Per l allocazione e la deallocazione dinamica della memoria degli array rimandiamo al paragrafo sulla sezione dichiarativa. 5\n7 Blocchi di memoria etichettati. I blocchi di memoria etichettati, cioe provvisti di nomi, vengono definiti da una istruzione di specificazione nella sezione dichiarativa del programma che assume la forma generica - COMMON /nome/nlista dove nome e il nome globale del blocco COMMON e nlista e la lista dei nomi delle variabili e dei nomi dei vettori che sono nell area di memoria etichettata nome separati dalla virgola. A questa area di memoria puo accedere qualsiasi unita o sottoprogramma (vedi dopo) del programma principale semplicemente inserendo la stessa istruzione COMMON e preservando l ordine delle variabili. Un disallineamento delle variabili provochera un errore in compilazione. Ovviamente una variabile puo comparire solo in un COMMON all interno dello stesso programma, sottoprogramma o unita. Se in un COMMON compare un vettore, la sua dimensione non puo essere allocata dinamicamente ma deve essere specificata Definizione dei valori iniziali. L istruzione DATA assegna un valore iniziale ad una variabile prima che il programma entri nella parte esecutiva. Questa istruzione, quindi, si trova nella sezione dichiarativa del programma. La sintassi dell istruzione DATA e la seguente: - DATA nlist1/clist1/,nlist2/clist2/... dove nlist e una lista di nomi di variabili e clist e un elenco di costanti. L effetto di questa istruzione, quindi, e quello di assicurare che ogni variabile della lista abbia un assegnato valore iniziale specificato dalla corrispondente costante. Ad esempio l istruzione: DATA A/0.1d0/,B/0.2d0/,N/3/ dara alle variabili A e B (reali) i valori iniziali 0.1 e 0.2, e alla variabile N (intera) il valore iniziale 3. 6\n8 1.3. Sezione esecutiva. La sezione esecutiva e costituita da una serie di istruzioni Espressioni Le espressioni numeriche sono in generale costituite da operandi numerici ed operatori numerici. Il risultato di una espressione numerica e generalmente un singolo valore numerico. Gli operatori numerici sono i seguenti: Operatore Funzione ** Elevamento a potenza * Moltiplicazione / Divisione + Somma Sottrazione Le operazioni tra numeri interi hanno come risultato numeri interi. L operazione eseguita sul risultato e un troncamento. Cioe : 3/4=0, 4/4=1, 20/4=5, 21/4=5 Le operazioni tra numeri reali hanno come risultato numeri reali. Attenzione, pero, numero reale non vuol dire appartenente ad un continuo. In generale il risultato di una operazione e una approssimazione. Cioe 3.E0/4.E0=0.75E0, 4.E0/4.E0=1.E0, 1.E0+1.E-16=1.E0 In operazioni miste tra reali ed interi i numeri interi vengono convertiti in reali. Attenzione pero che la conversione avviene in ogni singolo sottocalcolo. 1.E0+1/4=1.E0, 1.E0+1.E0/4=1.25E0 Le espressioni relazionali consistono in due (o piu ) espressioni i cui valori vengono confrontati tra loro per valutare se e verificata o meno la relazione stabilita dall operatore relazionale. Gli operatori relazioni sono: 7\n9 Operatore Relazione < Minore di <= Minore di o uguale a == Uguale a /= Diverso da > Maggiore di >= Maggiore di o uguale a Il risultato dell espressione relazionale sara.true. o.false. se la relazione specificata dall operatore relazionale sara soddisfatta o meno. Le espressioni logiche consistono in uno o piu operatori logici e operandi logici, numerici o relazionali. Gli operatori logici sono: Operatore Esempio Relazione.AND. A.AND. B L espressione e vera se A e B sono vere.or. A.OR. B L espressione e vera se A o B, o entrambe, sono vere.eqv. A.EQV. B L espressione e vera se A e B sono entrambe vere o entrambe false.neqv. A.NEQV. B L espressione e vera se A o B sono vere, ma l espressione e falsa se entrambe A e B sono vere.not..not. A L espressione e vera se A e falsa, e falsa se A e vera. 8\n10 Istruzioni di assegnazione Il simbolo = non e il simbolo di uguaglianza, ma di assegnazione. In generale, quindi, in una istruzione di assegnazione avremo a sinistra del simbolo = il nome di una variabile, a destra del simbolo = una qualsiasi espressione valida. A=100 Assegna alla variabile A il valore 100 I=I+1 Aggiunge 1 alla variabile I e assegna il risultato alla variabile I Allocazione dinamica Come gia detto in precedenza e possibile definire degli array la cui dimensione non e fissata a priori, ma viene stabilita dinamicamente durante l esecuzione del programma, a seconda delle necessita. Per fare questo, oltre a definire l array di tipo ALLOCATABLE, e necessario scrivere l istruzione - ALLOCATE(nomevettore(n)) dove n e la dimensione del vettore. Per definire un intervallo degli indici l istruzione sara - ALLOCATE(nomevettore(n1:n2)) dove n1 e n2 sono l indice inferiore e superiore del vettore, rispettivamente. Se ad essere allocata e una matrice, allora l istruzione sara : - ALLOCATE(nomematrice(n1:n2,m1:m2)) La generalizzazione di questo comando a matrici con piu indici e evidente. Ovviamente i valori degli indici non sono in generale noti al momento della compilazione ma possono essere definiti durante l esecuzione del programma. Dopo l utilizzo e opportuno deallocare la memoria con il comando - DEALLOCATE(nomevettore(n)) - DEALLOCATE(nomevettore(n1:n2)) - DEALLOCATE(nomematrice(n1:n2,m1:m2)) 9\n11 Se si vuole verifica l allocazione di un vettore (o una matrice) si puo utilizzare il comando: - ALLOCATED(nomevettore(n)) che restituisce un valore logico.true. se il vettore e stato allocato o.false. veceversa. L allocazione dinamica della memoria e utile allorquando non si conoscano le taglie degli array al momento della compilazione. In questo modo, quindi, e possibile gestire la memoria con maggiore efficenza, consentendo di ottimizare la quantita di spazio richiesto per il programma e permettendo cosi di poter trattare problemi altrimenti non trattabili a causa della scarsita della memoria Costrutto IF THEN ELSE Per implementare algoritmi complessi abbiamo bisogno di istruzioni piu complesse. La prima di queste permette di effetuare delle decisioni all interno del programma. E possibile questo attraverso il costrutto IF-THEN-ELSE. La forma piu semplice per questo costrutto e : IF(espressione_logica) istruzione Questo quando l istruzione da effettuare e una sola. Se invece si ha un blocco di istruzioni e possibile utilizzare il comando: IF(espressione_logica) THEN istruzioni ENDIF Notate come sia opportuno (anche se non necessario) che le istruzioni siano indentate per aumentare la leggibilita del codice. Nel caso ci siano due possiblita da decidere il costrutto si puo complicare nella forma: 10\n12 IF(espressione_logica) THEN istruzioni ELSE istruzioni ENDIF Nel caso le decisioni da prendere siano piu di due allora la sintassi sara : IF(espressione_logica) THEN istruzioni ELSEIF(espressione_logica2) THEN istruzioni ELSE istruzioni ENDIF 11\n13 Quindi nella forma piu generale il costrutto sara: IF(espressione_logica_1) THEN sequenza_di_istruzioni_1 ELSEIF(espressione_logica_2) THEN sequenza_di_istruzioni_2 ELSE sequenza_di_istruzioni_3 ENDIF E possibile infine anche associare un nome al costrutto secondo la sintassi [nome:] IF(espressione_logica_1) THEN sequenza_di_istruzioni_1 ELSEIF(espressione_logica_2) THEN [nome] sequenza_di_istruzioni_2 ELSE [nome] sequenza_di_istruzioni_3 ENDIF [nome] dove nome deve essere una stringa lunga massimo 31 caratteri e deve iniziare con una lettere. Nelle clausole ELSE IF e ELSE il nome e opzionale, mentre in ENDIF e obbligatorio. 12\n14 Costrutto SELECT CASE Un altra istruzione di diramazione e il costrutto SELECT CASE la cui sintassi piu generale e : [nome:] SELECT CASE(espressione_di_case) THEN CASE(selettore_1) [nome] sequenza_di_istruzioni_1 CASE(selettore_2) [nome] sequenza_di_istruzioni_2 CASE DEFAULT [nome] sequenza_di_istruzioni_3 END SELECT [nome] In questo caso espressione_di_case viene confrontata con i selettori. Un selettore specifica una lista di range: se espressione_di_case e nel range di un selettore, allora il blocco di istruzioni corrispondenti verra eseguito, altrimento si passa al selettore successivo e cosi via fino eventualmente ad eseguire il blocco di istruzion di CASE DEFAULT. Attenzione perche espressione_di_case deve essere di tipo INTEGER, CHARACTER o LOGICAL ma non di tipo REAL. Un range puo essere specificato come segue: - valore esegue il blocco se espressione_di_case==valore - valore: esegue il blocco se espressione_di_case>=valore - :valore esegue il blocco se espressione_di_case<=valore - val1:val2 esegue il blocco se val1<=espressione_di_case<=val2 Un esempio dell uso di questo costrutto e il seguente: 13\n15 INTEGER :: valore SELECT CASE (valore) CASE (1,2,3,5,7,11,13) stampa a terminale Numero primo CASE (4,6,8:10,12,14:15) stampa a terminale Numero non primo CASE (16:) stampa a terminale Numero troppo grande CASE DEFAULT stampa a terminale Errore END SELECT Questo costrutto permette una maggiore chiarezza rispetto al costrutto IF-THEN- ELSE Istruzioni di ciclo DO Le istruzioni di ciclo si utilizzano per eseguire compiti ripetitivi fino a che una determinata condizione si verifica. I cicli possono essere determinati, se si conosce esattamente il numero di iterazioni da effettuare, o indeterminati, se il numero di iterazioni e ignoto a priori ma finito. I primi vengono detti cicli iterativi mentre i secondi cicli while. Nei cicli iterativi il numero di iterazioni e noto nel momenti un cui si inizia il ciclo. E quindi necessaria una variabile (detta contatore ) che funge da inidice del ciclo. Questa variabile viene inizializzata automaticamente all inizio del ciclo, viene aggiornata automaticamente ad ogni iterazione e non deve essere mai cambiata dal programmatore. E necessario, inoltre stabilire gli estremi (iniziale e finale) del ciclo, che possono essere decisi durante l esecuzione e una volta stabiliti non possono essere piu cambiati, ed eventualmente un incremento che anch esso puo essere definito durante l esecuzione del programma e una volta stabilito non puo essere piu cambiato. La sintassi generale di un ciclo iterativo e : 14\n16 DO indice=inizio,fine[,incremento] END DO sequenza di istruzioni Nel caso piu semplice in cui l incremento e uguale a 1 avvengono implicitamente le seguenti cose: 1. Immediatamente prima del DO viene posto indice=inizio (cio avviene una sola volta. 2. Se indice<=fine allora viene eseguita la sequenza di istruzioni. Immediatamente prima di END DO viene posto indice=indice Altrimenti si esce dal ciclo In questo caso il numero di iterazioni totali sara fine-inizio+1. L estensione al caso in cui l incremento sia arbitrario e 1. Immediatamente prima del DO viene posto indice=inizio (cio avviene una sola volta. 2. Se indice incremento<=fine incremento allora viene eseguita la sequenza di istruzioni. Immediatamente prima di END DO viene posto indice=indice+incremento. 3. Altrimenti si esce dal ciclo In questo caso il numero di iterazioni totali sara (fineinizio+incremento)/incremento. Nei cicli iterativi, quindi, il numero di iterazioni da eseguire e noto al momento in cui si entra nel ciclo. La limitazione di questi cicli, pero, sta nel fatto che esistono problemi che non si possono risolvere con un numero di iterazioni definito a priori. Ad esempio la lettura da tastiera di una sequenza di interi terminata da uno 0, il calcolo della lunghezza della sequenza (senza lo 0) e la stampa a terminale di quest ultima. Questa limitazione puo essere superata con i cicli while. Nei cicli while il numero di iterazioni non e necessariamente noto al momento di iniziare le iterazioni. La sintassi generale di un ciclo while e la seguente: 15\n17 DO END DO sequenza_di_istruzioni_1 IF(espressione_logica) EXIT sequenza_di_istruzioni_2 Sia la prima che la seconda sequenza di istruzioni possono essere vuote (ovviamente non contemporaneamente). L espressione_logica e la sentinella del ciclo e rappresenta un evento particolare (ad esempio un valore particolare di una variabile) per cui il ciclo deve essere interrotto. L istruzione EXIT, percio, determina l uscita dal ciclo. Nei cicli annidati questa istruzione ha effetto sempre sul ciclo piu interno. Percio in questa sequenza DO sequenza_di_istruzioni_1 DO END DO END DO sequenza_di_istruzioni_2 IF(espressione_logica) EXIT sequenza_di_istruzioni_3 sequenza_di_istruzioni_4 l istruzione EXIT porta alla sequenza_di_istruzioni_4. Nota che l itruzione EXIT puo essere utilizzata in qualsiasi tipo di ciclo, anche in quelli iterativi. Un altra possibilita di implementazione dei cicli while e la seguente: DO WHILE (condizione) END DO sequenza_di_istruzioni_1 In questo caso il ciclo viene eseguito fino a che la condizione risulta verificata. 16\n18 Una istruzione spesso utilizzata all interno dei cicli (sia iterativi che while) e il CYCLE, che fa partire la prossima iterazione del ciclo. Se questa istruzione viene utilizzata nei cicli while, l esecuzione riparte dalla prima sequenza di istruzione del ciclo dopo il DO, se invece e utilizzata in un ciclo iterativo, allora il contatore viene incrementato e l esecuzione riparte dalla prima sequenza di istruzioni subito dopo il DO. DO END DO sequenza_di_istruzioni_1 IF(espressione_logica) CYCLE sequenza_di_istruzioni_2 DO indice=inizio,fine[,incremento] END DO sequenza_di_istruzioni_1 IF(espressione_logica) CYCLE sequenza di istruzioni_2 Come per l istruzione EXIT, anche l istruzione CYCLE, nei cicli annidati, ha effetto sempre sul ciclo piu interno. Come per i costrutti IF-THEN-ELSE e SELECT CASE, anche i cicli posso essere identificati con un nome. Percio in generale la sintassi completa sara : [nome:] DO indice=inizio,fine[,incremento] sequenza di istruzioni END DO [nome] 17\n19 [nome:] DO sequenza_di_istruzioni_1 IF(espressione_logica) EXIT [nome] sequenza_di_istruzioni_2 END DO [nome] [nome:] DO WHILE (condizione) sequenza_di_istruzioni_1 END DO [nome] L utilizzo del nome e utile spesso per gestire i comandi EXIT e CYCLE nei cicli annidati. Ad esempio in questa sequenza di istruzioni: esterno: DO sequenza_di_istruzioni_1 interno: DO sequenza_di_istruzioni_2 IF(espressione_logica) EXIT esterno sequenza_di_istruzioni_3 END DO interno sequenza_di_istruzioni_4 END DO esterno sequenza_di_istruzioni_5 il comando EXIT non porta all esecuzione della sequenza_di_istruzioni_4 come farebbe se non ci fosse indicato il nome, ma porta all uscita del ciclo piu esterno e percio all esecuzione della sequenza_di_istruzioni_5. 18\n20 Operazioni di Input/Output Un programma FORTRAN puo leggere e scrivere su file, cioe una sequenza di elementi (caratteri e/o numeri) memorizzati in memoria secondaria (es. hard disk). La disciplina di accesso ad un file puo essere sequenziale, cioe dal primo elemento ai successivi in sequenza, o casuale, cioe ad un elemento qualsiasi in qualsiasi momento. E da notare che questi concetti sono generali ed indipendenti dal linguaggio di programmazione. Le operazioni principali su file sono: - Apertura di un file - Lettura di dati - Scrittura di dati - Chiusura del file Aprire di un file signifca creare una corrispondenza tra il nome fisico del file ed un nome logico da utilizzare all interno del programma e si effettua attraverso l istruzione: - OPEN (lista_open) La lista_open e una lista di parametri separati da una virgola. I parametri sono: - UNIT: che e il nome logico da utilizzare per accedere al file all interno del programma. Es. UNIT=10 - FILE: che e il nome fisico del file. Es. FILE= pippo.txt - STATUS: che puo assumere i seguenti valori: - OLD : se il file esiste gia e deve essere solo aperto; se il file non esiste viene segnalato un errore. - NEW : per creare un nuovo file se questo non esiste; se il file invece e gia esistente viene segnalato un errore - REPLACE : se il file esiste viene cancellato e ricreato - SCRATCH : per creare un file temporaneo che non viene salvato - ACTION : che puo essere READ o WRITE READ : il file puo essere solo letto, se viene scritto viene segnalato un messaggio di errore WRITE : il file puo essere solo scritto, se viene letto viene segnalato un messaggio di error 19\n21 READWRITE : il file puo essere sia letto che scritto - IOSTAT : variabile di tipo INTEGER che memorizza eventi particolari e che permette di controllare lo stato delle operazioni. La sintassi e IOSTAT=nome_variabile. Se nome_variabile==0 tutto e andato a buon fine nome_variaible/=0 c e stato un errore nell operazione (ad esempio, un file in lettura non esiste, si e raggiunto la fine di un file in lettura o la fine di una riga, si e sbagliato il formato di lettura, etc.) In generale, se si vuole aprire un file in scrittura e sufficiente l istruzione - OPEN (UNIT=10,FILE= pippo.txt,iostat=ierr) cioe si e assegnato al file nuovo pippo.txt il nome logico 10 e la variabile intera ierr contiene il risultato delle operazioni su questo file. Attenzione perche se il file esiste questo viene cancellato e ricreato. La chiusura di un file significa cancellare l accoppiamento tra il nome fisico del file e l unita logica creata all interno del programma. La sintassi del comando e : - CLOSE (UNIT=unita_logica) Se un file aperto non viene chiuso, la chiusura avviene in modo implicito al termine del programma. La lettura e la scrittura su file avvengono attraverso i comandi - READ (UNIT=unita_logica,formato,IOSTAT=variabile) - WRITE (UNIT=unita_logica,formato) dove appunto l unita_logica e il nome logico assegnato al file nel comando OPEN. La specifica di formato verra descritto nel paragrafo successivo. Altre operazioni che possiamo fare sui files sono: - REWIND che ci riposiziona all inizio del file - BACKSPACE che ci riposiziona alla linea precedente Se al posto dell unita logica si scrive un asterisco, allora questo indica una lettura o scrittura dall input o l ouptut standard, tipicamente il monitor. 20\n22 Formattazione dell Input e Output Abbiamo visto nel paragrafo precedente che alla lettura e alla scrittura su file o su monitor puo essere associata una specifica di formato. La specifica di formato puo essere assegnata attraverso: - un intero che specifica l etichetta di una istruzione FORMAT esplicita. Ad es. write(*,100)a 100 FORMAT(decrittori_di_formato) dove 100 e l etichetta di formato; - una stringa costante con nome formato= (descrittori_di_formato) write(*,formato)a - una stringa costante senza nome write(*,fmt= (descrittori_di_formato) )a - una stringa variabile (uso sofisticato che non tratteremo in questo corso) In tutti i casi i descrittori_di_formato specificano completamente il formato. In particolare: Controllano la posizione verticale della riga Controllano la posizione orizzontale Specificano come stampare una determinato valore Specificano quante volte deve essere ripetuto un descrittore I descrittori di formato utilizzano i seguenti simboli: - c: numero di colonna - d: numero di cifre a destra del punto decimale - m: numero minimo di cifre da visualizzare - n: numero di spazi da saltare - r: fattore di ripetizione - w: quanti caratteri utilizzare per un dato valore Se al posto della specifica di formato c e un asterisco, allora si intende un formato libero, cioe senza formattazione. 21\n23 Numeri Interi: Il descrittore di formato generale per i numeri interi ha la forma - riw.m: - r indica quanto volte applicare il descrittore - w indica quanti caratteri usare per il numero - m indica quante cifre mostrare Ecco alcuni esempi: Numeri Reali: Il descrittore di formato generale per i numeri reali ha la forma - rfw.d (formato non esponenziale o virgola fissa): - r indica quanto volte applicare il descrittore - w indica quanti caratteri usare per il numero - d indica quante cifre decimali usare dopo il punto - rew.d (formato esponenziale o virgola mobile): - r indica quanto volte applicare il descrittore - w indica quanti caratteri usare per il numero - d indica quante cifre decimali usare dopo il punto Nota bene, se il descrittore di formato e preceduto da 1P allora il primo carattere del numero e la prima cifra significativa. 22\n24 Alcuni esempi: WRITE(*,FMT= (E12.4) ) E+00 XXXXXXXXXXXX WRITE(*,FMT= (1P,E12.4) ) E-01 WRITE(*,FMT= (F8.4) ) XXXXXXXX XXXXXXXXXXXX Stringhe: Il descrittore di formato generale per le stringhe ha la forma: - raw: - r indica quanto volte applicare il descrittore - w (opzionale) specifica la larghezza del campo Alcuni esempi: WRITE(*,FMT= (A6) ) pippo pippo XXXXXX WRITE(*,FMT= (A8) ) pippo pippo XXXXXXXXX 1.4. Sezione Conclusiva La sezione conclusiva e composta dal comando: - END [PROGRAM [nome_programma]] 23\n25 1.5. Modularizzazione (Subroutine, Function, Module) La modularizzazione e un esigenza generale della programmazione. Essa e utile a chi utilizza moduli realizzati da altri ed e utile a chi programma moduli per farli usare ad altri. Un modulo e una scatola nera. Per utilizzarlo: basta conoscere cosa fa non serve conoscere come lo fa In questo corso vedremo come realizzare semplici moduli software chiamati sottoprogrammi. E ragionevole scrivere un sottoprogramma in almeno due casi: uno stesso compito deve essere ripetuto piu volte, in contesti diversi uno stesso compito e parametrico In FORTRAN90 esistono die tipi di unita di programma: SUBROUTINE FUNCTION Le unita di programma in FORTRAN90 possono essere contenute in apposite librerie denominate moduli (MODULE). FUNCTION, SUBROUTINE e MODULE possono essere all interno dello stesso file che contiene il programma principale oppure possono essere file a se stanti (con estensione.f90). In questo secondo caso devono essere compilate separatamente e successivamente collegate al programma principale. Supponiamo di avere i seguenti file sorgenti: princ.f90 (contiene il PROGRAM main o programma principale) miomod.f90 (contiene un MODULE modulo) miasub.f90 (contiene la SUBROUTINE stampe) miafunc.f90 (contiene la FUNCTION areacerchio) La sequenza di comandi per creare ed utilizzare il file eseguibile e la seguente: Compilazione separata dei singoli files: $ifort c princ.f90 risultato: file princ.o $ifort c miomod.f90 risultato: file miomod.o e modulo.mod 24\n26 $ifort c miasub.f90 risultato: file miasub.o $ifort c miafunc.f90 risultato: file miafunc.o Collegamento (link) dei singoli files e creazione eseguibile: $ifort o prova princ.o miomod.o miasub.o miafun.o risultato file eseguibile prova Esecuzione file eseguibile: $./prova Percio in generale lo sviluppo di programmi prevede la situazione tipica in cui si ha: Un file sorgente (.f90) contente il PROGRAM (o programma principale) vari files sorgente (.f90) ogniuno contente un MODULE; ogni MODULE puo contenere varie SUBROUTINE e/o FUNCTION; vari files sorgente (.f90) contenenti una o piu SUBROUTINE e una o piu FUNCTION Ogni unita di programma sara cotituita, come il programma principale, da una sezione dichiarativa, una sezione esecutiva ed una sezione conclusiva e per queste varranno le stesse regole discusse per il programma principale. Andiamo a vedere piu in dettaglio le varie unita di programma SUBROUTINE Una subroutine e una unita di programma indipendente che puo essere utilizzata all interno di altri programmi accetta un certo numero di parametri in input che puo elaborare restituisce un cetro numero parametri in output La sintassi per la dichiarazione di una subroutine e la seguente: 25\n27 SUBROUTINE nome_subroutine(lista_argomenti) RETURN sezione dichiarativa sezione esecutiva END SUBROUTINE nome_subroutine Nella dichiarazione della subroutine, la lista_argomenti e una lista di parametri che possono essere in input e/o output. Per invocare una subroutine e necessario utilizzare l istruzione CALL nome_subroutine(lista_argomenti) L istruzione RETURN a fine procedura e opzionale, tuttavia alcuni compilatori potrebbero richiederla obbligatoriamente MODULE Il Module e un unita di programma che permette di includere subroutine e funzioni al suo interno. La sintassi per la dichiarazione di un modulo e : MODULE nome_modulo CONTAINS sezione dichiarativa dichiarazioni_di_unita _di_sottoprogrammi END MODULE nome_modulo Per invocare i sottoprogrammi o utilizzare le definizioni di tipo contenuti nel modulo e necessario importare il modulo attraverso l istruzione USE. Ad es. PROGRAM nome_programma USE nome_modulo IMPLICIT NONE... 26\n28 FUNCTION Le funzioni definite dall utente possono essere utilizzate come qualsiasi funzione implicita FORTRAN90. La sintassi per definire una funzione e : FUNCTION nome_function(lista argomenti)! sezione dichiarativa TIPO:: nome_function! sezione esecutiva... RETURN nome_function=espressione END FUNCTION [nome_function] O in maniera equivalente: TIPO FUNCTION nome_function(lista argomenti) Come nel caso delle subroutine anche in questo caso l istruzione RETURN e opzionale. Le differenze principali tra subrotuine e function sono le seguenti. Le function restituiscono un valore Il tipo di tale valore va opportunamente dichiarato Le function vengono chiamate all interno delle espressioni Nell invocazione di una function non va usata l istruzione CALL Regole di visibilita Le costanti/variabili dichiarate in una unita di programma si chiamano LOCALI e non sono visibili all esterno dell unita di sottoprogramma stessa. Analogamente, le costanti/variabili definite nel programma principale non sono visibili all interno delle varie unita di programma. Di conseguenza possiamo dichiarare costanti e/o variabili con lo stesso nome in vari sottoprogrammi senza paura che ci sia interferenza tra queste. 27\n29 Passaggio dei parametri nei sottoprogrammi I parametri costituiscono l interfaccia di una unita di programma, ovvero i dati che occorrono per poterla utilizzare. La lista dei parametri, presente tra le parentesi tonde a fianco al nome dell unita di programma, e costituita in generale da variabili e/o array. I parametri dei sottoprogrammi FORTRAN90 sono detti argomenti fittizi, cioe sono dei segnaposto per i valori veri e propri che saranno utilizzati durante l esecuzione del programma (argomenti reali). Esistono tre modalita distinte per ogni parametro passato che si definiscono attraverso l attributo INTENT nei seguenti modi: INTENT(IN): ingresso. Il parametro non puo essere modificato dentro la subroutine o funzione INTENT(OUT): uscita. Al termine della subroutine o funzione il valore del parametro potra essere stato modifica, il valore in ingresso non sara utilizzato INTENT(INOUT): ingresso e uscita. Il parametro ha informazioni in ingresso ma potra essere modificato (DEFAULT). Quando si invoca un sottoprogramma e necessario istanziare tutti i parametri, sostituendo cioe ai parametri fittizi i valori effettivi (espressioni, variabili, array, costanti). Lo schema di passaggio dei valori utilizzato dal FORTRAN90 e quello per riferimento, non vengono passati i valori veri e propri ma viene passo il riferimento alla locazione di memoria che contiene il valore. 28\n30 2.6. Diagrammi di flusso Per sviluppare programmi complessi e utile avvalersi dei cosi detti diagrammi di flusso che sono una rappresentazione grafica delle operazioni che il programma dovra eseguire per effettuare il compito che noi desideriamo. La notazione grafica dei diagrammi di flusso e riportata nella seguente figura: Un esempio di diagrammi di flusso di un programma e il seguente: 29\n31 Diagramma di flusso del costrutto IF THEN ELSE Sulla base delle definizioni precedenti possiamo indicare il diagramma di flusso di un costrutto IF-THEN-ELSE che sara : Ad esempio se volessimo scrivere un programma che, acquisiti in ingresso due numeri a e b determini la soluzione dell equazione ax+b=0 e la stampi a terminale, avremmo il seguente diagramma di flusso: 30\n32 Diagramma di flusso del costrutto SELECT CASE Analogamente il diagramma di flusso di un costrutto SELECT CASE sara : 31\n33 Diagramma di flusso del ciclo DO Il diagramma di flusso di un ciclo iterativo e : Un esempio di implementazione di un ciclo iterativo in un programma piu complesso e : 32\n34 Il diagramma di flusso per un ciclo while, invece, ha la forma: 33


Allievi di arti marziali ed ex colleghi agenti all’addio a Nicola Berto - Il Mattino di Padova Padova\nAllievi di arti marziali ed ex colleghi agenti all’addio a Nicola Berto\nFunerale a Vanzo per la vittima dell’incidente a Este La promessa del figlio Marco: «La tua scuola non chiuderà»\nSAN PIETRO VIMINARIO. Un addio commosso, tra gli ex colleghi, gli amici, i famigliari e soprattutto tra gli allievi che in Nicola vedevano una guida e un maestro.\nIeri pomeriggio, nella chiesa parrocchiale di Vanzo, è stato celebrato il funerale di Nicola Berto, 52 anni, stimato maestro di arti marziali: il motociclista morto undici giorni fa in sella alla sua motocicletta. Berto è rimasto vittima di un incidente mentre era in sella alla sua Honda Hornet, lungo il tratto atestino della regionale 10. La moto è stata toccata da una Fiat Punto impegnata in una svolta: sbalzato a terra, il cinquantaduenne ha colpito violentemente il palo di un semaforo.\n«Eravamo davvero in tantissimi a salutare Nicola, mio padre e mio maestro» dice il figlio Marco «Sono stato veramente onorato di tutte queste presenze». Tra picchetti d’onore e gonfaloni, in chiesa sono arrivati i rappresentanti dell’Avis, per cui Berto era donatore da sempre, ma anche dell’amministrazione comunale e del comando della polizia penitenziaria della Casa di reclusione di Padova. Il cinquantaduenne aveva lavorato come ispettore capo e ieri era presente una rappresentanza in divisa oltre al commissario comandante. Con loro, infine, c’erano anche membri dell’Associazione pensionati di polizia penitenziaria.\nE poi c’era chi, soprattutto dopo la pensione, aveva condiviso con Berto la passione per le arti marziali. Era stato proprio lui, qualche anno fa, a fondare la Scuola delle 9 Armonie di Conselve. All’ingresso della chiesa sono state sistemate anche delle foto che ritraevano il cinquantaduenne in divisa da agente penitenziario e da maestro di arti marziali, accompagnate dalla scritta “Ciao Nicola”. Don Renzo, nel corso dell’omelia, ha ricordato la saggezza e la bontà della vittima, sottolineando anche l’importanza del perdono per chiunque, in un modo o nell’altro, sia stato causa dell’incidente che ha spezzato la vita del motociclista. «Continueremo a portare avanti quanto ha creato» assicura il figlio Marco «a partire dalla scuola di arti marziali, che vivrà grazie a me, agli istruttori e agli allievi cresciuti con lui».


Thai a Washington County\nThai a Washington County Oregon > Stati Uniti\nIl thai a Washington County preoccupa non solo e sa come prestare attenzione a un piatto. In questa regione si sono anche preoccupati per come appare, come gli odori, e come si inserisce con il resto del pasto.\nLa sua raffinatezza, tecniche di cottura, utilizzo di ingredienti e la presentazione erano di grande influenza sulla cucina delle pianure centrali della Thailandia. Molti piatti sono molto popolari in Thailandia erano piatti originariamente cinesi. Oggi, possiamo mangiare thai a Washington County senza troppi problemi.\nRistorante asiatico elencate per categorie a Washington County\nThai a Washington County per città\nConti Il settore dei servizi per il 11% di tutti i posti di lavoro creati a Sherwood. Di questa percentuale, il 6% sono posti di lavoro diretti, il resto sono posti di lavoro indiretti.\nHa un buon trasporto che beneficiano la crescita e l'espansione delle attività. Il 73% dei cittadini riconosce vivere molto felice a Cedar Mill.\nLa città di Tigard ha 9 attrazioni e dei suoi cittadini raccomanda che i turisti che arrivano in città o dintorni, visitare questi luoghi.\nAvere 21083 persone. A Forest Grove, il 3% sono donne e il tasso di disoccupazione è intorno al 65% della popolazione.\nSi tratta di una delle più importanti città del paese. Hillsboro è entro il 85% delle città interessate a Stati Uniti. Ha 10 parchi all'interno della città.\nÈ un persone di Stati Uniti. Il suo bandiera raccoglie tutti path ha portato ultimi tempo giorni. La sua superficie è di circa 35 km. Il 37% dei turisti ha detto che è una città affascinante.\nIl 28% delle persone che lavorano nel settore, direttamente o indirettamente auto. Un altro grande maggioranza dei cittadini di Beaverton sono disoccupati.\nConti Il settore dei servizi per il 33% di tutti i posti di lavoro creati a Bethany. Di questa percentuale, il 45% sono posti di lavoro diretti, il resto sono posti di lavoro indiretti.\nHa una popolazione di 8300 abitanti. Alta rispetto a città vicine.\nLa città di Aloha ha 10 attrazioni e dei suoi cittadini raccomanda che i turisti che arrivano in città o dintorni, visitare questi luoghi.\nAvere 8001 cittadino. A West Haven-Sylvan, il 11% sono donne e il tasso di disoccupazione è intorno al 40% della popolazione.\nSi tratta di una delle più importanti città del paese. Cornelius è entro il 72% delle città interessate a Stati Uniti. Ha 9 piscine.\nElencati Thai a Washington County\n12600 SW Crescent St Ste 150\nSecondo le nostre banche dati, la maggior parte degli utenti di questo ristorante (Washington County) vive all'interno di 5KM.\nCon i vostri commenti e valutazioni aiutare gli altri utenti hanno un'idea di quanto bene o male questo ristorante (Washington County).\n3205 SW Cedar Hills Blvd Ste 22\nH-Mart 13600 Pacific Hwy\n7985 SW Nyberg St\n20649 SW Roy Rogers Rd Ste 304\n21 Thai a Washington County