[:it]C++ Esercizi con le stringhe[:]

[:it]

  1. Balla

    inserire il proprio nome da tastiera

  2. inserire il proprio nome nel programma
  3. invertire il proprio nome e stamparlo
  4. concatenare due parole

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]C++ Dati strutturati: le stringhe[:]

[:it]

Balla

Introduzione

Una stringa è una sequenza finita di caratteri che generalmente viene racchiusa tra virgolette ed apici(” “).

La stringa è una sequenza di caratteri del tipo c1, c2, c3, c4, c5.

La stringa deve essere costituita da un numero finito di caratteri, che prende il nome di lunghezza della stringa.

Se la stringa non è composta da alcun carattere essa si dice vuota e ha lunghezza uguale a zero. Ogni carattere assume nella stringa una posizione d’ordine che, come nel caso di vettori, si chiama indice della stringa.

Per consentire al programmatore una più efficiente manipolazione delle stringhe, il C++ consente di interpretare una sequenza di caratteri come una singola unità, mettendo a disposizione l’apposita libreria standard, la string.h, contenente tutte le informazioni di utilità di frequente utilizzo.

Una caratteristica importante è che ad indicare il termine della sequenza di caratteri c’è un carattere terminatore ‘\0’.

Operare con le stringhe

Definizione di una stringa

char parola[20];  //dichiarazione di una stringa

per accedere a ogni carattere della parola è possibile accedere a ogni elemento dell’array singolarmente, quindi:

