C++ – soluzioni esercizi su IF e cicli

Si deve calcolare l’importo della fattura telefonica.

Le tariffe sono le seguenti:

  • i primi 30 minuti si pagano 0.35€/min.
  • dai 30 ai 100 minuti si paga 0.25€/min
  • oltre i 100 minuti si pagano 0.15€/min.

Ad esempio se ho consumato 70 minuti, i primi 30 li pago 0.35€/min i rimanenti, ossia 40, li pago 0.25€/min.

L’unico dato che si richiede è i minuti.

L’unico dato che si richiede è i minuti.

Soluzione:

#include<iostream>

using namespace std;

int main()
{
float minuti;
float tot;
cout<<“Minuti: “; cin>>minuti;

if (minuti<=30)
{
    tot=minuti*0.35;
    cout<<"Costo totale: "<<tot;
}
else if(minuti>30 && minuti<=100)
{
   tot=30*0.35+(minuti-30)*0.25;
   cout<<"Costo totale: "<<tot;

}

else if(minuti>100)
{
    tot=30*0.35+(100-30)*0.25+(minuti-100)*0.15;
    cout<<"Costo totale: "<<tot;
}
return 0;       

}

Scrivere un programma che svolga le seguenti operazioni:

  1. Inserire all’utente 10 numeri;
  2. Contare e stampare a video la quantità di numeri positivi e quella di numeri negativi inseriti;
  3. 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;       

}

Pubblicato in Senza categoria | Lascia un commento

TPSIT – APP- Sistema operativo Android

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”)

Pubblicato in Senza categoria | Lascia un commento

TPSIT – App – Ambiente di sviluppo

Ambiente di sviluppo:


Samy Charnine

SDK per iOS

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.

SDK per WIndows

Metro che prende il nome di Apps Store.

Pubblicato in Senza categoria | Lascia un commento

Disposizione con ripetizione

Samy Charnine

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?

La formula che si deve applicare è la seguente:

