Scrivere
un programma che svolga le seguenti operazioni:
Inserire all’utente 10 numeri;
Contare e stampare a video la quantità di numeri positivi e quella di numeri negativi inseriti;
Eseguire e stampare a video la somma dei numeri positivi e quella dei numeri negativi.
Soluzione:
#include<iostream>
using namespace std;
int main()
{
int i,num,nummin,nummag,sommin,sommag;
i=0;
nummin=0;
nummag=0;
while(i!=10)
{
cout<<“Inserisci il numero: “;
cin>>num;
if (num<10)
{
nummin=nummin+1;
sommin=sommin+num;
}
else
{
nummag=nummag+1;
sommag=sommag+num;
}
i=i+1;
}
cout<<"Numeri minori di dieci: "<<nummin<<" con somma: "<<sommin<<endl;
cout<<"Numeri maggiori di dieci"<<nummag<<" con somma: "<<sommag<<endl;
return 0;
Prima di sviluppare un’app, bisogna capire com’è strutturato il sistema operativo.
Stack Android:
Linux Kernel Layer
Native Layer
Application Framework Layer
Application Layer
Tutte le applicazioni sono scritte in Java che si basano su framework applicativo pieno di librerie e classi astratte che utilizzano l’ambiente Apache Harmony. Tutte le funzioni quali mandare un sms, usare internet si basa su librerie scritte in C++.
Hardware Abstraction Layer (HAL) è formato da un insieme di funzioni che tine conto delle differenze fisiche dei vari dispositivi. Permette al software di funzionare su dispositivi differenti.
Le applicazioni vengono eseguite tramite DVM Dalvik Virtual Machine una macchina virtuale adattata per l’uso dei dispositivi mobili. Dalla versione 5.0 è stata sostituita da ART (android Run Time)
Applicazioni
Le applicazioni, più comunemente dette app, sono dei programmi ti tipo Event Driven ossia guidate dagli eventi gestiti all’interno del dispositivo mobile come il touch dello schermo, le azioni dei sensori, ecc.
2 tipi:
applicazioni vere e proprie che occupano tutto lo schermo come ad esempio il browser
widget che occupano una piccola e fissata porzione dello schermo come ad esempio l’orologio di Android
le applicazioni sono composte da 4 componenti:
Activity
Service
Broadcast Receiver
Content Provider
Le applicazioni devono sempre contenere un’activity.
Activity
Blocco di codice che interagisce con l’utente utilizzando lo schermo e i dispositivi di input, usando i pulsanti, le caselle di testo, pulsanti radio, ecc presenti nell’android .widget. Esse vengono usate ereditando la classe android.app.Activity.
Service
Programmi eseguiti in background e non interagiscono con l’utente, ad esempio la riproduzione di un mp3. Esse estendo la classe android.app.Service
Broadcast Receiver
Si usa quando si deve intercettare un evento di sistema, ad esempio si scatta una foto o parte il segnale di batteria scarica Si estende la classe android.content.BroadcastReceiver
Content Provider
Espongono i dati e le informazioni, è il canale di comunicazione tra le differenti applicazioni installate nel sistema. Si estende la classe android.content.Content Provider
Nota Bene: un’applicazione ha al suo interno le activity
Approfondimenti su Activity
I sistemi Android non possiedono schermi come quelli del PC per cui le finestre vengono affiancate solo parzialmente.
Le activity passano attraverso i seguenti stati:
Resumed o Active o Running: è visibile e riceve i dati in input
Paused: è parzialmente visibile, non riceve input
Stopped: non è visibile ma ancora in esecuzione
Destroyed: è rimossa dalla memoria del dispositivo
L’attività che occupa il display è in esecuzione e interagisce con l’utente, le altre attività sono ibernate per ridurre al minimo il consumo delle risorse.
Metodi della classe Activity
protect void onCreate(android.os.BundlesavedInstanceState) –> viene richiamato alla creazione dell’attività, l’argomento savedInstanceState restituisce al metodo un eventuale stato dell’attività passato ad un’altra istanza che è stata terminata. E’ null se non vi è alcuno stato precedentemente salvato.
protect void onRestart()–> segnala che l’attività è stata riavviata dopo che è stata arrestata.
protect void onStart()–> segnala che l’attività viene resa visibile allo schermo
protect void onResume()–>segnala che l’attività inizia ad interagire con l’utente.
protect void onPause()–> l’attività con l’utente termina
protect void onStop()–>attività non più visibile sullo schermo
protect void onDestroy()–>applicazione terminata
Per poter modificare il codice di questi metodi dobbiamo eseguire un override del metodo della classe madre, prestando attenzione ad inserire, nella prima riga di codice il costruttore della classe attraverso l’operatore super.
File APK
Le app vengono distribuite sotto forma di pacchetto autoinstallante in un file con estensione .APK (android Package), è un file compresso.
All’interno del file c’è un certificato che permette l’installazione di un pacchetto .APK su Abdroid: il certificato deve essere presente in qualsiasi pacchetto, altrimenti Android non installerà nulla.
Il certificato viene creato dallo sviluppatore può crearne di due tipi: uno di debagging (ad uso interno) oppure un di mercato (per al distribuzione) ed in questo caso se la copia sarà libera oppure limitata.
Il distributore aggiunge una sua chiave e permetterà la distribuzione. Oppure lo sviluppatore si autocrea un certificato ed in fase di installazione comparirà un messaggio “a suo rishio e pericolo”)
Software Development Kit (SDK) per Apple si chiama Xcode che permette di sviluppare applicazioni per iPhone e iPod e testarle in un simulatore.
Unico inconveniente è che per poter caricare un’applicazione nei dispositivi è necessario iscriversi (a pagamento) all’iPhone Developer Program o se lo sviluppatore vuole mettere a disposizione gratis la sua app allora non è previsto alcun costo di rilascio o distribuzione.
Xcode supporta la distribuzione in rete del lavoro di compilazione tramite Bonjour e Xgrid: compilare un progetto su più computer riducendo i tempi e inoltre la compilazione è di tipo incrementale, cioè il codice viene compilato mentre viene scritto, ottimizzando i tempi.
SDK per Android
Android Studio sta cominciando a sostituire Eclipse.
Se lancio una moneta tre volte, voglio sapere in quante disposizioni differenti posso avere i risultati, immaginando che potrei avere anche tre volte testa e tre volte croce.
Tutte le possibili disposizioni sono le seguenti:
TTT, TTC, TCT, TCC, CTT, CTC, CCT, CCC.
Un altro esempio è quante sono le possibili disposizioni in una sicura considerando che si hanno dieci cifre e quattro rulli?
Con le opportune motivazioni, dedurre il grafico di da quello di
specificando cosa rappresentano le ascisse dei punti di flesso di F per la funzione f.
Calcolare l’area della regione compresa tra il grafico di , l’asse delle ascisse e le rette parallele all’asse delle ordinate passanti per gli estremi della funzione.
Fissato b > 0, calcolare il valore di:
Prerequisiti
analisi di un grafico partendo dalla sua primitiva
analisi dei punti di flesso in rapporto alla sua derivata
saper integrare
Sviluppo
Primo punto
Osservando la concavità si osserva dove la derivata prima è positiva ed è negativa.
Lo zero è il punto che annulla la derivata prima ed è il punto di massimo
Secondo punto
Le ascisse dei punti di flesso rappresentano i punti di massimo e di minimo del grafico della derivata prima.
Siconsideri, tra le armature, un piano perpendicolare all’asse di simmetria.
Su tale piano, sia C la circonferenza avente centro sull’asse e raggio r.
Determinare la circuitazione di B lungo C
Ricavare che il flusso di E, attraverso la superficie circolare delimitata da C, è dato da:
Calcolare la d.d.p. tra le armature del condensatore.
A quale valore tende B al trascorrere del tempo?
Giustificare la risposta dal punto di vista fisico
Prerequisiti
conoscenza della circuitazione del campo magnetico lungo una circonferenza
risolvere integrale di una funzione composta.
risolvere limiti
Sviluppo
Primo punto
La circuitazione di B lungo una circonferenza è:
Secondo punto
Per ricavare il flusso di E si applica la definizione di Ampere-Maxwell e si calcola un integrale:
dalla quale:
adesso sostituisco il valore di dato in precedenza e calcolo il valore dell’integrale:
Mi concentro solo sull’integrale:
All’inizio il potenziale è nullo ossi significa che anche il flusso è nullo per cui nell’integrale precedente quando t=0 anche il flusso è nullo per cui:
Unendo tutte le relazioni ho alla fine:
Terzo punto
usando la definizione precedente di flusso la differenza di potenziale diventa:
Quarto punto
Devo saper sviluppare il limite:
quindi il campo magnetico con t che tende ad infinito tende ad annullarsi.
Quinto punto
Con il passare del tempo si nota che la tensione ai capi del condensatore tende ad un valore costante come pure il campo elettrico per cui non si ha più una variazione di flusso e quindi il campo magnetico scompare.
Un condensatore piano è formato da due armature circolari di raggio R, poste a distanza d, dove R e d sono espresse in metri (m). Viene applicata alle armature una differenza di potenziale variabile nel tempo e inizialmente nulla.
All’interno del condensatore si rileva la presenza di un campo magnetico B.
Trascurando gli effetti di bordo, a distanza r dall’asse di simmetria del condensatore, l’intensità di B, espressa in tesla(T), varia secondo la legge:
con
dove e sono costanti positive e è il tempo trascorso dall’istante iniziale, espresso in secondi (s).
Dopo aver determinato le unità di misura di a e k
spiegare perché nel condensatore è presente un campo magnetico anche in assenza di magneti e correnti di conduzione
Qual è la relazione tra le direzioni di B e del campo elettrico E nei punti interni al condensatore?
Prerequisiti
conoscenza delle unità di misura che caratterizzano il campo induzione magnetica
conoscenza della legge di Ampere Maxwell o quarta equazione di Maxwell.
Sviluppo
Primo punto
Si parte dalla relazione espressa solo in funzione delle unità di misura:
dove è espressa inevitabilmente in secondi.
Per cui
Secondo punto
Si applica la legge di Ampere-Maxwell considerando nullo le correnti che non sono presenti in questo caso:
essendovi la circuitazione vi è il campo magnetico.
Terzo punto
Le linee di campo elettrico sono perpendicolari alle armature mentre quelle di campo magnetico sono concentriche rispetto al centro del condensatore e sono perpendicolari a quelle elettriche.
Si supponga, in assenza dei tre fili, che il contorno della regione S rappresenti il profilo di una spira conduttrice di resistenza R = 0,20 Ω. La spira è posta all’interno di un campo magnetico uniforme di intensità perpendicolare alla regione S. Facendo ruotare la spira intorno all’asse x con velocità angolare ω costante, in essa si genera una corrente indotta la cui intensità massima è pari a 5,0mA. Determinare il valore di ω.
Prerequisiti
conoscenza della legge di Faraday Neumann applicata ad una superficie in rotazione che è equivalente ad un campo magnetico sinusoidale.
Sviluppo
La legge di Faraday Neumann dice che:
è costante
ed è l’unico termine che varia con il tempo per cui la sua derivata risulta:
Il nostro sito utilizza i cookies per offrirti un servizio migliore.
Se vuoi saperne di più o avere istruzioni dettagliate su come disabilitare l'uso dei cookies puoi leggere l' informativa estesa.
Cliccando in un punto qualsiasi dello schermo, effettuando un’azione di scroll o cliccando su Accetto, presti il consenso all’uso di tutti i cookies.OkNoPrivacy policy