printf(“%c”,parola[4];  //visualizza il 5° elemento/carattere

Dovendo contenere il terminatore, è importante ricordarsi di dimensionare opportunamente l’array .

Inizializzazione di una stringa

char stringa1[]=”paolo”;

char stringa2[6]=”paolo”;

Igresso/Uscita di una stringa

Per visualizzare il contenuto di una stringa si deve utilizzare la specifica di formato %s:

printf(“%s”\n”, stringa1);

Con questa istruzione vengono stampati tutti i caratteri fino al primo ‘\0’.

Analoga specifica di formato si deve usare per l’input:

char stringa3[20];

scanf(“%s”,stringa3);

la funzione scanf() opera sulle stringhe nel seguente modo:

  • vengono letti i caratteri dalla tastiera e inseriti nel vettore finchè viene incontrato il primo carattere di spaziatura;
  • al posto della spaziatura viene inserito il terminatore di stringa ‘\0’;
  • il vettore deve avere una dimensione tale da contenere tutti i caratteri compreso il terminatore.

Manipolazione di una stringa

Nella libreria string.h sono disponibili molte funzioni per la manipolazione della stringhe, che realizzano operazioni di utilizzo frequente.

Ad esempio la funzione

int strlen(char[]) che restituisce il numero di caratteri presenti nella stringa ricevuta in ingresso come parametro e ci risparmia di contare il numero di caratteri.

Esempio:

 

 

 

 

 

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Python: verifica finale a/s 2017-2018[:]

[:it]

Giacomo Balla

Esercizio comune a tutte e tre le tipologie.

Creare una pagina web con indicato nel title il proprio nome.

Nel body inserire la scritta in rosso e grandezza 3 : “prova finale dell’anno scolastico 207/2018 ed andare a capo.

Scrivere sempre nel body andando opportunamente a capo la seguente poesia di Ungaretti

Si sta come

d’autunno

sugli alberi

le foglie

allineandolo al centro ed utilizzando il font times new roman

Esercizio per il 9/10

Creare un unico programma che utilizzando le funzioni ricorsive, implementi l’operazione somma, prodotto ed elevazione a potenza.

Il programma chiederà all’utente due numeri e le operazioni ammesse saranno la somma, il prodotto e l’elevazione a potenza.

Chiedere all’utente l’operazione da eseguire finchè esso non digita da tastiere lo zero.

Controllare che l’utente abbia inserito numeri interi compresi tra 0 e 3 in cui lo 0 esce dal menù, l’1 esegue la domma, il 2 il prodotto ed il 3 la potenza.

La funzione ricorsiva che calcola l’operazione di somma sfrutterà la seguente definizione induttiva:

  • somma(x,y)=x se y=0
  • somma(x,y)=1+(somma(x,y-1)) se y>0.

La funzione ricorsiva che calcola l’operazione prodotto sfrutterà la seguente definizione induttiva:

  • prodotto(x,y)=0 se y=0
  • prodotto(x,y)=somma(x,prodotto(x,y-1)) se y>0.

La funzione ricorsiva che calcola l’operazione di elevamento a potenza sfrutterà la seguente definizione induttiva:

  • esponente(x,y)=1 se y=0
  • esponente(x,y)=prodotto(x,esponente(x, y-1)) se y>0

Notare che la funzione ricorsiva esponente usa la funzione ricorsiva prodotto per il suo calcolo.

Esercizio per 8/9

Chiedere all’utente una lista di almeno 10 numeri dispari (11 numero, 13 o un’altra quantità) e calcolarne la media, la moda, la mediana.

Il programma dovrà stampare a video l’elenco dei numeri inseriti, e la loro media, moda e mediana.

Per l’inserimento dei numeri usare un cicli while, per l loro visualizzazione un ciclo for.

Verificare che i numeri immessi siano sempre positivi, in caso contrario, richiedere all’utente il numero immesso.

L’immissione dei numeri proseguirà finché l’utente non inserirà la cifra zero.

Esercizio per 6/7

Scrivere un programma che chiederà in input prima dieci numeri usando un ciclo while e li stampi con un ciclo for.

Calcolare la somma dei numeri immessi ed il loro prodotto con una funzione.

Verificare che siano stati immessi numeri e non lettere.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Windows: server per le reti e per il Web – Il server HTTPS [:]

[:it]

kandiskij

Uno strumento molto importante dal punto di vista della sicurezza delle trasmissioni è rappresentata dal protocollo SSL (Secure Socket Layer), che permette l’invio di pacchetti criptati per effettuare transazioni sicure in rete.

Il server Web supportato da un protocollo di crittografia si chiama HTTPS (HTTP over SSL, o HTTP Secure). In sostanza, l’uso del protocollo HTTPS permette, attraverso lo scambio di certificati, di creare un canale di comunicazione sicuro tra client e server.

Il protocollo HTTP utilizza normalmente la porta 80 (oppure la 8080), mentre per le trasmissioni criptate si utilizza la porta 443.

Abilitare il server Web HTTPS per mettere a disposizione un sito Web certificato.
Da Server Manager si apre la finestra di Gestione IIS (menu Strumenti in alto a destra) e si seleziona il nome del server nel riquadro Connessioni a sinistra.

Per abilitare il servizio HTTPS occorre avere a disposizione un certificato digitale: per scopi di test useremo un certificato auto-autenticato o auto-firmato (self-signed).

Nella sezione IIS del riquadro centrale si deve fare doppio clic su Certificati del server: nel riquadro Azioni, a destra, scegliere Crea certificato autofirmato.

Nella finestra di dialogo si può assegnare un nome descrittivo per il certificato, scegliendo poi l’archivio Personale nella casella combinata in basso. La creazione viene confermata con un clic sul pulsante OK e il certificato viene inserito nell’elenco dei Certificati del server.

Predisponiamo ora il sito Web per il quale si vuole impostare un accesso protetto e certificato: si può creare sul disco del server una cartella per contenere i file del sito Web. Per poter verificare che la connessione viene fatta in modo corretto, è opportuno che questa cartella contenga almeno una pagina iniziale in HTML da visualizzare all’apertura del sito.

Nel riquadro Connessioni, a sinistra, si deve fare ora clic con il tasto destro su Siti e scegliere Aggiungi sito Web dal menu di scelta rapida.

La finestra di dialogo per il nuovo sito richiede:

• il nome del sito;

• il percorso fisico della cartella (si può sfogliare il disco del server facendo clic sul pulsante con i tre puntini);

• il tipo di binding HTTPS sulla porta 443;

• il nome che identifica l’host;

• il certificato SSL creato in precedenza da scegliere nell’elenco dei certificati disponibili

Si osservi che dopo queste operazioni, selezionando il nuovo sito, nel riquadro Azioni, a destra, compare la scelta Esplora sito on *.443 (https). Facendo clic su di essa, si apre il browser che segnala un problema sul certificato di sicurezza, perché è stato usato un certificato autofirmato e quindi non affidabile. Si può comunque avviare la navigazione con la scelta Continuare con il sito Web. Nella casella dell’indirizzo con https:// è presente il pulsante Errore certificato: facendo clic su di esso e poi su Visualizza certificati si ottengono le informazioni sul certificato generato in precedenza con la modalità di autofirma.

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Windows: server per le reti e per il Web – Il server Web[:]

[:it]

Kandiskij

Il protocollo più utilizzato nella rete Internet è HTTP (HyperText Transfer Protocol) che permette la navigazione tra le pagine dei siti Web.

Si osservi che questo tipo di server riguarda non solo la rete Internet, ma una qualsiasi rete a cui appartiene un server Web, cioè il server che organizza e conserva i contenuti Web (abbreviazione di World Wide Web), per gli utenti della rete, che accedono ad essi tramite il browser.

Il browser può essere anche definito come il programma client per il Web. Il server Web standard per l’ambiente Windows è IIS (Internet Information Service).

Consente inoltre di eseguire applicazioni scritte con i linguaggi di scripting: normalmente per Windows si usa il linguaggio ASP (Active Server Pages) e la sua evoluzione ASP.NET. ASP.NET è un ambiente di programmazione orientata agli oggetti per realizzare applicazioni Web lato server che utilizzano codice compilato.

Per installare il server Web in Windows Server, occorre scegliere l’opzione Aggiungi ruoli e funzionalità (nella finestra Dashboard di Server Manager, oppure dal menu Gestione in alto a destra) che attiva la procedura guidata per l’installazione, in modo del tutto analogo a quanto visto in precedenza per i server DNS e DHCP. Il ruolo da installare è indicato come Server Web (IIS). Nelle Funzionalità aggiuntive è suggerita l’installazione dello strumento Console di gestione IIS per facilitare l’amministrazione del server attraverso un’interfaccia grafica.

Si può verificare l’avvenuta installazione del server Web aprendo un browser (per esempio, Internet Explorer) e digitando nella barra dell’indirizzo: http://127.0.0.1 oppure http://localhost
Entrambi gli indirizzi indicano l’interfaccia di loopback della quale si è già parlato in precedenza. Se il server Web è attivo ed è stato correttamente configurato, si ottiene la visualizzazione di una pagina di benvenuto.

La stessa videata si ottiene dal browser di un computer client, collegato alla stessa rete del server, scrivendo nella casella del browser l’indirizzo IP del server, per esempio: http://192.168.56.1/
La pagina visualizzata contiene anche un collegamento (link) che rimanda al sito Internet del server IIS: http://www.microsoft.com/web/.
Per configurare e gestire IIS, dal menu Strumenti in alto a destra, si seleziona Gestione Internet Information Services (IIS).

Il riquadro di spostamento, a sinistra, si chiama Connessioni e consente di selezionare il proprio server. Il riquadro a destra Azioni presenta le opzioni per gestire il server, in particolare: Riavvia, Avvio e Arresto del server Web.

Nella zona centrale si trova il pannello di controllo che permette di eseguire le operazioni di configurazione e manutenzione avanzate: ASP.NET, gestione degli utenti, delle autorizzazioni e dei file di log.

È importante impostare il nome della pagina principale del sito Web, perché è la pagina che viene visualizzata quando l’utente digita nel browser solamente l’indirizzo del sito, senza indicare una pagina specifica.

Nella sezione IIS, la scelta Documento predefinito consente di inserire i nomi delle pagine principali: di solito i nomi della pagina principale sono index.html oppure default.htm, ma anche default.aspx per indicare una pagina ASP.NET.

I nomi sono elencati in ordine di priorità nella ricerca, cioè se il primo nome non viene trovato, si passa al successivo.

Per esempio, per il server Web locale (localhost), se l’utente digita nella casella Indirizzo del browser: http://127.0.0.1
il server carica la pagina index.html impostata come pagina di partenza del sito Web.
Il sito Web può essere testato anche selezionando il sito nel riquadro Connessioni a sinistra e scegliendo Esplora *:80(http) nel riquadro Azioni a destra, nella sezione Esplora sito Web.
Nel riquadro a sinistra Connessioni, è presente anche l’elenco dei siti gestiti dal server. Se non è stato creato alcun sito personale, viene visualizzato solamente Default Web Site (Sito Web predefinito), cioè il sito corrispondente all’installazione iniziale del server Web. Dopo aver selezionato il sito, facendo clic su Esplora, nel menu del tasto destro del mouse oppure nel riquadro a destra Azioni, viene visualizzato l’elenco dei file e delle sottodirectory che compongono il sito Web. Questi file si trovano fisicamente nella directory C:\inetpub\wwwroot del server, che viene creata automaticamente al momento dell’installazione del server IIS. Questa è la directory dove occorre memorizzare i file (pagine Web, immagini, video, ecc.) che rappresentano le risorse del sito Web, solitamente organizzate in sottodirectory.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Windows: server per le reti e per il Web – Assegnazione dinamica degli indirizzi IP [:]

[:it]

kandiskij

Kandiskij

Quando un computer si connette alla rete deve possedere un indirizzo IP univoco nella rete stessa. Come abbiamo visto nei capitoli precedenti. l’assegnazione dell’indirizzo IP può avvenire in due modi differenti:

• in modo statico, quando il computer mantiene sempre lo stesso indirizzo;

• in modo dinamico, quando l’indirizzo viene assegnato al momento della connessione. Il protocollo utilizzato per assegnare indirizzi IP in modo dinamico alle interfacce di rete che ne fanno richiesta si chiama DHCP (Dynamic Host Configuration Protocol).

Si osservi che, per installare il server DHCP, occorre che il server abbia già assegnato un indirizzo IP statico.

Per l’assegnazione di un indirizzo IP statico si deve aprire il Pannello di controllo (dalla schermata Start) e scegliere Reti e Internet, Centro connessioni di rete e condivisione: effettuare le impostazioni della scheda di rete, modificando le proprietà di IPv4.

Per installare il server DHCP in Windows Server, occorre scegliere l’opzione Aggiungi ruoli e funzionalità (nella finestra Dashboard di Server Manager, oppure dal menu Gestione in alto a destra) che attiva la procedura guidata per l’installazione.

Come per l’installazione del server DNS, vista in precedenza, le finestre di dialogo richiedono in successione: il tipo di installazione, il server in cui installare il ruolo, la selezione del ruolo all’interno dell’elenco dei ruoli, l’aggiunta delle funzionalità necessarie per il server.

Alla fine occorre confermare con un clic sul pulsante Installa.

Al termine dell’installazione il sistema richiede la configurazione del server, che può essere fatta con la scelta Completa configurazione DHCP.

La configurazione guidata post-installazione DHCP richiede la creazione dei gruppi di sicurezza (DHCP Administrators e DHCP Users).

Se l’installazione termina correttamente, nel Dashboard di Server Manager, viene aggiunto un nuovo riquadro di anteprima per il ruolo DHCP. Facendo clic sul nome del server, si ottengono le informazioni di dettaglio.

Il gestore del server DHCP viene aperto facendo clic su DHCP nel menu Strumenti in alto a destra. Le scelte per la gestione del server sono contenute nel menu Azione della finestra DHCP.

Nello stesso menu Azione, dopo aver selezionato il nome del server nel riquadro di spostamento a sinistra, è presente la scelta Tutte le attività che comprende anche le opzioni per avviare, fermare o riavviare il server. Facendo clic su IPv4, viene richiesta la creazione di un nuovo ambito, con la scelta Nuovo Ambito dal menu che si apre facendo clic con il tasto destro su IPv4 oppure dal menu Azione. L’ambito, indicato in inglese con il termine scope (visibilità), consente di distribuire indirizzi IP ai computer della rete.

La creazione guidata dell’ambito richiede i seguenti dati: • Nome e Descrizione, il nome e la descrizione del gruppo di indirizzi.

• Indirizzo IP iniziale, l’indirizzo minore, per esempio 192.168.1.100 • Indirizzo IP finale, l’indirizzo maggiore, per esempio 192.168.1.199.

• Subnet Mask, la maschera di rete.

• Esclusioni e ritardo, gli indirizzi IP che devono essere esclusi e il ritardo prima che il server offra un indirizzo IP (DHCPOFFER).

• Durata del lease, cioè dell’assegnazione di un indirizzo IP a uno specifico client.

• Router (gateway predefinito), l’indirizzo del gateway della rete, cioè l’indirizzo IP a cui rivolgersi per effettuare una connessione all’esterno della rete, tipicamente ad Internet.

• Server DNS, server utilizzato dai client per la risoluzione dei nomi a dominio.

• Server WINS, server aggiuntivo, se necessario, per i computer che utilizzano Windows. Alla fine delle impostazioni, viene richiesta conferma per l’attivazione dell’ambito.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]HTML – carattere[:]

