Libro di approfondimento

Francesco Guardi

Tale dispensa ha lo scopo di riassumere i concetti fondamentali che permettono di muoversi con sicurezza all’interno delle domande che caratterizzano il modulo 1 dell’ECDL.

Ogni suggerimento e commenti sono assolutamente oltre che ben accetti anche auspicati.

Concetti di base dell’informatica

Pubblicato in Senza categoria | Lascia un commento

SELECT: criteri di ricerca

Gino Severini

Utilizzare una select per estrarre solo alcune colonne o righe specifiche è limitante rispetto alle suo enormi possibilità.

In particolare spesso si richiede ad esempio il nome delle persone nate in un certo anno, solo le persone con un il nome iniziante con la lettera a oppure ci si ricorda solo alcune lettere di un prodotto o di un cognome e si vogliono estrarre solo quelle che rientrano in opportuni criteri.

Se si ha, ad esempio, un elenco di prodotto con un certo prezzo, si vuole estrarre solo quelli all’interno di un certo range di valori.

Alcune regole pratiche:

  • non tutti i programmi di gestione database accettano i comandi elencati purtroppo.

Faccio un esempio, per estrarre tutte i record aventi come colonna una data e solo quelli che hanno la data attuale si usa current_date.

Ancora in libre office il cancellato non viene considerato e bisogna usare le parentesi graffe; il cancelletto vale solo nella schermata tramite lo schema e non tramite sql nativo!

 

La seguente tabella fornisce l’intera pletora delle scelte che possono essere usate all’interno della clausola WHERE del comando SELECT.

CRITERI PER I  CAMPI DI TIPO DATA/ORA

