PDA

View Full Version : programmare in C con linux


ArtX
02-08-2006, 12:31
ho iniziato ad imparare a programmare in C con linux
come edit ho usato vi, poi ho salvato il file con estensione .o però adesso non sò ne come copilarlo ne come eseguirlo.
mi date una mano
il codice è molto semplice e l'ho copiato da una guida.
intanto vorrei imparare a compilare prima di cominciare a imparare sul serio :D
eccovi il semplicissimo codice (io non ci capisco ancora niente
comunque :muro: ):
#include<studio.h>
#include<math.h>

int mainb()
{
float a,b;
printf("\t Inserisci a \n");
scanf("%f", &a);
b = sin(a);
printf("\t Il seno di %f vale, %f \n", a, b);

{ /* fine main */

grazie

Marco Giunio Silano
02-08-2006, 12:34
per quale motivo l'ha salvato come .o?
per compilare devi crearti un makefile, cerca un esempio e modificalo.

Marco Giunio Silano
02-08-2006, 12:37
il compilatore (è lui che crea il .o) genererà un file eseguibile (occhio che non avrà estenzione .exe come in dos, ma negli attributi sarà segnato come eseguibile) che "lancerai" ./nomefile

Marco Giunio Silano
02-08-2006, 12:41
#include<studio.h>
#include<math.h>

int mainb()
{
float a,b;
printf("\t Inserisci a \n"); //Scrive sulal console "Inserisci a"
scanf("%f", &a); //get del dato che tu digiti in run mode e lo carica in a
b = sin(a); //...
printf("\t Il seno di %f vale, %f \n", a, b); //scrive sulla console il risultato di sin(a)

{ /* fine main */
} //meglio così! ;)

Marco Giunio Silano
02-08-2006, 12:47
cmq tra un po' passa "trallalero" e ti scrive anche il makefile ;).
Io sono a digiuno di programmazione da più di un anno e non ho più un pc con gli ambienti per le prove e il vecchio codice da ripescare.

ArtX
02-08-2006, 12:52
ops, scusatemi per la mia ignoranza, ma per adesso trovo molto complicato imparare da solo.
devo rivedermi meglio la guida :D
allora ho capito cosa ho sbagliato, ma se sono da vi con questo codice con qule estensione devo salvarlo o cos'altro devo fare per compilarlo?
mi schiatite meglio le idee sul makefile, sulla guida che ho letto non se ne parlava :confused:
forse devo fare come ho sempre fatto con i sorgenti da installare
creo il file make e poi dò make e quindi ./nomefile oppure make install se è da installare. giusto?
grazie per i futuri chiarimenti.

andbin
02-08-2006, 12:55
ho iniziato ad imparare a programmare in C con linux
come edit ho usato vi, poi ho salvato il file con estensione .oUn sorgente "C" va salvato con estensione .c. ;)

#include<studio.h>
#include<math.h>

int mainb()
{
float a,b;
printf("\t Inserisci a \n");
scanf("%f", &a);
b = sin(a);
printf("\t Il seno di %f vale, %f \n", a, b);

{ /* fine main */
Un po' di errori ... anche di scrittura.
Il codice corretto è:
#include <stdio.h>
#include <math.h>

int main (void)
{
double a,b;

printf("\t Inserisci a \n");
scanf("%lf", &a);
b = sin(a);
printf("\t Il seno di %f vale, %f \n", a, b);

return 0;
}Nota che la funzione sin opera su dei double. Quindi è meglio usare delle variabili di tipo double.

Per compilarlo, ammesso che il sorgente si chiami seno.c, basta dare il seguente comando:
gcc -lm -o seno seno.c

Questa è un metodo diretto, perché crea direttamente l'eseguibile. Un altro metodo è quello di usare un "Makefile" con dentro queste righe:
seno: seno.o
@gcc -lm -o seno seno.o

seno.o: seno.c
@gcc -c -o seno.o seno.c

clean:
@rm -f seno.oNota: mettere 1 TAB prima del @. Poi si esegue "make" per compilare o "make clean" per eliminare gli oggetti.

Marco Giunio Silano
02-08-2006, 12:56
ops, scusatemi per la mia ignoranza, ma per adesso trovo molto complicato imparare da solo.
devo rivedermi meglio la guida :D
allora ho capito cosa ho sbagliato, ma se sono da vi con questo codice con qule estensione devo salvarlo o cos'altro devo fare per compilarlo?
mi schiatite meglio le idee sul makefile, sulla guida che ho letto non se ne parlava :confused:
forse devo fare come ho sempre fatto con i sorgenti da installare
creo il file make e poi dò make e quindi ./nomefile oppure make install se è da installare. giusto?
grazie per i futuri chiarimenti.

Di solito si salvano come .c

Il make file contiene le linee necessarie per compilare ed è utile per non dover digitare ogni volta l'infinita linea di comando, vedilo un po' come i .bat di dos... non è proprio la stessa cosa ma +o-... Ora, dirti come scriverlo non lo ricordo a memoria, come ho spiegato nel post precedente.

Marco Giunio Silano
02-08-2006, 12:58
ecco, quoto andbin

ArtX
02-08-2006, 13:35
grazie, tutto chiaro per ora
ci vediamo al prossimo problema :D

ArtX
02-08-2006, 13:41
sono già qua
cosa devo installare per avere le varie librerie perchè se lo compilo mi da questo errore:
gcc -lm -o seno seno.c
seno.c:1:19: error: studio.h: Nessun file o directory
seno.c: In function ‘mainb’:
seno.c:7: warning: incompatible implicit declaration of built-in function ‘printf’
seno.c:8: warning: incompatible implicit declaration of built-in function ‘scanf’
seno.c:13: error: syntax error at end of input

andbin
02-08-2006, 13:43
sono già qua
cosa devo installare per avere le varie librerie perchè se lo compilo mi da questo errore:
gcc -lm -o seno seno.c
seno.c:1:19: error: studio.h: Nessun file o directory
seno.c: In function ‘mainb’:
seno.c:7: warning: incompatible implicit declaration of built-in function ‘printf’
seno.c:8: warning: incompatible implicit declaration of built-in function ‘scanf’
seno.c:13: error: syntax error at end of inputEhm ... non so se l'hai capito ... il sorgente che tu hai postato ha degli errori. Il sorgento corretto è nel mio post sopra. ;)

ArtX
02-08-2006, 13:53
Ehm ... non so se l'hai capito ... il sorgente che tu hai postato ha degli errori. Il sorgento corretto è nel mio post sopra. ;)

ops, scusami
ora funzia e adesso mi metto a imparare questo linguaggio
grazie mille.

Marco Giunio Silano
02-08-2006, 13:59
ops, scusami
ora funzia e adesso mi metto a imparare questo linguaggio
grazie mille.

bè, buona fortuna

trallallero
02-08-2006, 15:29
cmq tra un po' passa "trallalero" e ti scrive anche il makefile ;).
Io sono a digiuno di programmazione da più di un anno e non ho più un pc con gli ambienti per le prove e il vecchio codice da ripescare.
vabbé, m'ha preceduto l'ottimo Andbin :D
ma penso che ArtX lo rivedremo presto ;)

Marco Giunio Silano
02-08-2006, 15:42
ma penso che ArtX lo rivedremo presto ;)
:D

ArtX
02-08-2006, 19:52
questa battuta fa più ridere a me che a voi :D
è ovvio che mi rivedrete ;)
appena lo trovo mi compro il libro daidel&daidel e inizio a imparare sul serio :sofico: .
intanto sapreste consigliarmi qualche lettura semplice che spiega la teoria di base, magari qualcosa di breve e adatta ai principianti come me.

trallallero
03-08-2006, 07:12
questa battuta fa più ridere a me che a voi :D
è ovvio che mi rivedrete ;)
appena lo trovo mi compro il libro daidel&daidel e inizio a imparare sul serio :sofico: .
intanto sapreste consigliarmi qualche lettura semplice che spiega la teoria di base, magari qualcosa di breve e adatta ai principianti come me.
ti consiglio "Tricky C" ma non posso darti un link funzionante perché ho la rete aziendale un pó ... chiusa :stordita:
Ma su google ci vado e se scrivo "Tricky C" mi arriva un sacco di pagine ;)
Buono studio :)