[:it]Questo tag si definiscono fisici

il tag <b> attiva il grassetto (Bold)

il tag <u> sottolineato (U per underscore)

il tag <i> corsivo o italico

il tag <s> la cancellatura visibile (S strike out)

il tag <tt> attiva la mospaziatura  (TT sarebbe per TeleType)

il tag <sup> attiva il carattere apice (SUp Superscript)

il tag <sub> attiva il carattere pedice (Sub sta per Subscript)

 

 

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]C++: esercizi sulle matrici[:]

[:it]

Kandiskij

1- L’utente inserisce una matrice MxN composta da numeri interi. Il programma scambia le righe pari con quelle dispari. Le dimensioni della matrice vengono scelte dall’utente tra i valori massimi fissati all’interno del programma (10×20).

2- Scrivi un programma che legga da tastiera due matrici A e B di NxN e calcoli la somma C = A+B, visualizzando le matrici ottenute.

3- Scrivi un programma che legga da tastiera due matrici A e B di NxN e calcoli il prodotto C = A* B, visualizzando le matrici ottenute.

4- Data una matrice con N coppie di numeri interi, individua se sono punti di una funzione che rappresenta una retta, una parabola, un’ellisse o un’iperbole data dall’utente.[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]C++: array bidimensionali: le matrici[:]

