Tag div

Tag div

Il tag div è un importante elemento strutturale di una pagina web. È nato con la versione di HTML 4 ed è un tag che è molto legato ai fogli di stile, in quanto senza una corretta formattazione dice ben poco.

La funzione principale del tag div è quella di dividere una pagina in varie zone, permettendo di personalizzare ciascuna zona come si vuole. È dunque un contenitore generico dove all’interno si inseriscono immagini, testi, tabelle, ecc…

Prima dell’avvento dell’HTML5 veniva utilizzato per strutturare una pagina web senza l’ausilio dei tag semantici che invece hanno permesso la sostituzione di gran parte dei div che venivano utilizzati.

Ad ogni modo è rimasto un tag fondamentale che si può inserire prima o dopo i tag semantici.

Esempi di utilizzo

Innanzitutto lo inseriamo all’interno del tag semantico header, dove lo collochiamo ad esempio dopo il logo.

  <header>   
    <figure><img src="images/logo_coding_creativo.png" alt="coding creativo"></figure>
    <div>Fare coding divertendosi</div>
   </header> 

In questo modo avremo la parte alta del sito strutturata con un logo ed una frase che, con una opportuna formattazione, sistemeremo sotto il logo.

Facciamo un altro esempio, utilizzando div prima e dopo il tag semantico article.

<div>
    <article>            
        <h2>Olimpiadi di matematica con scratch</h2>
        <p><a>Leggi tutti gli articoli di Scratch</a></p>
        <figure><a><img src="images/gara_nazionale.jpg" alt="anno bisestile"></a></figure>
        <div>In questo esempio realizzeremo un algoritmo per la risoluzione di un quesito matematico proposto alle gare nazionali.
        </div>
   </article>
</div>

La differenza con il tag p è che div non presenta la spaziatura con l’elemento che lo precede e quello che lo segue.

Se prendiamo il blocco note e scriviamo questo codice in aggiunta alla nostra pagina già creata noteremo, anche senza l’uso dei CSS, la differenza tra il tag p e il tag div.

<div>In questo esempio realizzeremo un algoritmo per la risoluzione di un quesito matematico proposto alle gare nazionali con l'utilizzo di scratch.
</div>
<div>Algoritmo per cercare il massimo fra tre numeri con algobuild.
</div>
<p>Olimpiadi di matematica con scratch.</p>
<div>Algoritmo per verificare se due figure sono equivalenti con i diagrammi di flusso.</div>

Otterremo questo risultato:

In questo esempio realizzeremo un algoritmo per la risoluzione di un quesito matematico proposto alle gare nazionali con l’utilizzo di scratch.
Algoritmo per cercare il massimo fra tre numeri con algobuild.

Olimpiadi di matematica con scratch.

Algoritmo per verificare se due figure sono equivalenti con i diagrammi di flusso.


Alcuni link utili:

Form in html

Tag strong

Collegamenti interni ad una pagina web

Collegamenti ipertestuali

Tag img e attributo alt per la SEO

Paragrafi in html

Tabelle in html

Elenchi in html

Tag dei titoli

Il linguaggio html

Come trovare immagini per il sito web

Quali colori scegliere per un sito web

Quali font scegliere per un sito web


Sommare un intervallo di numeri con Scratch

Sommare un intervallo di numeri con Scratch

In quest’articolo affronteremo un semplicissimo algoritmo che consente di sommare un intervallo di numeri con Scratch .

Ad esempio se ho un intervallo di numeri che va da 100 a 200 calcoliamo la somma di tutti i numeri dell’intervallo.

Si possono utilizzare vari metodi, noi per la risoluzione dell’algoritmo utilizzeremo questa formula: (primo+ultimo)/2*quantità_numeri.

Quindi se consideriamo i numeri da 100 a 200 avremo:

(100+200)/2*101=15050

Algoritmo per sommare un intervallo di numeri con Scratch

Per la realizzazione di quest’algoritmo con Scratch serviranno poche istruzioni.

Scegliamo innanzitutto uno sfondo e uno sprite qualunque.

Io ad esempio ho scelto questi:

sfondo intervallo di numeri

Poi mi serviranno le variabili:

intervallo – per calcolare quanti sono i numeri da sommare;

primo – indica il primo numero dell’intervallo;