Per includere i record che Utilizzare il criterio Risultato della query
Corrispondono esattamente a un valore, ad esempio 2/2/2006 #02.02.06# Restituisce i record di transazioni avvenute il2 febbraio 2006. È necessario racchiudere i valori di tipo Data tracaratteri #in modo che Access sia in grado di distinguerli dai dati di tipo Testo.
Non corrispondono a un valore, ad esempio 2/2/2006 NOT #3/3/2006# Restituisce i record di transazioni avvenute in un giorno diverso dal2 febbraio 2006.
Contengono valori anteriori a una determinata data, ad esempio 2/2/2006 <#2/2/2006# Restituisce i record di transazioni avvenute prima del2 febbraio 2006.Per visualizzare transazioni avvenute prima o nella data specificata, utilizzare l’operatore <= invece di <.
Contengono valori successivi a una determinata data, ad esempio 2/2/2006 >#2/2/2006# Restituisce i record di transazioni avvenute dopo il2 febbraio 2006.Per visualizzare transazioni avvenute dopo o nella data specificata, utilizzare l’operatore >= invece di >.
Contengono valori compresi in un determinato intervallo di date >#2/2/2006# AND <#4/2/2006# Restituisce i record di transazioni avvenute tra il2 febbraio 2006 e il 4 febbraio 2006.È inoltre possibile utilizzare l’operatore Between per filtrare un determinato intervallo di valori, includendo i punti finali. Il criterio Between#2/2/2006# AND #4/2/2006# equivale a>=#2/2/2006# AND<=#4/2/2006#.
Contengono valori esterni a un determinato intervallo <#2/2/2006# OR >#4/2/2006# Restituisce i record di transazioni avvenute prima del2 febbraio 2006o dopo il4 febbraio 2006.
Contengono uno di due valori, ad esempio 2/2/2006 o 3/2/2006 #2/2/2006# OR #3/2/2006# Restituisce i record di transazioni avvenute il2 febbraio 2006o il3 febbraio 2006.
Contengono uno di molti valori In (#1/2/2006#, #1/3/2006#, #1/4/2006#) Restituisce i record di transazioni avvenute in data1 febbraio 2006,1 marzo 2006o1 aprile 2006.
Contengono una data di un determinato mese indipendentemente dall’anno, ad esempio dicembre DatePart(“m”, [Data ordine]) = 12 Restituisce i record di transazioni avvenute nel mese di dicembre di qualsiasi anno.
Contengono una data di un determinato trimestre, indipendentemente dall’anno, ad esempio il primo trimestre DatePart(“q”, [Data ordine]) = 1 Restituisce i record di transazioni avvenute nel primo trimestre di qualsiasi anno.
Contengono la data corrente Date() Restituisce i record di transazioni avvenute nel giorno corrente. Se la data corrente è ad esempio 2/2/2006, verranno visualizzati i record in cui il campo Data ordine è impostato sul2 febbraio 2006.
Contengono la data del giorno precedente Date()-1 Restituisce i record di transazioni avvenute il giorno precedente a quello corrente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi al giorno1 febbraio 2006.
Contengono la data del giorno successivo Date() + 1 Restituisce i record di transazioni che avranno luogo il giorno successivo a quello corrente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi al giorno3 febbraio 2006.
Contengono le date della settimana corrente DatePart(“ww”, [Data ordine]) = DatePart(“ww”, Date()) AND Year( [Data ordine]) = Year(Date()) Restituisce i record di transazioni avvenute nella settimana corrente. La settimana inizia il lunedì e termina la domenica.
Contengono date della settimana precedente Year([Data ordine])* 53 + DatePart(“ww”, [Data ordine]) = Year(Date())* 53 + DatePart(“ww”, Date()) – 1 Restituisce i record di transazioni avvenute nella settimana precedente. La settimana inizia il lunedì e termina la domenica.
Contengono date della settimana successiva Year([Data ordine])* 53+DatePart(“ww”, [Data ordine]) = Year(Date())* 53+DatePart(“ww”, Date()) + 1 Restituisce i record di transazioni che avranno luogo nella settimana successiva. La settimana inizia il lunedì e termina la domenica.
Contengono una data dei 7 giorni precedenti Between Date() and Date()-6 Restituisce record di transazioni avvenute durante i sette giorni precedenti. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati record relativi al periodo compreso tra il24 gennaio 2006e il2 febbraio 20006.
Contengono una data del mese corrente Year([Data ordine]) = Year(Now()) And Month([Data ordine]) = Month(Now()) Restituisce i record relativi al mese corrente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi afebbraio 2006.
Contengono una data del mese precedente Year([Data ordine])* 12 + DatePart(“m”, [Data ordine]) = Year(Date())* 12 + DatePart(“m”, Date()) – 1 Restituisce i record relativi al mese precedente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi agennaio 2006.
Contengono una data del mese successivo Year([Data ordine])* 12 + DatePart(“m”, [Data ordine]) = Year(Date())* 12 + DatePart(“m”, Date()) + 1 Restituisce i record relativi al mese successivo. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi amarzo 2006.
Contengono una data degli ultimi 30 o 31 giorni Between Date( ) And DateAdd(“M”, -1, Date( )) I record relativi agli ordini di un mese. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi al periodo compreso tra il2 gennaio 2006e il2 febbraio 2006.
Contengono una data del trimestre corrente Year([Data ordine]) = Year(Now()) And DatePart(“q”, Date()) = DatePart(“q”, Now()) Restituisce i record relativi al trimestre corrente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi al primo trimestre 2006.
Contengono una data del trimestre precedente Year([Data ordine])*4+DatePart(“q”,[Data ordine]) = Year(Date())*4+DatePart(“q”,Date())- 1 Restituisce i record relativi al trimestre precedente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi all’ultimo trimestre del 2005.
Contengono una data del trimestre successivo Year([Data ordine])*4+DatePart(“q”,[Data ordine]) = Year(Date())*4+DatePart(“q”,Date())+1 Restituisce i record relativi al trimestre successivo. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi al secondo trimestre del 2006.
Contengono una data dell’anno corrente Year([Data ordine]) = Year(Date()) Restituisce i record relativi all’anno corrente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi all’anno 2006.
Contengono una data dell’anno precedente Year([Data ordine]) = Year(Date()) – 1 Restituisce i record di transazioni avvenute durante l’anno precedente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi all’anno 2005.
Contengono una data dell’anno successivo Year([Data ordine]) = Year(Date()) + 1 Restituisce i record di transazioni contrassegnate da date dell’anno successivo. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi all’anno 2007.
Contengono una data compresa tra il giorno 1 gennaio e quella corrente (record da inizio anno fino alla data corrente) Year([Data ordine]) = Year(Date()) and Month([Data ordine]) <= Month(Date()) and Day([Data ordine]) <= Day (Date()) Restituisce i record di transazioni contrassegnate con date comprese tra il giorno 1 gennaio dell’anno corrente e la data corrente. Se ad esempio la data corrente è 2/2/2006, verranno visualizzati i record relativi al periodo compreso tra il giorno1 gennaio 2006e il2/2/2006.
Contengono una data anteriore a quella corrente < Date() Restituisce i record di transazioni avvenute in una data anteriore a quella corrente.
Contengono una data successiva a quella corrente > Date() Restituisce i record di transazioni che avranno luogo in una data successiva a quella corrente.
Filtro per valori Null (o mancanti) Is Null Restituisce i record che non contengono la data della transazione.
Filtro per valori non Null Is Not Null Restituisce i record in cui la data di transazione è nota.

CRITERIO PER I CAMPI DI TIPO NUMERICO

Per includere i record che Utilizzare il criterio Risultato della query
Corrispondono esattamente a un valore, ad esempio 100 100 Restituisce i record in cui il prezzo unitario del prodotto è pari a € 100.
Non corrispondono a un valore, ad esempio 1000 NOT 1000 Restituisce i record in cui il prezzo unitario del prodotto non corrisponde a € 1000.
Contengono un valore minore di un altro valore specificato, ad esempio 100 < 100
<= 100
Restituisce i record in cui il prezzo unitario è minore di € 100 (<100). La seconda espressione (<=100) visualizza i record in cui il prezzo unitario è minore o uguale a € 100.
Contengono un valore maggiore di un altro valore specificato, ad esempio 99,99 >99,99
>=99,99
Restituisce i record in cui il prezzo unitario è maggiore di € 99,99 (>99,99). La seconda espressione visualizza i record in cui il prezzo unitario è maggiore o uguale a € 99,99.
Contengono uno di due valori, ad esempio 20 o 25 20 OR 25 Restituisce i record in cui il prezzo unitario corrisponde a € 20 o € 25.
Contengono un valore compreso in un determinato intervallo >49,99 AND <99,99
-oppure-
Between 50 AND 100
Restituisce i record in cui il prezzo unitario è compreso tra € 49,99 e € 99,99 (non inclusi).
Contengono un valore esterno a un determinato intervallo <50 OR >100 Restituisce i record in cui il prezzo unitario non è compreso tra € 50 e € 100.
Contengono uno dei valori specificati In(20, 25, 30) Restituisce i record in cui il prezzo unitario corrisponde a € 20, € 25 o € 30.
Contengono un valore che termina con le cifre specificate LIKE “*4,99” Restituisce i record in cui il prezzo unitario termina con “4,99”, ad esempio € 4,99, € 14,99, € 24,99 e così via. Nota    I caratteri * e %, quando vengono utilizzati in un’espressione, rappresentano un numero qualsiasi di caratteri e sono detti anche caratteri jolly. Il carattere % non può essere utilizzato nella stessa espressione che contiene il carattere * e neppure in un’espressione che contiene il carattere jolly ?. È possibile utilizzare il carattere jolly % in un’espressione che contiene anche il carattere jolly _.
Contengono valori Null (o mancanti) Is Null Restituisce i record in cui il campo Prezzo unitario non contiene alcun valore.
Contengono valori non Null Is Not Null Restituisce i record in cui nel campo Prezzo unitario è presente un valore.

CRITERI PER I CAMPI DI TIPO TESTO

Corrispondono esattamente a un valore, ad esempio Cina “Cina” Restituisce i record in cui il campo Paese è impostato su Cina.
Non corrispondono a un valore, ad esempio Messico NOT “Messico” Restituisce i record in cui il campo Paese è impostato su un valore diverso da Messico.
Iniziano con la stringa specificata, ad esempio I Like U* Restituisce i record in cui il campo Paese contiene un nome che inizia con U, ad esempio Ungheria, Ucraina e così via. Nota    Quando viene utilizzato in un’espressione, l’asterisco (*) rappresenta una stringa qualsiasi di caratteri. L’asterisco è inoltre detto carattere jolly.
Non iniziano con la stringa specificata, ad esempio I Not Like U* Restituisce i record in cui il campo Paese contiene un nome che inizia con un carattere diverso da “U”.
Contengono la stringa specificata, ad esempio Corea LIKE “*Corea*” Restituisce i record in cui il campo Paese contiene la stringa “Corea”.
Non contengono la stringa specificata, ad esempio Corea NOT LIKE “*Corea*” Restituisce i record in cui il campo Paese non contiene la stringa “Corea”.
Terminano con la stringa specificata, ad esempio “ina” LIKE “*ina” Restituisce i record in cui il campo Paese contiene un nome che termina in “ina”, ad esempio Cina e Argentina.
Non terminano con la stringa specificata, ad esempio “*ina” NOT LIKE “*ina” Restituisce i record in cui il campo Paese contiene un nome che non termina in “ina”, ad esempio Cina e Argentina.
Contengono valori Null (o mancanti) Is Null Restituisce i record che non contengono alcun valore nel campo.
Non contengono valori Null Is Not Null Restituisce i record in cui è presente un valore nel campo.
Contengono stringhe di lunghezza zero “” (coppia di virgolette) Restituisce i record in cui il campo è impostato su un valore vuoto diverso da Null. Ad esempio, i record relativi alle vendite realizzate per un altro reparto potrebbero contenere un valore vuoto nel campo Paese.
Non contengono stringhe a lunghezza zero NOT “” Restituisce i record in cui il campo Paese contiene un valore non vuoto.
Contengono valori Null o stringhe di lunghezza zero “” Or Is Null Restituisce i record in cui il campo non contiene valori o è impostato su un valore vuoto.
Is not empty or blank Is Not Null And Not “” Restituisce i record in cui il campo Paese contiene un valore non vuoto o diverso da Null.
Seguono un determinato valore, ad esempio Messico, se in ordine alfabetico >= “Messico” Restituisce i record di tutti i paesi, a partire da Messico fino alla fine dell’alfabeto.
Sono compresi in un intervallo specifico, ad esempio tra A e D LIKE “[A-D]*” Restituisce i record contenenti i paesi i cui nomi iniziano con le lettere comprese tra “A” e “D”.
Corrispondono a uno di due valori, ad esempio Italia o Irlanda “Italia” OR “Irlanda” Restituisce tutti i record contenenti Italia e Irlanda.
Contengono uno dei valori inclusi in un elenco di valori In(“Francia”, “Cina”, “Germania”, “Giappone”) Restituisce i record contenenti i nomi dei paesi specificati nell’elenco.
Contengono determinati caratteri in una posizione specifica nel valore del campo Right([Paese], 1) = “y” Restituisce tutti i record contenenti nomi di paesi la cui ultima lettera è “y”.
Soddisfano i requisiti di lunghezza Len([Paese]) > 10 Restituisce i record contenenti paesi il cui nome è più lungo di 10 caratteri.
Corrispondono a uno schema specifico LIKE “Ci??” Restituisce i record contenenti nomi di paese, quali Cina e Cile, composti da quattro caratteri dei quali i primi due sono “Ci”. Nota    I caratteri ? e _, quando vengono utilizzati in un’espressione, rappresentano un singolo carattere e sono detti anche caratteri jolly. Il carattere _ non può essere utilizzato nella stessa espressione che contiene il carattere ? e neppure in un’espressione che contiene il carattere jolly *. È possibile utilizzare il carattere jolly _ in un’espressione che contiene anche il carattere
Pubblicato in Senza categoria | Lascia un commento

COMANDI SQL – SELECT

Carlo Carrà

Il comando SELECT è quello più conosciuto in quanto permette l’interrogazione del contenuto di una tabella.

PRIMO PASSO

Ecco la più semplice sua forma:

SELECT *

FROM anag

con * si estraggono tutte le colonne e tutti i record.

FROM indica su quale tabella eseguire la query

SECONDO PASSO

SELECT nome, cognome

FROM anag

si estraggono tutti i record delle sole colonne nome e cognome

dalla tabella anag

TERZO PASSO

SELECT nome, cognome

FROM anag

WHERE nome=’Giuseppe’

si estraggono solo i record che hanno la colonna nome valorizzata a Giuseppe dalla tabella anag.

Pubblicato in Senza categoria | Contrassegnato , , | Lascia un commento

Il linguaggio SQL

George Seraut

Con l’acronimo SQL (Structured Query Language) è un sottolinguaggio nato per accedere, gestire un database.

Esso viene utilizzato:

  • creare o modificare la struttura di un database, ad esempio creare una table (tabella) oppure cancellarla, creare un dataspace (DDL: data definition language)
  • interrogare un database (DQL: data query language)
  • inserire o cancellare record di un database (DML: data manipulation language).

L’SQL nasce nel 1970 con l’articolo “A relational model for large shared data banks” di E.F.Codd. Da quel giorno vari ingegneri ed informatici lo perfezionarono fino ad arrivare ad uno standard necessario affinché tutti i RDBMS lo passano usare.

La cosa sembra banale ma si pensi ad esempio ai semplici carica cellulari, ogni azienda ne ha adottato uno diverso in maniera da tenere legato a sè il cliente, ovviamente contro ogni logica di libero mercato o libera scelta: ma anche questo da parte del gioco.

Nel campo informatico la cosa si è particolarmente sentita proprio perché il numero di utenti esperti è comunque limitato rispetto ad un mercato di operatori di cellulari!

Ho affermato che SQL è un sub linguaggio perchè non contiene i comandi IF, THEN, ELSE, WHILE, FOR.

 

Pubblicato in Senza categoria | Contrassegnato | Lascia un commento

Pittori

Salvador Dalì

In ogni post che ho creato ho inserito un’immagine di un quadro. Vi sono autori quali Janek Yerka, Robert Delaunay, Giacomo Balla, Renè Magritte, Salvador Dalì. Lo scopo è quello di associare un’immagine ad un argomento proprio per identificare anche dal punto di vista visivo il concetto che si tenta di declinare.

Salvador Dalì, “La persistenza della memoria”

Salvador Dalì nasce nel 1904 e mure nel 1989; è un pittore surrealista spagnolo che si forma a Madrid seguendo il cubismo inizialmente per poi definitivamente assestarsi nella ricerca del surreale. Una dimensione onirica in cui trova il suo equilibrio e non sempre l’apprezzamento dei suoi coetanei. L sua opera più conosciuta è “La persistenza della memoria” del 1931 ed attualmente conservato nel museo d’arte moderna di New York.

Giacomo Balla è un artista italiano nasce nel 1871 e muore nel 1958. Inizialmente divisionista come Pellizza da Volpedo o Giovanni Segantini sfocia successivamente nel futurismo ed assieme a Marinetti ne diventa uno dei maggiori esponenti. Nel 1909 quando

Giacomo Balla – 1923 – Pessimismo e Optimismo

Filippo Tommaso Marinetti pubblico il “Manifesto futurista” , egli assieme a Boccioni, Carrà e Russolo ne adirono con convinzione. Ciò che esprime Argan in questo estratto è l’immagine di Balla:

« Balla che sul tema del dinamismo meditava già da alcuni anni (il famoso Cane al guinzaglio è del 1912), va al di là di Boccioni: prescinde quasi totalmente dall’immagine visiva per dare l’immagine psicologica del moto.La sua ricerca è prevalentemente linguistica: mira a stabilire un codice di segni significanti velocità, dinamismo ecc. Sono concetti che interessano intensamente l’uomo moderno: concetti che vogliono essere espressi visivamente perché la percezione è più rapida della parola, e che non possono essere espressi tramite segni che implichino riferimenti alla natura, perché debbono esprimere qualcosa di naturale, di realizzato mediante congegni meccanici. » (G. C. Argan, L’arte moderna, 1970)

 

 

Pubblicato in Senza categoria | Contrassegnato , | Lascia un commento

Ciclo For in C++

Giacomo Balla – “sua figlia Elica pensierosa”

Il ciclo for è indispensabile per eseguire più volte la stessa istruzione.

Ad esempio ordinare una lista, continuare a presentare un menù iniziale all’inizio di un programma, continuare ad eseguire la tornitura di un pezzo meccanico finché questo nn abbia raggiunto le dimensioni volute.

Quest’ultimo esempio è tipico delle industrie meccanizzate in cui vari robot hanno il compito di sostituire l’umo nei lavori più usuranti, rischiosi e ripetitivi. Normalmente il software presente in tali robot è scritto in C++ proprio perché consente un basso utilizzo della memoria una sintassi conosciuta e nello stesso tempo molto potente per quanto riguarda le operazioni da eseguire.

La sintassi del comando è la seguente:

for (istruzione_iniziale; prima_espressione; seconda_espressione)

istruzione;

come si nota la sintassi è notevolmente diversa da quella usata precedentemente in Python proprio perchè consente un insieme di operazioni maggiori ed una maggiore elasticità che si apprezzerà nell’implementazione di programmi più elaborati.

Eccone un esempio chiarificatore:

#include <iostream>

using namespace std;

int main (int argc, char *argv[])
{
int i;
for (i=0;i<5;++i)
    cout << “Volta: “<<i<<endl;
cout;
return 0;
}

In questi caso

istruzione_iniziale corrisponde a i=0

prima_espressione corrisponde a i<5

seconda espressione corrsponde a ++i

Si noti un’altra differenza tipica del linguaggio C++ ossia l’usa di ++i, estremamente utile per aumentare di uno il valore della variabile i.

Pubblicato in Senza categoria | Lascia un commento

If in C++

Giacomo Balla

Per prendere confidenza con i linguaggi più evoluti è necessario imparare a leggere anche un manuale di programmazione.

Il compito più arduo è indubbiamente questo perché da questo si può poi passare da un linguaggio ad un altro con maggiore dimestichezza.

Ci si avvicina con gradualità a tale scopo.

La sintassi per il comando IF è la seguente:

if (espressione)

istruzione;

Si noti subito che non ha importanza l’incolonnamento del comando stesso ma solo il giusto ordine tra le parentesi ed il punto e virgola.

In C++ il ruolo del punto e virgole è equivalente a quello di termine istruzione!

Questo semplice programma che calcola l’area di un quadrato utilizza l’istruzione IF.

nclude <iostream>

using namespace std;

int main (int argc, char *argv[])
{
int i;
double g;
cout << “Area del quadrato” << endl;
cout << “Fornire il lato” << endl;
cin >> i;
if (i < 0)
    cout << “Non ha senso calcolare l’area”<<endl;
else
    cout << “area: “<< i*i; 
cout;
return 0;
}

ho evidenziato la sezione di codice in cui si utilizza l’IF.

Si confronti a puro titolo didattico come si scriveva il comando IF nel caso del linguaggio Python.(IF Python).

Come esercizio si provi adesso a calcolare all’interno dell’else anche il lato di un rettangolo congruente al quadrato usando opportunamente le formule inverse.

Pubblicato in Senza categoria | Lascia un commento

Introduzione al C++

Renè Magritte

Il C++ nasce come evoluzione del linguaggio C. E’ un linguaggio compilato che differisce dal linguaggio interpretato com’è Python, ad esempio o HTML. Il linguaggio compilato ha la necessità di avere un software chiamato compilatore che decodifica il linguaggio di programmazione in linee di codice eseguibili.

Terminato il processo di compilazione si crea un programma chiamato eseguibile che non ha bisogno di altri file per la sua esecuzione a meno di opportuni file di configurazione che comunque, se presenti nel PC in cui si esegue varranno per tutti gli altri programmi.

A differenza del programma interpretato presenta i seguenti vantaggi:

– velocità di esecuzione

– poco spazio in termini sia di occupazione di memoria che di memoria in fase di esecuzione.

Il C++ nasce nel 1979 da Bjarne Stroustrup (programmatore danese) che durante la sua tesi di laurea nota la necessità di completare il linguaggio C con altre caratteristiche che ne fanno la peculiarità del C++.

E’ l’evoluzione del C in quanto introduce un concetto poi utilizzato in tutti i linguaggi di programmazione successiva: il concetto di classe.

Il concetto di classe è qualcosa di molto potente e che può essere compreso solo dopo numerose righe di codice ma il concetto è il vantaggio di definire un oggetto e poi utilizzarlo con tutte le sue proprietà in qualunque punto del programma.

La semantica del linguaggio è molto ricca e questo permette di eseguire numerose istruzioni, nel contempo però potrebbe generare vari codici sorgente con compilatori diversi.

Pubblicato in Senza categoria | Lascia un commento

Prova invalsi di matematica anno 2011-2010

Renè Magritte

Renè Magritte

Allego la prova INVALSI di matematica dell’anno 2011 ed anno 2010 per la terza media

PN1011_Matematica

test_invalsi_2010_matematica

Ritengo indispensabile allenarsi per poter affrontare in maniera soddisfacente il relativo test.

Cercare di rinchiudere un qualunque ramo dello scibile all’interno di test è indubbiamente una cosa poco onesta dal punto di vista intellettivo ma cercare di declinare il livello raggiunto è indispensabile per capire se si è in grado di percorre la strada verso il miglioramento.

Termino questo post con un aforisma di Gottfried Wilhelm Leibniz

“E’ nel grande ordine che vi è un piccolo disordine”

Pubblicato in Senza categoria | Lascia un commento

Radicali: la chiave di volta

Jacek Yerka

Quando si pensa ai radicali, spesso e volentieri si creano tanti di quei metodi per poterli sviluppare che sembra quasi un argomento scollegato a quello degli esponenziali.

E’ un errore di fondo che merita un’immediata verifica.

Si pensi a questi classici problemi.

1) Mettere tutto sotto la stessa radice:

7\sqrt{7}

2) Estrarre dalla radice più numeri possibili:

\sqrt{7^{3}}

3)  Unificare in un’unica radice:

\sqrt{\sqrt{7}}

La cosa fondamentale è pensare sempre a questa cosa:

come si è imparato che un numero può essere elevato alla potenza, tale potenza oltre che essere intera può essere razionale (frazione) oppure anche con la virgola ossia può esistere la seguente cosa:

7^{3} oppure 7^{\frac{1}{2}}

e VARRANNO SEMPRE LE STESSE REGOLE IMPARATE PER LE POTENZE OSSIA

a^{n}\cdot a^{m}=a^{n+m}

e

\left ( a^{n} \right )^{m}=a^{n\cdot m}

Il simbolo radice \sqrt{ }, a mio modesto parere, ha creato più confusione che chiarezza in quanto sembra quasi che si sia creato un argomento nuovo rispetto allo studio degli esponenziali: nulla di più sbagliato.

E’ stato Cartesio ad introdurlo per primo, siamo a metà del 1600, prima di lui si indicava con la lettera R la radice.

Si provi quindi ad imparare nuovamente il tutto come si faceva prima di Cartesio e si avrà un immediato giovamento!

\sqrt{7}=7^{\frac{1}{2}}

e generalizzando:

\sqrt[n]{7^{m}}=7^{\frac{m}{n}} ossia il numeratore dell’esponenziale rimane l’esponenziale del radicando, il denominatore è il grado della radice.

Purtroppo in occidente si è voluto imparare la matematica introducendo un simbolismo che va bene solo per la radice quadrata di un numero ipotizzando che l’operazione più comune fosse questa: in realtà in tutta l’analisi superiore tale fatto viene ampiamente sfatato!

Ma in conclusione come si sviluppano i tre problemi citati?

Problema 1:

7\sqrt{7}=7\cdot 7^{\frac{1}{2}}=7^{1+\frac{1}{2}}=7^{\frac{3}{2}}=\sqrt[2]{7^{3}}

Problema 2:

\sqrt{7^{3}}=7^{\frac{3}{2}}=7^{1+\frac{1}{2}}=7^{1}\cdot 7^{\frac{1}{2}}=7\cdot \sqrt{7}

Problema 3

\sqrt{\sqrt{7}}=\left ( 7^{\frac{1}{2}} \right )^{\frac{1}{2}}=7^{\frac{1}{4}}=\sqrt[4]{7}

 

Tutti i problemi innumerevoli che si danno alle superiori non sono altro che l’applicazione dei semplici tre problemi precedenti.

 

Pubblicato in Senza categoria | Lascia un commento