[:it]

Kandiskij

Si è definito con il termine array un particolare tipo di dato che permette di aggregare dati omogenei; interi, reali o stringhe di caratteri.

Gli array monodimensionali, composti da elementi omogenei (tutti dello stesso tipo) ognuno dei quali è identificato all’interno dell’array da un numero d’ordine detto indice dell’elemento.

Gli array, in realtà possono avere più di una dimensione: è possibile definire strutture di dati complesse (gli array multidimensionali) dove ad ogni dimensione viene associato un indice e quindi un elemento viene individuato da un insieme di valori, uno per ogni dimensione.

Tra gli array multidimensionali particolare importanza assumono gli array a due dimensioni, che prendono il nome di matrici (o array bidimensionali).

Ecco un esempio di lettura e stampa a video di un vettore:

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]TPSIT – Linux – Approfondimenti DHCP – IP statico e configurazione[:]

[:it]Per poter far funzionare il server dhcp si può impostare il file di configurazione

/etc/dhcp/dhcpd.conf

Come risultato si ottiene che il server DHCP fornisce a un client un indirizzo IP nell’intervallo 192.168.1.10 ~ 192.168.1.100 .

Se il client non richiede uno specifico intervallo di tempo, la durata di “affitto” di un indirizzo IP è di 600 secondi; in caso contrario il valore massimo (consentito) è di 7200 secondi. Il server inoltre “avvisa” il client di utilizzare 255.255.255.0 come maschera di sottorete,