ultimo – indica l’ultimo numero dell’intervallo;

somma – è la variabile che conterrà la somma finale di tutti i numeri dell’intervallo.

intervallo variabili

Quindi chiediamo di inserire il primo numero, dopo chiediamo di inserire l’ultimo numero e poi calcoliamo quanti sono i numeri da sommare con questo semplice calcolo:

intervallo=(ultimo-primo)+1

Dunque ci rimane da calcolare la somma con la formula:

somma: (primo+ultimo)/2*intervallo

Infine facciamo dire al gattino quanto vale la somma dell’intervallo.

somma intervallo di numeri

In questo algoritmo non abbiamo utilizzato né istruzioni condizionali, né cicli. Si potrebbe però fare un controllo sul secondo numero preso in input per verificare che sia maggiore del primo e solo dopo effettuare la somma.

Provate pure a farlo.

Alcuni link utili

Anno bisestile con scratch

Selezione con scratch

Olimpiadi di informatica con scratch

Olimpaidi di matematica con scratch

Figure equivalenti con scratch

Riconoscere gli angoli con scratch

Morra cinese con scratch

Giochi matematici autunno 2018

Esempi di giochi matematici Bocconi

Gioco della tabellina con scratch

Gioco indovina numero con scratch

Frazioni con scratch

Equazioni di primo grado con scratch

Disegnare poligoni regolari con scratch

Numeri primi in Scratch

La successione di Fibonacci in Scratch

Massimo fra tre numeri in Scratch

Minimo tra 3 numeri in Scratch

Numeri perfetti con algobuild

Numeri amicabili con algobuil

Selection sort in Scratch

Merge sort in C

Merge sort in C

Oggi tratteremo il merge sort in C.

Il merge sort è un algoritmo di ordinamento inventato da Von Neumann nel 1945.

È un algoritmo di ordinamento più complesso ma molto più efficiente degli altri visti in precedenza (selection sort e insertion sort), soprattutto con vettori di grandi dimensioni.

Sfrutta la tecnica divide et impera, ovvero la suddivisione del problema in sotto-problemi della stessa natura di dimensione a mano a mano sempre più piccola, li risolve ricorsivamente e infine combina le soluzioni parziali per ottenere la soluzione al problema di partenza.

Quindi si divide ricorsivamente il vettore in due parti da ordinare separatamente. Successivamente si fondono le due parti per ottenere un array ordinato globalmente.

Il merge sort utilizza inoltre un array di appoggio.

Implementazione del merge sort in C

#include <stdlib.h>
#include <stdio.h>

#define max 100

int insert_array(int V[]) {
  int n, i;
  printf("Quanti elementi?: ");
  scanf("%d", &n);

  for (i=0; i<n; i++) {
  	 printf("elemento %d: ", i);
  	    scanf("%d", &V[i]);
  }
  return(n);
}

void stampa_array(int V[], int n) {
  int i;
  for (i=0; i<n; i++) {
    printf("%d ", V[i]);
  }
  printf("\n");
  return;
}

void merge(int a[], int p, int q, int r) {
  int i, j, k=0, b[max];
  i = p;
  j = q+1;

  while (i<=q && j<=r) {
    if (a[i]<a[j]) {
      b[k] = a[i];
      i++;
    } else {
      b[k] = a[j];
      j++;
    }
    k++;
  }
  while (i <= q) {
    b[k] = a[i];
    i++;
    k++;
  }
  while (j <= r) {
    b[k] = a[j];
    j++;
    k++;
  }
  for (k=p; k<=r; k++)
    a[k] = b[k-p];
  return;
}

void mergeSort(int a[], int p, int r) {
  int q;
  if (p < r) {
    q = (p+r)/2;
    mergeSort(a, p, q);
    mergeSort(a, q+1, r);
    merge(a, p, q, r);
  }
  return;
}

int main(void) {
  int n, V[max];
  n = insert_array(V);
  mergeSort(V, 0, n-1);
  stampa_array(V, n);
  return(0);
}

Prestazioni

L’algoritmo sia nel caso medio che in quello pessimo ha una complessità pari  a Θ (n log n). La complessità della funzione merge é lineare Θ(n).

Alcuni link utili:

Array o vettori

Selection sort in linguaggio C

Quick sort in linguaggio C

Insertion Sort in linguaggio C