Convertitore decimale binario

Convertitore decimale binario

In questa lezione impareremo a realizzare un convertitore decimale binario online in JavaScript. Anzi faremo in modo di convertire il numero decimale in binario, in ottale ed esadecimale.

Fate la prova ad inserire un numero decimale nella casella di input. Nelle altre caselle comparirà, in automatico, il numero corrispondente negli altri sistemi di numerazione.

Binario:

Ottale:

Esadecimale:


Convertitore decimale binario online in JavaScript

Procediamo con l’implementazione delle varie funzioni necessarie ad effettuare la conversione.

Innanzitutto sviluppiamo la funzione dec_bin che si occupa di convertire da decimale a binario, considerando i resti della divisione per 2. La funzione ritorna il numero binario così convertito.

Dopo sviluppiamo la funzione dec_ott che si occupa di convertire da decimale a ottale, considerando i resti della divisione per 8. La funzione ritorna il numero ottale così convertito.

Poi implementiamo la funzione dec_esa che si occupa di convertire da decimale a esadecimale, considerando i resti della divisione per 16. Se il resto è maggiore di 9 si prende la lettera corrispondente dall’array. La funzione ritorna quindi il numero esadecimale così convertito. 

Infine inseriamo la funzione change che fa attivare il cambiamento automatico quando inseriamo il valore nel campo decimale.

Ecco dunque il codice JavaScript completo per il convertitore decimale binario:



function dec_bin(num){
	binary = "";

	while(num!=0) {
		r = num % 2; 
		num = (num-r)/2; 
		binary = r + binary;
	}
	
	return binary;
}


function dec_ott(num){ 
	octal = "";

	while(num!=0) {
		r = num % 8; 
		num = (num - r)/8;
		octal = r + octal;
	}
	
	return octal;
}

function dec_esa(num){
	exa = ""; 
	while(num != 0) { 
		r = num % 16; 
		num = (num - r)/16; 
		ar = new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
		if (r > 9) 
			r = ar[r]; 
		exa = r + exa ;
	}
	
	return exa ;
}


function change(name) {
		n = document.getElementById("decimale").value;
                result = dec_bin(n);
		result2 = dec_ott(n);
		result3 = dec_esa(n);
		risultato.value=result;
		risultato2.value=result2;
		risultato3.value=result3;
}

Nel campo, dove inserisco in input il numero decimale, aggiungo l’evento onkeyup. Questo fa sì che gli altri campi si aggiornino in automatico richiamando la funzione change sviluppata in JavaScript.


 

Chiaramente questo è solo un semplice modo per implementare un convertitore decimale binario, che consente anche di convertire in ottale ed esadecimale. Proponete pure la vostra soluzione nei commenti sotto.

Alcuni link utili

Indice argomenti tutorial JavaScript

Template responsive con html

Come creare un css responsive

Come trovare immagini per il sito web

Quali colori scegliere per un sito web

Quali font scegliere per un sito web

PDF da un form con JavaScript

Reset CSS

Reset CSS

Reset CSS – In quest’articolo parleremo dei CSS e dei valori di default dei vari browser e come resettarli.
Nella programmazione dei CSS si rende necessario infatti azzerare questi valori di default, in quanto altrimenti si avranno layout differenti per ogni diverso browser.

Uno dei metodi più utilizzati per fare il reset css è quello di Eric Meyer.

Reset CSS dei valori di default dei browser con il metodo di Eric Meyer

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

Questo codice si occupa di azzerare i margini, i padding e i bordi di tutti i tag elencati prima dell’apertura della prima parentesi graffa. Inoltre in questo modo ad esempio gli elementi ul, ol, non avranno più le tipiche indentazioni; le tabelle e i paragrafi non avranno più bordi o margini predefiniti; la grandezza dei font è uniformata per tutti gli elementi; tutti gli elementi hanno un font-style, un font-family e un font-weight inherit cioè ereditano il medesimo valore dall’elemento padre; la proprietà vertical-align con l’attributo baseline consente di uniformare anche i tag sup e sub.

Eliminiamo qualsiasi stile di elenco puntato e numerato con questo codice:

ol, ul {
	list-style: none;
}