D_{n,k}^{'}=n^{k}

applicandola al primo esempio si avrà:

D_{2,3}^{'}=2^{3}=8

nel secondo esempio:

D_{10,4}^{'}=10^{4}=10.000 ossia 10.000 combinazioni diverse.

Pubblicato in Senza categoria | Lascia un commento

Disposizione semplice

Samy Charnine

Se ho 3 persone e devo sapere in quante maniere posso disporre attorno ad un tavolo essa è una disposizione semplice.

Chiamo le tre persone A, B, C

Tutte le possibili disposizioni sono:

AB, BA, CA, AC, BC, CB.

Generalizzando si applica la seguente formula che mi fornisce esattamente quante sono le disposizioni:

D_{n,k}=n\cdot (n-1)\cdot (n-2)\cdot …\cdot (n-k+1)

Come conviene applicarla avendo ad esempio 15 persone e 14 posti a tavola:

n=15 e k=14

calcolo n-k+1=2 ed utilizzo la formula precedente effettuando il prodotto di tutti i numeri interi compresi tra 15 e 2 compresi:

D_{15,14}=15\cdot 14\cdot 13\cdot 12 \cdot 11 \cdot 10 \cdot 9 \cdot 8 \cdot 7 \cdot 6 \cdot 5 \cdot 4 \cdot 3 \cdot 3 \cdot 2 =1.307.674.368.000

Pubblicato in Senza categoria | Lascia un commento

Maturità 2019: secondo problema – terzo punto

  • Con le opportune motivazioni, dedurre il grafico di f da quello di F
  • 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 f, 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:

\int_{-b}^{b}f(t)dt

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.

Si ha il seguente grafico:

Terzo punto

La f è simmetrica per cui è sufficiente calcolare:

2\int_{-\frac{\sqrt{2}}{2}a}^{0}f(t)=F\left ( 0 \right )-F\left ( -\frac{\sqrt{2}}{2} a\right )=\cdot \cdot \cdot =\cfrac{2}{a}\left ( 1-\sqrt{\frac{2}{3}} \right )

Quarto punto

\int_{-b}^{b}f(t)dt=0 essendo la funzione simmetrica

Pubblicato in Senza categoria | Lascia un commento

Maturità 2019: secondo problema – terzo punto

Per a > 0, si consideri la funzione f: \mathbb{R}\rightarrow \mathbb{R} definita da:

f(t)=-\cfrac{t}{\sqrt{\left ( t^2+a^2 \right )^3}}

  • Verificare che:

F(t)=\cfrac{1}{\sqrt{t^{2}+a^{2}}}-\cfrac{1}{a}

è la primitiva di f il cui grafico passa per l’origine.

  • Studiare la funzione F individuandone eventuali simmetrie, asintoti, estremi.
  • Provare che F presenta due flessi nei punti di ascisse t=\pm \cfrac{\sqrt{2}}{2}a
  • Determinare le pendenze delle rette tangenti al grafico di F in tali punti.

Prerequisiti

  • saper fare la derivata di una funzione fratta
  • studio di funzione completo
  • aver capito il concetto di derivata

Sviluppo

Primo punto

Riscrivo la F per facilitarmi la sua derivata:

F(t)=\cfrac{1}{\sqrt{t^{2}+a^{2}}}-\cfrac{1}{a}=\left ( t^{2}+a^{2} \right )^{-\frac{1}{2}}-\cfrac{1}{a}

F'(t)=-\frac{1}{2}\left ( t^{2}+a^{2} \right )^{-\frac{3}{2}}\cdot 2t

F'(t)=f(t)

inoltre F(0)=0

Secondo punto

Dominio è tutto \mathbb{R}

La funzione è pari, infatti:

F(t)=F(-t) quindi è simmetrica rispetto l’asse x.

Non vi sono asintoti orizzontali.

\underset{x\rightarrow+\infty}{lim}\cfrac{1}{\sqrt{ t^2+a^2 }}-\frac{1}{a}=-\frac{1}{a}

Vi è asintoto orizzontale in

y=-\frac{1}{a}

F'(t)=-\frac{1}{2}\left ( t^{2}+a^{2} \right )^{-\frac{3}{2}}\cdot 2t

e si annulla solo in t=0 che è proprio il punto di massimo osservando il segno della derivata prima.

Ecco il grafico della funzione:

Terzo punto

Faccio la derivata prima della derivata prima per determinare i flessi:

F'(t)=-\cfrac{t}{\sqrt{\left ( t^2+a^2 \right )^3}}=-t\cdot \left (t^2+a^2 \right )^{-\frac{3}{2}}

F''(t)=-\left (t^2+a^2 \right )^{-\frac{3}{2}}-t\cdot \left ( -\frac{3}{2} \right )\left (t^2+a^2 \right )^{-\frac{5}{2}}\cdot 2t=-\cfrac{1}{\sqrt{\left (t^2+a^2 \right )^3}}+\cfrac{3t^2}{\left (t^2+a^2 \right )^5}

F''(t)=\cfrac{-t^2-a^2+3t^2}{\left (t^2+a^2 \right )^5}

che si annulla proprio in:

t=\pm \cfrac{\sqrt{2}}{2}a

Quarto punto

E’ sufficiente sostituire i valori dei flessi nella derivata prima:

f\left ( \cfrac{\sqrt{2}}{2}a \right )=\cdot \cdot \cdot =-\cfrac{2}{3a^2\sqrt{3}}

f\left (- \cfrac{\sqrt{2}}{2}a \right )=\cdot \cdot \cdot =\cfrac{2}{3a^2\sqrt{3}}

Pubblicato in Senza categoria | Lascia un commento

Maturità 2019: secondo problema – secondo punto

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:

\phi (E)=\cfrac{2k\pi r^2}{\mu_{0}\epsilon_{0}}\left ( \cfrac{-1}{\sqrt{t^2+a^2}}+\cfrac{1}{a} \right )

  • 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 è:

C(B)=2\pi r B

Secondo punto

Per ricavare il flusso di E si applica la definizione di Ampere-Maxwell e si calcola un integrale:

C(B)=2\pi rB=\varepsilon_{0}\mu _{0}\cfrac{d\phi (E)}{dt}

dalla quale:

\phi (E)=\int \cfrac{2\pi rB}{\varepsilon _{0}\mu _{0}}dt

adesso sostituisco il valore di B dato in precedenza e calcolo il valore dell’integrale:

\phi (E)=\cfrac{2k\pi r^2}{\varepsilon _ {0}\mu _{0}}\int \cfrac{t}{\sqrt{\left ( t^2+a^2 \right )^3}}dt

Mi concentro solo sull’integrale:

\int t\cdot \left ( t^2+a^2 \right )^{-\frac{3}{2}}dt=\cfrac{1}{2}\cfrac{\left ( t^2+a^2 \right )^{-\frac{1}{2}}}{-\frac{1}{2}}+c=-\cfrac{1}{\left ( t^2+a^2 \right )}+c

All’inizio il potenziale è nullo ossi V=dE=0 significa che anche il flusso è nullo per cui nell’integrale precedente quando t=0 anche il flusso è nullo per cui:

c=\cfrac{1}{a}

Unendo tutte le relazioni ho alla fine:

\phi (E)=\cfrac{2k\pi r^2}{\mu_{0}\epsilon_{0}}\left ( \cfrac{-1}{\sqrt{t^2+a^2}}+\cfrac{1}{a} \right )

Terzo punto

V=Ed

\phi (E)=ES=E\pi r^2

E=\cfrac{\phi (E)}{\pi r^2}

usando la definizione precedente di flusso la differenza di potenziale diventa:

V=\cfrac{2kd}{\mu_{0}\epsilon_{0}}\left ( \cfrac{-1}{\sqrt{t^2+a^2}}+\cfrac{1}{a} \right )

Quarto punto

Devo saper sviluppare il limite:

\underset{x\rightarrow+\infty}{lim}\cfrac{t}{\sqrt{\left ( t^2+a^2 \right )^{3}}}=D.H.=\underset{x\rightarrow+\infty}{lim}\cfrac{2}{3\sqrt{t^2+a^2}}=0

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.

Pubblicato in Senza categoria | Lascia un commento

Maturità 2019: secondo problema – primo punto

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:

\left | B \right |=\cfrac{kt}{\sqrt{\left ( t^2+a^2 \right )^{3}}}r con r\leqslant R

dove a e k sono costanti positive e t è 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:

[T]=k\cfrac{[s][m]}{\sqrt{([s]^2)^3}}

dove a è espressa inevitabilmente in secondi.

Per cui k=\cfrac{[T][s]^2}{[m]}

Secondo punto

Si applica la legge di Ampere-Maxwell considerando nullo le correnti che non sono presenti in questo caso:

C(B)=\mu_{0}\varepsilon_{0}\cfrac{d\phi (E)}{dt}

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.

Pubblicato in Senza categoria | Lascia un commento

Maturità 2019: primo problema – quarto punto

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à B=1.5\cdot 10^{-2}T 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:

V=f.e.m=-\cfrac{d\phi(B) }{dt}

B è costante

V=RI

S=S\cos \left ( \omega t \right ) ed è l’unico termine che varia con il tempo per cui la sua derivata risulta:

S'=-S\omega \sin  \left ( \omega t \right )

che sostituita nell’equazione di partenza si ha:

RI=S\omega B\sin  \left ( \omega t \right )

Siccome si ha il valore massimo:

\omega =\cfrac{RI}{SB}=\cfrac{0.20\cdot 5\cdot 10^{-3}}{\cfrac{4}{3}\cdot 1.5\cdot 10^{-2}}=0.05 \frac{rad}{s}

Pubblicato in Senza categoria | Lascia un commento