Marco Giunio Silano
03-08-2006, 07:28
Azz... c'è un libro facile facile che si chiama linguaggio C di due tizi dei quali ora mi sfugge il nome... la copertina è bianca... aiutami trallallero.

Marco Giunio Silano
03-08-2006, 07:32
Non è quello che dico io, ma anche questo gironzolava per il poli:

http://users.libero.it/haris/export/recensioni/bbm.htm

Marco Giunio Silano
03-08-2006, 07:35
ECCOLO, l'Ansi C di Kernighan e Ritchie, lo trovo semplice come prima lettura per chi non conosce nulla di C e programmazione strutturata.

"Linguaggio C - Ansi C", Brian Kernighan , Dennis M. Ritchie

trallallero
03-08-2006, 07:35
Azz... c'è un libro facile facile che si chiama linguaggio C di due tizi dei quali ora mi sfugge il nome... la copertina è bianca... aiutami trallallero.
Kernighan & Ritchie :D
2 tizi che l'hanno solo inventato il C.
Ce l'ho in pdf il libro ... lo devo solo trovare

Marco Giunio Silano
03-08-2006, 07:39
Kernighan & Ritchie :D
2 tizi che l'hanno solo inventato il C.
Ce l'ho in pdf il libro ... lo devo solo trovare