Sarà poi cura del web master impostare uno stile a piacere.

Nel reset css ccorre anche eliminare le virgolette ai tag blockquote e q, perché alcuni browser potrebbero aggiungerle, ecco perché si aggiunge questo codice:

blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}

Infine pensiamo anche alle tabelle:

table {
	border-collapse: collapse;
	border-spacing: 0;
}

In questo modo il bordo delle tabelle viene mostrato come linea singola e lo spazio tra le celle e i bordi è azzerato.

Un’altra soluzione per il reset CSS, più precisa, è quella di utilizzare come metodo il reset Normalize. Questo metodo è stato scelto per framework come Bootstrap, HTML5Boilerpalte che più avanti vi dirò cosa sono e da piattaforme come Github e da molti template di WordPress. Questo perché consente una facile personalizzazione delle varie parti.

La scelta del metodo per il reset css è da effettuare in base alle caratteristiche del sito web.

Per creare un sito a scopo didattico e anche non molto complesso userei il primo metodo che ad oggi è ancora il più diffuso.

Altrimenti se avete delle esigenze particolari potete utilizzare, quello che vi allego che è quello che ho utilizzato per lo sviluppo del mio blog www.codingcreativo.it.

Reset CSS dei valori di default dei browser con normalize

html {
	font-family: sans-serif;

	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

body {
	margin: 0;
}

body.custom-background {
	background-size: cover;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
	display: block;
}

audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline;
}

audio:not([controls]) {
	display: none;
	height: 0;
}

[hidden],
template {
	display: none;
}

a {
	background-color: transparent;
}

a:active,
a:hover {
	outline: 0;
}

abbr[title] {
	border-bottom: 1px dotted;
}

b,
strong {
	font-weight: bold;
}

dfn {
	font-style: italic;
}

h1 {
	margin: 0.67em 0;
	font-size: 2em;
}

mark {
	color: #000;
	background: #ff0;
}

small {
	font-size: 80%;
}

