[:it]

hermin abramovitch
[WpProQuiz 51][:]
[:it]
hermin abramovitch
[WpProQuiz 51][:]
[:it]
jacek yerka
La telematica è la fusione di TELEcomunicazione e inforMATICA; essa, per poter funzionare ha la necessità che esista una rete, cioè un insieme di sistemi per l’elaborazione messi in comunicazione fra loro.
STORIA
Inizialmente esisteva il mainframe e dei semplici terminali che si connettevano con il mainframe con dei semplici cavi coassiali, nel momento in cui uno di essi veniva staccato dalla rete, solo il terminale in questione non poteva più comunicare senza inficiare il funzionamento del resto della rete.
Il disco fisso era presente solo sul calcolatore centrale.
Con l’abbassamento del costo dell’hardware si è passati al concetto moderno di rete in cui ogni PC è:
Una rete è un insieme di sistemi per l’elaborazione messi in comunicazione tra loro.
Si è passati quindi da sistemi di elaborazione delle informazioni aventi la caratteristica di essere concentrati, cioè strutture hardware composte da una singola CPU alla quale venivano connessi più terminali, alle stazioni di lavoro connesse tra loro e dotate di capacità elaborativa propria, cioè a sistemi distribuiti.
Nello stesso periodo la rete telefonica, in continuo sviluppo da quasi un secolo, ha subito una drastica ristrutturazione, concretizzandosi nella conversione delle centrali di commutazione da elettromeccaniche ad elettroniche e soprattutto nel passaggio, nei collegamenti fra le centrali di commutazione, da metodi di trasmissione analogica a metodi di trasmissione numerica.
Quindi si è passati dal MODEM all’ADSL di casa.
I MODEM modulano e demodulano il segnale ossia convertono il flusso di dati in un segnale analogico, con al conversione inversa in ricezione.
ADSL è acronimo di Asymmetric Digital Subscriber Line che consente la trasmissione, sempre su doppino telefonico di segnali solo digitali.
Il doppino telefonico in rame era stato progettato, e viene tuttora usato, per la comunicazione in voce, che utilizza frequenze tra 300 e 3.400 hertz.
Nel 1960 comincia a diffondersi la tecnica di trasmissione numerica, nota come PCM (Pulse Code Modulation), in cui la trasmissione di un segnale vocale è affidata ad un flusso di informazione di 64kbit/s. Più conversioni telefoniche sono poi affasciate mediante multiplazione a divisione di tempo (TDM Time Division Multiplexing) e trasmette su canali numerici con capacità dell’ordine dei Mbit/s.
Il grande boom delle reti è avvenuto grazie al Dipartimento della Difesa degli Stati Uniti, che ha svilupato ARPANET (Advanced Resercg Project Agency Net-work) che è riuscito a collegare macchine diverse con i più diversi sistemi operativi e potenze di calcolo diverse.
Per quest’ultimo problema è stata fondamentale l’attività degli organismi di standardizzazione che ha permesso di creare regole di comunicazione.[:]
[:it]
Roger de la Fresnaye
Dati in input 7 numeri con due cifre decimale, calcolane la media
[:]
[:it]
David Hettinger
Scrivere un programma che chieda in input due valori interi e che mostri a video la loro divisione:
” Cercare di arrivare ad una laurea senza studiare
è come andare in bicicletta senza le ruote”.
4. Scrivere il programma che, letto un numero intero, calcoli e scriva la sua metà;
5. Dato il raggio del cerchio di base di un cilindro e la sua altezza, calcolare il peso del cilindro sapendo che la sostanza di cui è composto ha peso specifico =3.4 g/cm3
6. Data una parabola, scrivere le sue coordinate del vertice.[:]
[:it]
David Hettinger
La lettura di dati (input) è rappresentata dall’operatore >>.
La scrittura dei dati (output) è rappresentata dall’operatore >>.
La sintassi di un’istruzione di input è:
unità_input>>variabile;
La sintassi di un’istruzione di output è:
unità_putput<<variabile;
L’unità di input standard è la tastiera e si indica con la parola cin (console input):
cin>>raggio;
L’unità di output standard è il video e si indica con la parola cout (console output):
cout<<area;
Le definizioni della tastiera (cin) e del video (cout) sono memorizzate nel file iostream delle librerie di I/O del linguaggio. Questo significa che per poter utilizzare gli operatori di I/O sulle periferiche standard è necessario includere tale file all’inizio del programma:
#include <iostream>
Se si vogliono mostrare a video delle stringhe si usa il comando:
cout<<“Sono una stringa”;
se voglio andare a capo dopo aver mostrato una stringa si possono usare indifferentemente questi due comandi:
cout<<“Vado a capo”<<endl;
oppure
cout<<“Vado a capo \n”;
endl sta per end line
mentre \c viene detta sequenza di escape.[:]
[:it]
David Hettinger
Per casting si intende un’operazione volta a trasformare un valore di un certo tipo in un valore di un altro tipo.
Ad esempio il seguente programma fa sì che una variabile di tipo float venga salvata in una variabile di tipo int.
#include<iostream>
using namespace std;
int main()
{
int a=5;
float b=3.56;
a=b;
cout<<a;
return 0;
}
Il casting è l’azione che consente di trasformare la rappresentazione di un dato dal suo tipo originale a un altro.
La sintassi per il cambio di tipo è la seguente:
(tipo) espressione;
ad esempio
b = (int) a;
oppure in alcune versioni più recenti:
b= static_cast <int> (a);
eccone l’applicazione:
#include<iostream>
using namespace std;
int main()
{
/*****************************************/
/* conversione implicita */
/*****************************************/
int a=5;
int d,e;
float b=3.56;
a=b;
cout<<a<<endl;
/******************************************/
/* primo esempio di conversione esplicita */
/******************************************/
cout<<“Altro esempio”<<endl;
d=(int)b;
cout<<d<<endl;
/*******************************************/
/* secondo esempio di conversione esplicita */
/******************************************/
cout<<“altro esempio con la funzione static_cast”<<endl;
e=static_cast<int>(b);
cout<<e;
return 0;
}
Tale conversione comincia a diventare molto importante quando si eseguono delle divisioni tra interi e bisogna tener conto se la divisione fornisce ancora un intero o un numero decimale di cui poi tenere conto nel proseguo del programma stesso.
Ad esempio in questo programma che differenza intercorre tra la prima parte del programma e la seconda?
#include<iostream>
using namespace std;
int main()
{
int a,b;
float c;
cout<<“Inserisci il primo numero intero\n”;
cin>>a;
cout<<“Inserisci il secondo numero intero\n”;
cin>>b;
cout<<“Nessun casting: “<<a/b<<endl;
c=(float)a/b;
cout<<“Casting: “<<c;
return 0;
}[:]
[:it]
David Hettinger
Il codice di Hamming permette di correggere gli errori nella trasmissione inserendo della ridondanza nel codice trasmesso.
Nel caso specifico il codice di Hamming(7,4) inserisce in un codice di 4 bit, 3 bit in più appunto di ridondanza necessari per verificare e correggere il codice trasmesso.
In questo codice l’errore che si corregge è 1 di un bit e si parla quindi di distanza di Hamming di valore 1.
Al codice trasmesso si aggiungono dei bit di parità alla posizione 1, 2, 4, ricapitolando alla posizione:
Il bit 1 controlla la parità dei bit 1, 3, 5, 7
Il bit 2 controlla la parità dei bit 2, 3, 6, 7
Il bit 4 controlla la parità dei bit 4, 5,6, 7
Schematicamente ho quindi:
Si nota che:
Per leggere la tabella si deve andare a vedere la riga del Bit#
Il Bit 1 è controllato da p1
Il Bit 2 è controllato da p2
Il Bit 3 è controllato da p1 e p2
Il Bit 4 è controllato da p3
Il Bit 5 è controllato da p1 e p3
Il Bit 6 da p2 e p3
il Bit 7 da p1, p2 e p3.
In termini operativi si controllano p1, p2 e p3
p1 | p2 | p3 |
ok | ok | ok |
messaggio corretto
p1 | p2 | p3 |
no | ok | ok |
vedo che solo p1 è errato allora correggo il bit1
p1 | p2 | p3 |
no | ok | no |
p1 e p3 sono sbagliati.
ALGORITMO
Cerco la colonna con il segno di spunta verde su p1 e p3–> colonna 5 ossia relativa al Bit 4
Ossia partendo dalla riga con la spunta in verde si vede il relativo bit errato
Esempio:
Devo trasmetter 0101
il messaggio trasmesso sarà:
P1 | P2 | M1 | P3 | M2 | M3 | M4 |
0 | 1 | 0 | 0 | 1 | 0 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
in quanto il P1 controlla la posizione 1357
P2 controlla la posizione 2367
P3controlla la posizione 4567
Mi arriva il seguente messaggio
P1 | P2 | M1 | P3 | M2 | M3 | M4 |
0 | 1 | 1 | 0 | 1 | 0 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
P1 è errato!
P1 | P2 | M1 | P3 | M2 | M3 | M4 |
0 | 1 | 1 | 0 | 1 | 0 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
P2 è errato!
P1 | P2 | M1 | P3 | M2 | M3 | M4 |
0 | 1 | 1 | 0 | 1 | 0 | 1 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
P3 è corretto.
Siccome P1 e P2 sono errati dalla tabella vedo che è errato il bit 3 e lo correggo da 1 a 0! Ed ho il messaggio di partenza corretto senza richiedere la ritrasmissione.
Il codice di Hamming(7,4) corregge solo 1 bit e si chiama appunto distanza 1. Non corregge gli errori doppi.[:]
[:it]
Lars Meyer
[WpProQuiz 50][:]
[:it]
Claude Monet
Per compilare un programma non è obbligatorio avere un IDE particolare come Geany o BlueFish o chi più ne ha ne metta ma è sufficiente avere un editor standard come può essere notepad su windows.
Ad esempio su Linux si usa gedit
Esso si può usare o cercando dal Dash o aperto il terminale digitando gedid.
A questo punto si può digitare il programma e salvarlo con un opportuno nome.
Attenzione che il concetto di estensione, tanto caro al mondo windows, non è necessario nel mondo Unix che, purtroppo, alla fine lo sta copiando perdendo in parte la sua grande flessibilità ma forse anche complessità.
L’estensione di un file è quella parte del nome a destra del punto ad esempio:
pippo.cpp è un file con estensione cpp
pippo.phy è un file con estensione phy
Al termine si salva il file.
Per compilarlo si deve aprire un terminale e posizionarsi all’interno della directory in cui ho salvato il file.
Per fare questo si può seguire il post ABC di unix
Adesso per compilare il file si deve usare il seguente comando:
g++ -Wall -o nomeinuscita -g nomecpp
nomeuscita è il nome del file in output
nomecpp è il nome del file che ho salvato con il sorgente
se la compilazione è terminata correttamente lo si deve eseguire con il comando:
./nomeinuscita
FONDAMENTALE
Sotto Unix la lettera maiuscola e minuscola sono differenti per cui bisogna stare attenti a come si scrive.[:]
[:it]
Claude Monet
Tale post non nasce con la presunzione di fornire un manuale completo sul mondo Linux ma solo quello di dare alcuni comandi utili per poter lavorare con quei PC che ne hanno uno installato.
Per operare sul mondo Linux vi sono varie distribuzioni ma tutte hanno i comune alcuni comandi che qui elenco.
Per usare i comandi nativi è necessario aprire una schermata su cui poter cominciare a scrivere i comandi veri e propri del sistema operativo.
CTRL + ALT + T oppure dalla Dash digitare terminale e selezionare la relativa icona.
comparirà una schermata con un led lampeggiante intermittente.
Si pensi alla struttura interna della memoria come ed un albero e si deve cercare di capire dove si è posti all’interno di tale albero.
Per capirlo di digita il comando
ls
a questo punto se voglio entrare in una particolare directory si usa il comando
cd pippo
con pippo il nome della directory su cui voglio operare o entrarci
cd –
torno alla precedente directory[:]