Programmare in c ed c++ su ubuntu

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
lori.mak
Prode Principiante
Messaggi: 28
Iscrizione: mercoledì 10 marzo 2010, 19:36

Programmare in c ed c++ su ubuntu

Messaggio da lori.mak »

Salve a tutti,ho provato ubuntu 11 ed e veramente strepitoso e pieno di nuove idee. L'unico problema e che sul computer voglio anche programmare solo che con ubuntu non so come fare. Per prima cosa in windows io installavo il compilatore c/c++ (io uso code::blocks) e poi iniziavo il programma.
Es.
#include
int main(void){
etc..}
Potreste dirmi come si programma con ubuntu e quali sono le differenze tra programmare su windows e programmare su linux?
(Opzionale) Ho iniziato anche un po di assembly, potreste dirmi come si fa un programma assembly su ubuntu e se gli interrupts cambiano?
pier_IP
Prode Principiante
Messaggi: 51
Iscrizione: sabato 17 ottobre 2009, 10:34
Contatti:

Re: Programmare in c ed c++ su ubuntu

Messaggio da pier_IP »

Direi che differenze significative non ce ne sono.
Per Code::blocks esiste anche una versione per Linux, lo trovi in Ubuntu Software Center.
Il compilatore dovrebbe esserci di default nel programma.
Comunque puoi usare il terminale con il comando

Codice: Seleziona tutto

g++ -o nome_eseguibile sorgente1.cpp sorgente2.cpp sorgente3.cpp .....
Quello ci sara' di sicuro.

Come probabilmente gia' sai gli eseguibili non hanno l'aspetto di quelli di win, cioe' non sono .exe e per eseguirli da terminale devi digitare

Codice: Seleziona tutto

./eseguibile
Per l'assembly non lo so, ma sicuramente esisteranno programmi open source.
Aiuto utenti linux, esercizi svolti di matematica e teoria (statistica e analisi), strumenti matematici vari (scomposizione fattori primi, permutazioni, ...), progetti software didattici con documentazioni. Tutto qui : http://pierprogramm.altervista.org/wordpress
lori.mak
Prode Principiante
Messaggi: 28
Iscrizione: mercoledì 10 marzo 2010, 19:36

Re: Programmare in c ed c++ su ubuntu

Messaggio da lori.mak »