ehehe arrivi tardi, vedi il post sopra! cmq, come sempre, sei perfetto ed efficiente!
Invece, io, non ricordo mai un nome. A dire il vero li pronunciavo entrambi, ma a modo mio e scriverli come li pronunciavo, mi sembrava brutto. ;)

Marco Giunio Silano
03-08-2006, 07:40
OT: la pronuncia risultava del tipo: kardigan e ricky... dovrei vergognarmi per il mio inglese!

trallallero
03-08-2006, 07:41
io ho:
"The C Programming Language Ritchie & Kernighan.pdf"
(il libro in formato pdf) se qualcuno lo vuole lo mando via posta.

Marco Giunio Silano
03-08-2006, 07:42
io ho:
"The C Programming Language Ritchie & Kernighan.pdf"
(il libro in formato pdf) se qualcuno lo vuole lo mando via posta.

Certo che spiegato da loro sembra una cosa da tutti i giorni il C

trallallero
03-08-2006, 08:02
Certo che spiegato da loro sembra una cosa da tutti i giorni il C
ci son cose piú difficili nella vita dai :D

Marco Giunio Silano
03-08-2006, 08:07
ci son cose piú difficili nella vita dai :D

Indubbio.
Ma io mi riferivo ad un confronto con altri libri similari.
Colpa mia che mi sono spiegato male.

trallallero
03-08-2006, 08:29
Indubbio.
Ma io mi riferivo ad un confronto con altri libri similari.
Colpa mia che mi sono spiegato male.
No no, avevo capito, ma secondo me sono gli altri libri fatti male (Tricky C a parte).
Intendevo dire che (almeno per me) il C lo hanno fatto in maniera molto logica,
ordinato, coerente, quindi certe cose le capisci per logica, non possono che essere cosí.
Quindi quando i 2 spiegano il loro prodotto lo fanno cosí, "naturelle" perché lo é.
Non so se mi sono capito bene :D
per esempio, ho avuto piú difficolta ad imparare il VB, capire la logica della MS :muro:

Marco Giunio Silano
03-08-2006, 08:59
No no, avevo capito, ma secondo me sono gli altri libri fatti male (Tricky C a parte).
Intendevo dire che (almeno per me) il C lo hanno fatto in maniera molto logica,
ordinato, coerente, quindi certe cose le capisci per logica, non possono che essere cosí.
Quindi quando i 2 spiegano il loro prodotto lo fanno cosí, "naturelle" perché lo é.
Non so se mi sono capito bene :D
per esempio, ho avuto piú difficolta ad imparare il VB, capire la logica della MS :muro:

sono pienamente d'accordo con te. ho sempre apprezzato il C, perché ha un flusso fluido. In VB mi mancano delle parti (che non vedo come codice) e questo m'infastidisce.
Scrivevo C per embedded ed era tutto così pulito e chiaro... "passi di qui, l'indirizzo è questo, sn 16 bit"... poi ha fatto l'avvento (anche grazie a Micro + potenti) VB e allora ho deciso che era ora di smettere... forse per pigrizia o forse per disgusto, non so. Ma resto dell'idea che se impari il C, tutti gli altri linguaggi, con un minimo sforzo, li gestisci e li impari.
Ma andiamo OT e magari qualcuno si annoia, magari io per primo ;) :D

trallallero
03-08-2006, 09:32
sono pienamente d'accordo con te. ho sempre apprezzato il C, perché ha un flusso fluido. In VB mi mancano delle parti (che non vedo come codice) e questo m'infastidisce.
Scrivevo C per embedded ed era tutto così pulito e chiaro... "passi di qui, l'indirizzo è questo, sn 16 bit"... poi ha fatto l'avvento (anche grazie a Micro + potenti) VB e allora ho deciso che era ora di smettere... forse per pigrizia o forse per disgusto, non so. Ma resto dell'idea che se impari il C, tutti gli altri linguaggi, con un minimo sforzo, li gestisci e li impari.
Ma andiamo OT e magari qualcuno si annoia, magari io per primo ;) :D
ok, anche perché mi sa che é pieno di 3d che parlano di questo argomento.

ArtX
03-08-2006, 17:43
grazie mille a tutti
spero di trovarmi bene con Tricky C