192.168.1.255 come indirizzo di broadcast,

192.168.1.254 come gateway –> usare un servizio internet per tutti quelli che devono navigare in internet

e 192.168.1.5 e 192.168.1.6 come server DNS.

quindi dando il comando

sudo /etc/init.d/isc-dhcp-server restart

sudo /etc/inid.d/isc-dhcp-server status si nota che:

Dal lato client ho la seguente situazione:

Fondamentale, per far funzionare il dhcp è necessario impostare un ip statico alla scheda di rete.

Bisogna saper leggere molto bene il file di log con il comando

service isc-dhcp-server status

ad esempio potrebbe comparire il messaggio:

debian isc-dhcp-server[2263]: Launching both IPv4 and IPv6 servers (please configure INTERFACES in /etc/default/isc-dhcp-server

a questo punto bisogna configurare il file /etc/default/isc-dhcp-server inserendo il nome della scheda di rete

oppure l’errore:

debian isc-dhcp-server[2263]: Starting ISC DHCPv4 server: dhcpddhcpd service already running (pid file /var/run/dhcpd.pid

significa che il sistema ha già impostato un pid per quel servizio e quindi non parte, bisogna cancellarlo e si vedrà partire il sistema.

 

Per far questo accedere al file

nano /etc/network/interfaces

quindi riattivare il servizio:

/etc/init.d/networking restart

Se si avesse la necessità di accedere al dns del provider è necessario impostare

nano /etc/resolv.conf

ed inserire le righe:

nameserver X.X.X.X

Al posto di X.X.X.X inseriremo i DNS del nostro provider.

Attenzione che il file resolv.conf nella fase di reboot si svuota per cui per far funzionare contemporaneamente il mio server con un provider che fornisce il servizio bisogna reimpostarlo.

Ad esempio un provider vodafone è 109.115.64.1

una volta modificato bisogna fare il reboot del servizio network[:]

Pubblicato in Senza categoria | Lascia un commento