sub,
sup {
	position: relative;
	font-size: 75%;
	line-height: 0;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

img {
	border: 0;
}

.entry-content p{
	word-break: break-word;
}

svg:not(:root) {
	overflow: hidden;
}

hr {
	box-sizing: content-box;
	height: 0;
}

pre {
	overflow: auto;
}

code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

button,
input,
optgroup,
select,
textarea {
	margin: 0;
	color: inherit;
	font: inherit;
}

button {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
	cursor: pointer;

	-webkit-appearance: button;
}

button[disabled],
html input[disabled] {
	cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	padding: 0;
	border: 0;
}

input {
	line-height: normal;
}

input[type="checkbox"],
input[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

input[type="search"] {
	box-sizing: content-box;

	-webkit-appearance: textfield;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

fieldset {
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
	border: 1px solid #c0c0c0;
}

legend {
	padding: 0;
	border: 0;
}

textarea {
	overflow: auto;
}

optgroup {
	font-weight: bold;
}

table {
	border-spacing: 0;
	border-collapse: collapse;
}

td,
th {
	padding: 0;
}

Potete anche scaricarlo al seguente link: http://necolas.github.io/normalize.css/

Questi che vi ho elencato non sono solo gli unici metodi per fare il reset css, vi elenco i collegamenti agli altri metodi:

http://html5reset.org/

http://html5doctor.com/html-5-reset-stylesheet/

Ovviamente ognuno di questi metodi per il reset css può essere cambiato in base alle vostre esigenze.


Alcuni link utili

Indice tutorial CSS3

Indice tutorial HTML

Fogli di stile interni, esterni ed in linea

Fogli di stile esterni

Selettori

Come impostare le pseudo-classi

Reset CSS

CSS responsive

Font nei CSS

CSS border – border width

Border style CSS

Border color CSS

Somma dei pari e dei dispari

Somma dei pari e dei dispari

In questa lezione implementeremo un algoritmo per la somma dei pari e dei dispari in Scratch 3.

Dati N numeri stampare la somma di quelli pari e di quelli dispari.

Algoritmo per la somma dei pari e dei dispari

Come sempre, innanzitutto scegliamo uno sfondo ed uno sprite qualsiasi.

Dopo creiamo le variabili necessarie:

N indica i numeri da inserire;

numero rappresenta il numero da inserire di volta in volta;

somma_p per la somma dei numeri pari;

somma_d per la somma dei numeri dispari.

1. Inizializziamo a zero le variabili che servono a sommare i pari e i dispari, che chiamiamo somma_p e somma_d.

2. Chiediamo quanti numeri inserire.

3. Portiamo la variabile N a risposta.

4. Realizziamo un ciclo che ripeteremo finché la condizione N maggiore di 0 è falsa e inseriamo queste istruzioni:

a. Chiediamo quanti numeri inserire.

b. Portiamo la variabile N a risposta.

Il ciclo serve ad inserire nuovamente N, qualora l’utente dovesse inserire un numero uguale a zero o negativo.

5. Realizziamo un altro ciclo che ripeteremo N volte e inseriamo queste istruzioni:

a. Chiediamo quindi di inserire il numero.

b. Portiamo la variabile numero a risposta.

c. Con l’istruzione se controlliamo se il numero è pari, cioè se il resto della divisione di numero diviso 2 è uguale a zero e se vero:

d. Sommiamo il numero alla variabile somma_p.

e. Altrimenti sommiamo il numero alla variabile somma_d.

6. Infine visualizziamo le due somme utilizzando l’istruzione dire.

Ecco dunque il codice a blocchi completo dell’algoritmo per la somma dei pari e dei dispari:

somma pari e dispari

Chiaramente si poteva utilizzare anche un’istruzione ripeti fino a quando ed utilizzare così una variabile contatore.

Allego anche il codice in C++ dell’algoritmo per la somma dei pari e dei dispari, per chi volesse consultarlo:

#include <iostream>
using namespace std;

int main() {
	int i, N, numero, somma_p=0,somma_d=0;
    
        do{
    	        cout<<"Quanti numeri vuoi inserire?: \t";
		cin>>N;
	}while (N<=0);

	i=0;
	while(i<N) {
		cout<<"Inserisci il numero: \t";
		cin>>numero;
		if(numero%2==0)
			somma_p+=numero;
		else 
			somma_d+=numero;
		i++;
	}

	cout<<"La somma dei pari e':  "<<somma_p<<endl;
	cout<<"La somma dei dispari e':  "<<somma_d<<endl;
return 0;
}

Nelle prossime lezioni faremo ancora degli esempi di algoritmi sulle strutture iterative in Scratch 3.

Trovare quante volte ricorre il maggiore

Trovare quante volte ricorre il maggiore

Risolviamo questo nuovo problema che consiste nel trovare quante volte ricorre il maggiore in una serie di numeri immessa in input.

Dati N numeri determinare il valore maggiore e quante volte esso ricorre.


Algoritmo per trovare quante volte ricorre il maggiore in scratch 3

Al solito, innanzitutto scegliamo uno sfondo ed uno sprite qualsiasi.

Dopo creiamo le variabili necessarie:

N indica i numeri da inserire;

numero rappresenta il numero da inserire di volta in volta;

max rappresenta la variabile che contiene il numero massimo;

conta_max rappresenta la variabile che conta quante volte ricorre il valore massimo;

1. Inizializziamo la variabile conta_max a 1

2. Chiediamo quanti numeri inserire.

3. Portiamo la variabile N a risposta.

4. Realizziamo un ciclo che ripeteremo finchè la condizione N maggiore di 0 è falsa e inseriamo queste istruzioni:

a. Chiediamo quanti numeri inserire.

b. Portiamo la variabile N a risposta.

Il ciclo serve a inserire nuovamente N qualora l’utente dovesse inserire un numero uguale a zero o negativo.

6. Chiediamo quindi di inserire il primo numero.

7. Portiamo la variabile max a risposta.

Facendo in questo modo stiamo inizializzando il valore massimo al primo numero inserito. Non è infatti possibile inizializzare il valore massimo a zero, in quanto, se ad esempio inserissi questi numeri: -5, -4, -11, il valore massimo inserito risulterebbe zero anzichè -4.

8. Realizziamo un ciclo che ripeteremo N-1 (perchè un numero è già stato inserito) volte e ripetiamo queste istruzioni:

a. Chiediamo un numero

b. Memorizziamo in numero la risposta

c. Utilizziamo l’istruzione se per controllare che il numero appena inserito sia maggiore del valore massimo.

d. se vero allora aggiorniamo la variabile max con il nuovo valore e riportiamo conta_max a 1.

e. altrimenti utilizziamo nuovamente l’istruzione se per controllare che il numero appena inserito sia uguale al valore massimo. Dunque se vero incrementiamo la variabile conta_max.

9. Infine visualizziamo il valore massimo e quante volte occorre con l’istruzione dire.

ricorre il massimo
conta massimo

Ecco dunque una possibile soluzione per trovare quante volte ricorre il maggiore in Scratch 3.

Alcuni link utili

Indice tutorial scratch 3.0

Indice argomenti scratch 2.0

Numeri primi in Scratch

Massimo fra tre numeri in Scratch

Minimo tra 3 numeri in Scratch

Numeri perfetti con algobuild

Numeri amicabili

Selecion sort in Scratch

Esempio di successione di Fibonacci con Algobuild

La successione di Fibonacci in C++

Massimo di N numeri

Massimo di N numeri

In questo esercizio implementeremo un algoritmo per trovare il massimo di N numeri in Scratch.


Procedimento: calcolo del massimo di N numeri in Scratch 3

Scegliamo dapprima uno sfondo ed uno sprite qualsiasi. Dopo, nello sprite scelto, aggiungiamo i seguenti passi:

1. Chiediamo quanti numeri inserire.

2. Portiamo la variabile N a risposta.

3. Realizziamo un ciclo che ripeteremo finché la condizione N maggiore di 0 è falsa e inseriamo queste istruzioni:

a. Chiediamo quanti numeri inserire.

b. Portiamo la variabile N a risposta.

Il ciclo serve a inserire nuovamente N qualora l’utente dovesse inserire un numero uguale a zero o negativo.

5. Chiediamo quindi di inserire il primo numero.

6. Portiamo la variabile max a risposta.

Facendo in questo modo stiamo inizializzando il valore massimo al primo numero inserito. Non è infatti possibile inizializzare il valore massimo a zero, in quanto, se ad esempio inseriamo questi numeri: -5, -4, -11, il valore massimo inserito risulterebbe zero anziché -4.

7. Realizziamo un ciclo che ripeteremo N-1 (perché un numero è già stato inserito) volte e ripetiamo queste istruzioni:

a. Chiediamo un numero

b. Memorizziamo in numero la risposta

c. Utilizziamo l’istruzione se per controllare che il numero appena inserito sia maggiore del valore massimo.

8. Infine visualizziamo il valore massimo di N numeri così ottenuto, utilizzando l’istruzione dire.

massimo n numeri scratch

Al posto di ripeti N-1 volte si poteva utilizzare una variabile contatore ed il ciclo ripeti fino a quando la variabile contatore è uguale ad N-1.

Ricordiamo che in Scratch si entra nel ciclo se la condizione è falsa e si esce quando è vera.

Ecco quindi la seconda soluzione del massimo di N numeri in Scratch 3:

maggiore

Per chi volesse consultare l’algoritmo in C++ per il calcolo del massimo di N numeri, ecco un esempio di possibile sviluppo:

#include <iostream>
using namespace std;

int main() {
	int i, N, max, numero;
    
        do{
    	        cout<<"Quanti numeri vuoi inserire? : \t";
		cin>>N;
	}while (N<=0);

	i=0;
	cout<<"Inserisci il primo numero: \t";
	cin>>max;
	
	while(i<N-1) {
		cout<<"Inserisci il numero: \t";
		cin>>numero;
		if(numero>max)
			max=numero;
		i++;
	}

	cout<<"Il massimo e': \t"<<max<<endl;
return 0;
}

Alcuni link utili

Indice tutorial scratch 3.0

Indice argomenti scratch 2.0

Numeri primi in Scratch

Massimo fra tre numeri in Scratch

Minimo tra 3 numeri in Scratch

Numeri perfetti con algobuild

Numeri amicabili

Selecion sort in Scratch

Esempio di successione di Fibonacci con Algobuild

La successione di Fibonacci in C++