PDA

View Full Version : librerie e il loro uso...


geppe5
28-10-2006, 10:13
salve ragazzi,ho postato qst messaggio perchè nel bel mezzo di un corso di informatica un professore ci ha assegnato un programma da realizzare;il fatto è che nn so neanke quali librerie assegnare,specie perchè non so neanche cosa sia una libreria :doh: ...potreste aiutarmi?grazie

mynos79
28-10-2006, 11:08
Potremmo anche aiutarti ... ma cerca di essere più preciso ...
Che progetto devi fare? con che linguaggio? quali sono i tuoi problemi ... etc etc ...

geppe5
28-10-2006, 11:23
innanzitutto grazie per la considerazione :)
allora
devo fare un programmino che mi sviluppi l'espressione sen(x) attraverso la serie sen(x)=x- x^3/3! +x^5/5! -x^7/7! ecc ecc
il guaio è che il mio prfo fa tante chiacchiere ma alla fine nn c'ha spiegato niente (o quasi)di c++(linguaggio in cui devo scrivere):
non so cos'è una libreria;nn so quindi cm usarle e sceglierle;
mi mancano un sacco di pezzi(ovvero non so proprio dove mettere mani,ma qst problema posso risolverlo da me)
il problema più grande(a parte che qst parla di pseudocode qnd non ha nemmeno detto cos'è) restano le librerie da usare...
spero di essere stato più preciso_(mi sento tanto come un aborigeno nella valle del silicio

jappilas
28-10-2006, 12:26
innanzitutto grazie per la considerazione :)
allora
devo fare un programmino che mi sviluppi l'espressione sen(x) attraverso la serie sen(x)=x- x^3/3! +x^5/5! -x^7/7! ecc eccuna serie di Taylor... quanto tempo :D
il guaio è che il mio prfo fa tante chiacchiere ma alla fine nn c'ha spiegato niente (o quasi)di c++(linguaggio in cui devo scrivere):EDIT: mi sono reso conto di una cosa: vi fanno scrivere una funzione che calcoli un "qualcosa" senza fare niente' altro, nemmeno che so, immettere il valore argomento o visualizzare il risultato (cose per cui si usano funzioni di libreria) ? :mbe:
non so cos'è una libreria;nn so quindi cm usarle e sceglierle;saprai sicuramente che valore e che utilizzo ha una funzione in un (generico) linguaggio di programmazione ...
una libreria (nel senso di libreria di funzioni) è sostanzialmente una raccolta di codice già pronto, contenente la definizione e implementazione di funzioni e classi le quali dal tuo programma potrai chiamare o istanziare, a patto di avere fatto l' importazione della libreria che li contiene: questo li rende "visibili" alla parte di codice da te scritta, e il tuo codice potrà *interfacciarvisi*

sul come sceglierle... librerie (meglio, funzioni accessibili tramite importazione di libreria) esistono a livello sorgente o binario
alcune fanno parte dello standard del linguaggio di programmazione, altre rientrano tra i componenti del sistema operativo (a volte standardizzate tra sistemi operativi diversi), le altre sono generalmente componenti a parte (ad es una libreria di widget grafici, un motore 3d...)
ritengo il primo passo per arrivare a capire come scegliere le libreria da usare sia capire quali funzioni ti servono per risolvere un determinato problema, (qui forse ci sarebbe stato bene insegnare un minimo di sw design) dall' altra vedere cosa mette a disposizione la piattaforma specifica, per adesso se non altro le librerie standard del linguaggio (che mi stupisce molto il docente non abbia accennato)

sul come usarle... i file vitali in un progetto C o C++ sono due tipi, file sorgenti e file di intestazione , header : l' header (file con estensione .h per il C e .hpp per C++) è il file che contiene le definizioni delle classi, strutture dati e funzioni disponibili per quella libreria
all' inizio del tuo codice dovrai dire al compilatore di andare a leggere quel file, con :
#include <NomeFileHeader> (con <>) o #include "NomeFileHeader.h" (con il .h e le ")
(posto che il file sia rintracciabile da parte del compilatore, quindi che nelle impostazioni del progetto o dell' ambiente sia stata aggiunta la directory dove si trova l' header da includere) ;)
fosse stato java si sarebbe trattato di fare un import del namespace ( per dire, import java.util.LinkedList mi fa accedere all' implementazione di una struttura dati definita in quella ramificazione delle librerie di java)
ma è interessante notare che dal punto di vista dell' ambiente di sviluppo, il modo per usare librerie esterne o in linea non differisce molto da quello per sviluppare un proprio progetto suddividendone i componenti funzionali tra più file sorgenti: infatti il problema è lo stesso, qualora da una parte del codice si voglia chiamare una funzione definita altrove
il problema più grande(a parte che qst parla di pseudocode qnd non ha nemmeno detto cos'è) una stesura di pseudocodice è la descrizione di un algoritmo, o del comportamento che si vuole ottenere da un programma, in una forma che pur sfruttando notazioni e convenzioni dei linguaggi di programmazione, rimane discorsiva e informale evitando costrutti sintattici specifici di un linguaggio di programmazione effettivo, e omettendo la dichiarazione delle variabili
restano le librerie da usare...visto che mi pare alla fine tu debba scrivere una funzione tipo double mioseno(double x) usando gli elevamenti a potenza , credo ti basti dare un' occhiata qui (http://www.cplusplus.com/ref/cmath/ ) e in particolare qui (http://www.cplusplus.com/ref/cmath/pow.html) per capire di quale funzione si tratti, in quale libreria sia e cosa devi scrivere come nome del file da includere
però ti consiglio per tua cultura di cercare della documentazione sulle librerie standard del c/c++ ;)
spero di essere stato più preciso_(mi sento tanto come un aborigeno nella valle del siliciodont worry ;)

geppe5
28-10-2006, 13:58
grazie mille!!!
ovviamente non posso dirti il nome del professore che mi fa il corso,ma stai sicuro che per come hai risolto questo problema potresti fare il professore(almeno per il corso di fondamenti d'informatica)universitario... :sofico: ciao!!!
:D

jappilas
28-10-2006, 14:36
grazie mille!!!
ovviamente non posso dirti il nome del professore che mi fa il corso,ma stai sicuro che per come hai risolto questo problema potresti fare il professore(almeno per il corso di fondamenti d'informatica)universitario... :sofico: ciao!!!
:D
naaa figurati, non ho certo la scienza infusa :D
semplicemente sono convinto che ci debba essere una logica non solo dietro alle cose, ma anche nel modo di spiegarle, per cui mi stupivo che si facessero scrivere dei programmi senza spiegare, per esempio, che senso hanno gli #include in cima a un listato e perchè serve metterli...
come approccio è come costruire una casa partendo dalla finestra del 1o piano... :mc:

ps : ho messo una piccola precisazione a metà del post precedente, scritto un po' di fretta ;)

zakmckraken
28-10-2006, 19:52
Ziao!!
Beh,
tanto per incasinare un po..
#include <nome_header> dovrebbe essere equivalente a #include <nome_header.h> ... poste le precisazioni seguenti
#include <puppappera.h> di solito si intende una funzione presente in una libreria, di cui e'presente nel progetto solo l'header, non l'implementazione.
#include "puppappera.h" invece si usa quando e'presente p.e. un file puppappera.c nel progetto con l'implementazione

by Zak, THE alien mindbender

Bonfo
28-10-2006, 21:04
Ziao!!
Beh,
tanto per incasinare un po..
#include <nome_header> dovrebbe essere equivalente a #include <nome_header.h> ... poste le precisazioni seguenti
#include <puppappera.h> di solito si intende una funzione presente in una libreria, di cui e'presente nel progetto solo l'header, non l'implementazione.
#include "puppappera.h" invece si usa quando e'presente p.e. un file puppappera.c nel progetto con l'implementazione

by Zak, THE alien mindbender

Non esattamente.
La differenza è molto più semplice! :D

Le parentesi angolari ( <>) si usano quando il header è presente nelle librerie "standard", ovvero il file header è cercato all'interno delle directory conosciute dal compilatore.
Gli apici ("") si usano quando il file header non tra quelle directory, e quindi il file deve essere cercato tra le directory del progetto o tra quelle fornite dall'utente.

Spero di essere stato sufficentemente chiaro e semplice ;)