Esempio di un programma che ho scritto in c++ (gioco dell'impiccato). Per funzionare su ubuntu ha bisogno di modifiche?

Codice: Seleziona tutto

\\Programma scritto su due file chiamati comp.h e main.cpp

\\Inizio file comp.h
class Comp{
    int nr;
    public:
    char stringa[15];
    char stringa_s[15];
    bool comp_let(char a);
    bool comp_tut(char a[]);
    Comp(int a,char b[]){
        short int c=0;
        nr=a;
        while(c<a){
    stringa[c]=b[c];
    c++;}
    c=1;
    a--;
    stringa_s[0]=stringa[0];
    stringa_s[a]=stringa[a];
    while(c<a){
        stringa_s[c]=42;                              \\42 e' il codice ASCII per *
        c++;}
    }};
\\Fine file comp.h

\\Inizio file main.cpp


#include <iostream>
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#include "conio.h"
#include "comp.h"

using namespace std;

 extern int contr=0;

 bool Comp::comp_let(char a){
int b=1,d;
bool c=0;
d=nr;
d--;
while(b<d){
if(stringa[b]==a && stringa_s[b]!=a){
    c=1;
   stringa_s[b]=stringa[b];
   contr++;
    }
b++;}
if(c==1){
while(l>0){
        }
        return 1;}
        else{
            return 0;}}

            bool Comp::comp_tut(char a[]){
                int b=0,d=0;
                while(b<nr){
                    if(stringa[b]==a[b]){
                        d++;}
                        b++;}
                        if(d==b){
                            return 1;}
                            else{
                                return 0;}}

int main()
{
short int b=0,c=0,f=7;
short int ris=2;
char a[15],e;
cout<<"Inserire la parola da indovinare:"<<endl;
while((a[b]=getch())!=13){                                \\13 e' il codice ASCII per INVIO
   if(a[b]==8){                                            \\8 e' il codice ASCII per backspace
       b--;
       cout << "\b" << " " << "\b";}
       else{
    cout<<"*";
    b++;}}
    Comp compara(b,a);
    while(f>1){
        system("cls");
        b=b-2;
        if(contr==b){
            goto Fine;}
            b=b+2;
        if(ris==0){
            cout<<"Avete sbagliato!"<<endl;
            f--;}
            if(ris==1 || ris==3){
                cout<<"Avete indovinato!"<<endl;}
        while(c<b){
            cout<<compara.stringa_s[c];
            c++;}
            c=0;
        cout<<endl<<"Possibilita' rimaste:"<<f<<endl<<"Inserire una singola lettera o premere invio per indovinare la parola:"<<endl;
fflush(stdin);
if((e=getch())==13){
    cout<<"Inserire la parola e premere invio:"<<endl;
    cin>>a;
    ris=compara.comp_tut(a);
    if(ris==1){
        f=0;}
        else{
            f--;}
    }
    else{
    ris=compara.comp_let(e);
    if(ris==1){
        ris=3;}
        }}
        Fine:
        if(ris==0){
            system("cls");
            cout<<"Avete finito le possibilita'!"<<endl<<"La parola era: ";
            while(c<b){
            cout<<compara.stringa[c];
            c++;}
           }
            if(ris==3){
                b=b+2;

                 while(c<b){
            cout<<compara.stringa[c];
            c++;}
                cout<<endl<<"Congratulazioni, avete indovinato la parola!";
                }
                if(ris==1){
                    cout<<"Congratulazioni, avete indovinato la parola!";}
                cout<<endl;
                system("pause");}




\\Fine file main.cpp
Ultima modifica di pierba il venerdì 5 agosto 2011, 12:04, modificato 1 volta in totale.
pier_IP
Prode Principiante
Messaggi: 51
Iscrizione: sabato 17 ottobre 2009, 10:34
Contatti:

Re: Programmare in c ed c++ su ubuntu

Messaggio da pier_IP »

Non credo ci saranno problemi... Provalo
Aiuto utenti linux, esercizi svolti di matematica e teoria (statistica e analisi), strumenti matematici vari (scomposizione fattori primi, permutazioni, ...), progetti software didattici con documentazioni. Tutto qui : http://pierprogramm.altervista.org/wordpress
lori.mak
Prode Principiante
Messaggi: 28
Iscrizione: mercoledì 10 marzo 2010, 19:36

Re: Programmare in c ed c++ su ubuntu

Messaggio da lori.mak »

quando lo compilo  mi da una marea di errori ma su windows funzionava benissimo
pier_IP
Prode Principiante
Messaggi: 51
Iscrizione: sabato 17 ottobre 2009, 10:34
Contatti:

Re: Programmare in c ed c++ su ubuntu

Messaggio da pier_IP »

Posta l'output

Aspetta noto adesso che usi system per eseguire un comando... questo cambia di molto le cose. I comandi sono diversi da win a ubuntu, devi trovare il comando di ubuntu che corrisponde a quello che dai di win.

Per esempio credo che cls serva per pulire lo schermo su win, quindi su ubuntu dovrebbe essere clear
Ultima modifica di pier_IP il giovedì 4 agosto 2011, 14:00, modificato 1 volta in totale.
Aiuto utenti linux, esercizi svolti di matematica e teoria (statistica e analisi), strumenti matematici vari (scomposizione fattori primi, permutazioni, ...), progetti software didattici con documentazioni. Tutto qui : http://pierprogramm.altervista.org/wordpress
dennis87
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 639
Iscrizione: lunedì 27 settembre 2010, 0:46
Desktop: Unity
Distribuzione: Ubuntu 15.04 x86_64

Re: Programmare in c ed c++ su ubuntu

Messaggio da dennis87 »

io per programmare nei vari linguaggi uso eclipse...è molto buono...eclipse per java lo trovi nei repo, per gli altri linguaggi vai su eclipse.org
il tuo programma a me funziona... ;D

EDIT:
i segni di commento sono al rovescio....// <---così, \\<--non così
Ultima modifica di dennis87 il giovedì 4 agosto 2011, 14:03, modificato 1 volta in totale.
pier_IP
Prode Principiante
Messaggi: 51
Iscrizione: sabato 17 ottobre 2009, 10:34
Contatti:

Re: Programmare in c ed c++ su ubuntu

Messaggio da pier_IP »

dennis87 ha scritto: i segni di commento sono al rovescio....// <---così, \\<--non così
Allora credo che neanche su win si riuscirebbe a compilare...
Aiuto utenti linux, esercizi svolti di matematica e teoria (statistica e analisi), strumenti matematici vari (scomposizione fattori primi, permutazioni, ...), progetti software didattici con documentazioni. Tutto qui : http://pierprogramm.altervista.org/wordpress
Avatar utente
Eni
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 652
Iscrizione: martedì 21 luglio 2009, 14:28
Località: Campania

Re: Programmare in c ed c++ su ubuntu

Messaggio da Eni »

ehm...

Codice: Seleziona tutto

system("pause")
:-[
su ubuntu non c'è bisogno,ne tantomeno si puo usare na cosa simile, il programma si ferma da solo alla fine non come in windows che si chiude il terminale ;D al massimo per la pausa dai:

Codice: Seleziona tutto

scanf("%d",&variabile_a_caso)
oppure

Codice: Seleziona tutto

wait(N secondi)

per aspettare un tot di secondi prima di continuare
se ti da errori del tipo che non trova le librerie aggiungi

Codice: Seleziona tutto

-lm
alla fine di:

Codice: Seleziona tutto

g++ -o nome_eseguibile sorgente1.cpp sorgente2.cpp sorgente3.cpp .....
(o almeno in C è così)

ovviamente non ci sono librerie del tipo windows.h o a patto che tu non le scarichi le api...  :-*
Ultima modifica di Eni il giovedì 4 agosto 2011, 18:03, modificato 1 volta in totale.
disse il saggio Ping Pong...windows si "impala" un passo alla volta..........linux si "impala" difficilmente...
pier_IP
Prode Principiante
Messaggi: 51
Iscrizione: sabato 17 ottobre 2009, 10:34
Contatti:

Re: Programmare in c ed c++ su ubuntu

Messaggio da pier_IP »

il programma si ferma da solo alla fine non come in windows che si chiude il terminale
Be' dipende da come lo esegui...
Se crei un lanciatore con il semplice comando

Codice: Seleziona tutto

./eseguibile
Allora il terminale si chiude.
Se invece usi

Codice: Seleziona tutto

xterm -hold -e ./eseguibile
Allora il risultato rimane visibile fino alla chiusura manuale del terminale.
Ultima modifica di pier_IP il giovedì 4 agosto 2011, 18:45, modificato 1 volta in totale.
Aiuto utenti linux, esercizi svolti di matematica e teoria (statistica e analisi), strumenti matematici vari (scomposizione fattori primi, permutazioni, ...), progetti software didattici con documentazioni. Tutto qui : http://pierprogramm.altervista.org/wordpress
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti