Ubuntu: da dove iniziare per programmare?

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Ubuntu: da dove iniziare per programmare?

Messaggio da P_1_6 »

Ciao
vorrei iniziare ad imparare ubuntu lato sviluppatore.
Ho soltanto una piccola conoscenza del linguaggio C
Purtroppo non capisco l'inglese.
Da dove inizio?
Avatar utente
steff
Moderatore Globale
Moderatore Globale
Messaggi: 40301
Iscrizione: domenica 18 febbraio 2007, 19:48
Desktop: LXQt+labwc
Distribuzione: Arch; Debian; Ubuntu Server
Sesso: Maschile
Località: Toscana
Contatti:

Re: UBUNTU - Da dove iniziare?

Messaggio da steff »

Dall'inglese, è la lingua ufficiale in informatica.
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: UBUNTU - Da dove iniziare?

Messaggio da P_1_6 »

Uno dei punti chiave del 2004:
*ogni utente deve poter usare il proprio sistema operativo nella propria lingua;
Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1463
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu22.04

Re: UBUNTU - Da dove iniziare?

Messaggio da Claudio_F »

Ma utente e sviluppatore sono due cose diverse. La maggior parte dei reference aggiornati si trova solo in inglese (e l'inglese strettamente tecnico in lettura non è troppo complicato). In italiano ci si deve accontentare di traduzioni vecchie e incomplete.
daigo

Re: UBUNTU - Da dove iniziare?

Messaggio da daigo »

Claudio_F ha scritto:Ma utente e sviluppatore sono due cose diverse
infatti, io di inglese non ci capisco una cippa , ma come utente, uso il sistema operativo perfettamente in italiano, e quoto steff
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: UBUNTU - Da dove iniziare?

Messaggio da P_1_6 »

ok, vada per l'inglese
da dove inizio?
Emanuele Sorce
Prode Principiante
Messaggi: 105
Iscrizione: lunedì 8 agosto 2016, 12:02
Distribuzione: Ubuntu Touch
Sesso: Maschile

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da Emanuele Sorce »

Un carino e semplice ide che ti gestisce più file e fa da compilatore é geany (trovabile sul Software center), perfetto per imparare a programmare e per gestire piccoli-medi progetti
“Do you pine for the days when men were men and wrote their own device drivers?”
Linus Torvalds
Avatar utente
gnosoz
Prode Principiante
Messaggi: 97
Iscrizione: venerdì 4 gennaio 2013, 14:58
Desktop: xfce
Distribuzione: Xubuntu
Località: London

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da gnosoz »

come linguaggio gli admin suggeriscono python

Io ti consiglio di iniziare dalle basi e capire i concetti di programmazione tramite utilizzo di linguaggi piu' semplici come pascal per esempio.
ho trovato facilmente questa guida.
http://web.tiscali.it/clubinfo/corsoPascal/Pascal01.htm

i linguaggi sono tutti molto simili (qui qualcuno mi mangia) ed intendo che i principi generali non cambiano tra un linguaggio ed un altro.
Troverai nella maggior parte gli stessi costrutti if, then, else, for, while etc..
in pratica quello che cambia sono semplicementa la grammatica e lo stile.
Fanless!! := MB Sharkbay Haswell ULT - CPU Broadwell I7 4560u - GPU Intel HD5000 - 8Gb DDR3 1600Mhz - SSD Msata 256Gb
HDD OS: Windows 10 (30Gb) # Xubuntu 20.04 (primary) (70Gb)

I calzini ci insegnano che non sempre essere fatti l’uno per l’altra significa stare insieme.
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da P_1_6 »

@EmanueleSource
ok vada per geany io usavo gedit
@gnosoz vorrei iniziare dal linguaggio C ed approfondirlo
gentilmente mi date un progetto in C di medie dimensioni da svolgere
con un framework semplice
Avatar utente
gnosoz
Prode Principiante
Messaggi: 97
Iscrizione: venerdì 4 gennaio 2013, 14:58
Desktop: xfce
Distribuzione: Xubuntu
Località: London

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da gnosoz »

Fanless!! := MB Sharkbay Haswell ULT - CPU Broadwell I7 4560u - GPU Intel HD5000 - 8Gb DDR3 1600Mhz - SSD Msata 256Gb
HDD OS: Windows 10 (30Gb) # Xubuntu 20.04 (primary) (70Gb)

I calzini ci insegnano che non sempre essere fatti l’uno per l’altra significa stare insieme.
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da P_1_6 »

Qualcosa in più tipo
interazione col sistema operativo (primi passi)
Avatar utente
gnosoz
Prode Principiante
Messaggi: 97
Iscrizione: venerdì 4 gennaio 2013, 14:58
Desktop: xfce
Distribuzione: Xubuntu
Località: London

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da gnosoz »

ma scusa sai programmare?
puoi scrivermi qui sotto un pezzo di codice ricorsivo?

oppure risolvi questo:
ottieni dall'utente in ingresso numero di pacchi + delle dimensioni in centimetri in formato: numero Lunghezza larghezza Altezza peso
Da queste calcola i vari CW che e' ottenuto con le seguenti divisioni:
CW aereo = CBM/6000
CW stradale = CBM/4000
Calcola anche quale e' applicabile in ognuno dei casi se il CW o il peso grosso.

Come pensi di interagire con il sistema operativo se non conosci perfettamente i costrutti principali?
Anche gli scalatori piu' bravi del mondo sono partiti delle basi e non sono arrivati in cima saltando tappe.
Fanless!! := MB Sharkbay Haswell ULT - CPU Broadwell I7 4560u - GPU Intel HD5000 - 8Gb DDR3 1600Mhz - SSD Msata 256Gb
HDD OS: Windows 10 (30Gb) # Xubuntu 20.04 (primary) (70Gb)

I calzini ci insegnano che non sempre essere fatti l’uno per l’altra significa stare insieme.
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da P_1_6 »

ecco una ricorsione

Codice: Seleziona tutto

int E(int a, int b) {
    if(b == 0)
        return a;
    else
        return E(b, a%b);
}
di quel altro non ho capito niente
Emanuele Sorce
Prode Principiante
Messaggi: 105
Iscrizione: lunedì 8 agosto 2016, 12:02
Distribuzione: Ubuntu Touch
Sesso: Maschile

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da Emanuele Sorce »

Anchio sono partito dal C.
Le mie tappe furono (saltando tappe ed esercizi in mezzo)
1) Hello world
2) Tris imbattibile
3) Gioco della vita di conway
.....
Puntati degli obiettivi graduali ma fissi e non arrenderti.
“Do you pine for the days when men were men and wrote their own device drivers?”
Linus Torvalds
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da P_1_6 »

Fatto tris imbattibile (almeno credo)

Codice: Seleziona tutto

#include <stdio.h>
#include <stdlib.h>
#define fflush(stdin) while ((getchar()) != '\n')
void spiegazione ();
void gioco();
void grafica(char * vettore);
void risposta(int i,char * vettore,int *primamossa);
void evitatris(char *vettore, int primamossa);

int main(){
	char i='a';
	
	spiegazione();
	while(i!='i'){
		printf("\ndigita 'i' per iniziare:\n");
		scanf("%c",&i);
		fflush(stdin);
	}
	printf("il tuo segno è 'X'\n");
	gioco();

}

void grafica(char *vettore){
	
printf("\n---------------- \n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[0],vettore[1],vettore[2]);
  printf("----------------\n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[3],vettore[4],vettore[5]);
  printf("----------------\n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[6],vettore[7],vettore[8]);
  printf("----------------\n");
  
}



void gioco(){
	int primamossa=1;
	int i=0;
	char scelta='y';
	char vettore[9]={' ',' ',' ',' ',' ',' ',' ',' ',' '}; 

	grafica(vettore);
	for (i=0;i<=4;i++){
		printf("Scegli la casella vuota (non sono previsti errori):");
		scanf("%c",&scelta);
		fflush(stdin);
		if (scelta=='a'){
			vettore[0]='X';		
		}		
		else if (scelta=='b'){
			vettore[1]='X';		
		}
		else if (scelta=='c'){
			vettore[2]='X';		
		}
		else if (scelta=='d'){
			vettore[3]='X';		
		}
		else if (scelta=='e'){
			vettore[4]='X';		
		}
		else if (scelta=='f'){
			vettore[5]='X';		
		}
		else if (scelta=='g'){
			vettore[6]='X';		
		}
		else if (scelta=='h'){
			vettore[7]='X';		
		}
		else if (scelta=='i'){
			vettore[8]='X';		
		}	
		risposta(i,vettore,&primamossa);
		grafica(vettore);

	}

}



void risposta(int i,char * vettore, int *primamossa){

if(i==0){
	if(vettore[0]=='X'|| vettore[2]=='X'||vettore[6]=='X'||vettore[8]=='X'){
		vettore[4]='O';
		*primamossa=0;
		return;
	}
	else if(vettore[4]=='X'||vettore[1]=='X'|| vettore[3]=='X'){
		vettore[0]='O';
		return;
	}else if(vettore[4]=='X'){
		vettore[0]='O';
		return;
	}else if(vettore[5]=='X' || vettore[7]=='X'){
		vettore[8]='O';
		return;
	}
	


}
else {
	evitatris(vettore,*primamossa);
	return;
}

}

void evitatris(char *vettore, int primamossa){
if(vettore[0]=='X'&& vettore[1]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[2]=='X'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[1]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[3]=='X'&& vettore[4]=='X'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[5]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[5]=='X'&& vettore[4]=='X'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[7]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[8]=='X'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[8]=='X'&& vettore[7]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
//********************************************************//
else if(vettore[0]=='X'&& vettore[3]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[6]=='X'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[3]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[1]=='X'&& vettore[4]=='X'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[1]=='X'&& vettore[7]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[7]=='X'&& vettore[4]=='X'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[5]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[8]=='X'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[5]=='X'&& vettore[8]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
/**************************************************/
else if(vettore[0]=='X'&& vettore[4]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[8]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[8]=='X'&& vettore[4]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[4]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[6]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[4]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else{
	if(vettore[2]=='X'&& vettore[6]=='X'){
		vettore[1]='O';	
		return;
	}
	else if(vettore[2]=='X'&& vettore[5]=='X'){
		vettore[4]='O';	
		return;
	}
	int i=0;
	while(vettore[i]!=' '){
		i++;
	}
	if(primamossa==1){
		i++;
		while(vettore[i]!=' '){
			i++;
		}
		
	}
	vettore[i]='O';
	return;	
}
}

void spiegazione (){
	char vettore[9]={'a','b','c','d','e','f','g','h','i'}; 
	printf("\nQuesto è il gioco del tris.\nLe caselle sono identificate da una lettera.\nSe vuoi inserire ad esempio nella prima casella devi digitare la lettera 'a' è premere invio\n");
	grafica(vettore);
}
Sembra facile

Codice: Seleziona tutto

#include <stdio.h>
#include <stdlib.h>
#define fflush(stdin) while ((getchar()) != '\n')
void spiegazione ();
void gioco();
void grafica(char * vettore);
void risposta(int i,char * vettore,int *primamossa);
void evitatris(char *vettore, int primamossa);

int main(){
	char i='a';
	
	spiegazione();
	while(i!='i'){
		printf("\ndigita 'i' per iniziare:\n");
		scanf("%c",&i);
		fflush(stdin);
	}
	printf("il tuo segno è 'X'\n");
	gioco();

}

void grafica(char *vettore){
	
printf("\n---------------- \n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[0],vettore[1],vettore[2]);
  printf("----------------\n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[3],vettore[4],vettore[5]);
  printf("----------------\n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[6],vettore[7],vettore[8]);
  printf("----------------\n");
  
}



void gioco(){
	int primamossa=1;
	int i=0;
	char scelta='y';
	char vettore[9]={' ',' ',' ',' ',' ',' ',' ',' ',' '}; 

	grafica(vettore);
	for (i=0;i<=4;i++){
		printf("Scegli la casella vuota (non sono previsti errori):");
		scanf("%c",&scelta);
		fflush(stdin);
		if (scelta=='a'){
			vettore[0]='X';		
		}		
		else if (scelta=='b'){
			vettore[1]='X';		
		}
		else if (scelta=='c'){
			vettore[2]='X';		
		}
		else if (scelta=='d'){
			vettore[3]='X';		
		}
		else if (scelta=='e'){
			vettore[4]='X';		
		}
		else if (scelta=='f'){
			vettore[5]='X';		
		}
		else if (scelta=='g'){
			vettore[6]='X';		
		}
		else if (scelta=='h'){
			vettore[7]='X';		
		}
		else if (scelta=='i'){
			vettore[8]='X';		
		}	
		risposta(i,vettore,&primamossa);
		grafica(vettore);

	}

}



void risposta(int i,char * vettore, int *primamossa){

if(i==0){
	if(vettore[0]=='X'|| vettore[2]=='X'||vettore[6]=='X'||vettore[8]=='X'){
		vettore[4]='O';
		*primamossa=0;
		return;
	}
	else if(vettore[4]=='X'||vettore[1]=='X'|| vettore[3]=='X'){
		vettore[0]='O';
		return;
	}else if(vettore[4]=='X'){
		vettore[0]='O';
		return;
	}else if(vettore[5]=='X' || vettore[7]=='X'){
		vettore[8]='O';
		return;
	}
	


}
else {
	evitatris(vettore,*primamossa);
	return;
}

}

void evitatris(char *vettore, int primamossa){
if(vettore[0]=='X'&& vettore[1]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[2]=='X'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[1]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[3]=='X'&& vettore[4]=='X'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[5]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[5]=='X'&& vettore[4]=='X'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[7]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[8]=='X'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[8]=='X'&& vettore[7]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
//********************************************************//
else if(vettore[0]=='X'&& vettore[3]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[6]=='X'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[3]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[1]=='X'&& vettore[4]=='X'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[1]=='X'&& vettore[7]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[7]=='X'&& vettore[4]=='X'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[5]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[8]=='X'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[5]=='X'&& vettore[8]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
/**************************************************/
else if(vettore[0]=='X'&& vettore[4]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[8]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[8]=='X'&& vettore[4]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[4]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[6]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[4]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else{
	if(vettore[2]=='X'&& vettore[6]=='X'){
		vettore[1]='O';	
		return;
	}
	else if(vettore[2]=='X'&& vettore[5]=='X'){
		vettore[4]='O';	
		return;
	}
	if(vettore[5]=='X'&& vettore[6]=='X'){
		vettore[8]='O';	
		return;
	}
	else if(vettore[0]=='X'&& vettore[7]=='X'){
		vettore[5]='O';	
		return;
	}	
	
	int i=0;
	while(vettore[i]!=' '){
		i++;
	}
	if(primamossa==1){
		i++;
		while(vettore[i]!=' '){
			i++;
		}
		
	}
	vettore[i]='O';
	return;	
}
}

void spiegazione (){
	char vettore[9]={'a','b','c','d','e','f','g','h','i'}; 
	printf("\nQuesto è il gioco del tris.\nLe caselle sono identificate da una lettera.\nSe vuoi inserire ad esempio nella prima casella devi digitare la lettera 'a' è premere invio\n");
	grafica(vettore);
}
sembra facile
--------------------------------------------------------------------------
EDIT: manca la parte per farlo vincere
----------------------------------------------------------------------

Inserita (ora è imbattibile provare per credere)

Codice: Seleziona tutto

#include <stdio.h>
#include <stdlib.h>
#define fflush(stdin) while ((getchar()) != '\n')
void spiegazione ();
void gioco();
void grafica(char * vettore);
void risposta(int i,char * vettore,int *primamossa);
void evitatris(char *vettore, int primamossa);

int main(){
	char i='a';
	
	spiegazione();
	while(i!='i'){
		printf("\ndigita 'i' per iniziare:\n");
		scanf("%c",&i);
		fflush(stdin);
	}
	printf("il tuo segno è 'X'\n");
	gioco();

}

void grafica(char *vettore){
	
printf("\n---------------- \n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[0],vettore[1],vettore[2]);
  printf("----------------\n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[3],vettore[4],vettore[5]);
  printf("----------------\n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[6],vettore[7],vettore[8]);
  printf("----------------\n");
  
}



void gioco(){
	int primamossa=1;
	int i=0;
	char scelta='y';
	char vettore[9]={' ',' ',' ',' ',' ',' ',' ',' ',' '}; 

	grafica(vettore);
	for (i=0;i<=4;i++){
		printf("Scegli la casella vuota (non sono previsti errori):");
		scanf("%c",&scelta);
		fflush(stdin);
		if (scelta=='a'){
			vettore[0]='X';		
		}		
		else if (scelta=='b'){
			vettore[1]='X';		
		}
		else if (scelta=='c'){
			vettore[2]='X';		
		}
		else if (scelta=='d'){
			vettore[3]='X';		
		}
		else if (scelta=='e'){
			vettore[4]='X';		
		}
		else if (scelta=='f'){
			vettore[5]='X';		
		}
		else if (scelta=='g'){
			vettore[6]='X';		
		}
		else if (scelta=='h'){
			vettore[7]='X';		
		}
		else if (scelta=='i'){
			vettore[8]='X';		
		}	
		risposta(i,vettore,&primamossa);
		grafica(vettore);

	}

}



void risposta(int i,char * vettore, int *primamossa){

if(i==0){
	if(vettore[0]=='X'|| vettore[2]=='X'||vettore[6]=='X'||vettore[8]=='X'){
		vettore[4]='O';
		*primamossa=0;
		return;
	}
	else if(vettore[4]=='X'||vettore[1]=='X'|| vettore[3]=='X'){
		vettore[0]='O';
		return;
	}else if(vettore[4]=='X'){
		vettore[0]='O';
		return;
	}else if(vettore[5]=='X' || vettore[7]=='X'){
		vettore[8]='O';
		return;
	}
	


}
else {
	evitatris(vettore,*primamossa);
	return;
}

}

void evitatris(char *vettore, int primamossa){

if(vettore[0]=='O'&& vettore[1]=='O'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else if(vettore[0]=='O'&& vettore[2]=='O'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[1]=='O'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[3]=='O'&& vettore[4]=='O'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[0]=='O'&& vettore[5]=='O'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[5]=='O'&& vettore[4]=='O'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='O'&& vettore[7]=='O'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[6]=='O'&& vettore[8]=='O'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[8]=='O'&& vettore[7]=='O'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
//********************************************************//
else if(vettore[0]=='O'&& vettore[3]=='O'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[0]=='O'&& vettore[6]=='O'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='O'&& vettore[3]=='O'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[1]=='O'&& vettore[4]=='O'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[1]=='O'&& vettore[7]=='O'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[7]=='O'&& vettore[4]=='O'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[5]=='O'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[8]=='O'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[5]=='O'&& vettore[8]=='O'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
/**************************************************/
else if(vettore[0]=='O'&& vettore[4]=='O'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[0]=='O'&& vettore[8]=='O'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[8]=='O'&& vettore[4]=='O'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[4]=='O'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[6]=='O'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[6]=='O'&& vettore[4]=='O'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}


/*****************************************************/
if(vettore[0]=='X'&& vettore[1]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[2]=='X'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[1]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[3]=='X'&& vettore[4]=='X'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[5]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[5]=='X'&& vettore[4]=='X'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[7]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[8]=='X'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[8]=='X'&& vettore[7]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
//********************************************************//
else if(vettore[0]=='X'&& vettore[3]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[6]=='X'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[3]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[1]=='X'&& vettore[4]=='X'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[1]=='X'&& vettore[7]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[7]=='X'&& vettore[4]=='X'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[5]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[8]=='X'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[5]=='X'&& vettore[8]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
/**************************************************/
else if(vettore[0]=='X'&& vettore[4]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[8]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[8]=='X'&& vettore[4]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[4]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[6]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[4]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else{
	if(vettore[2]=='X'&& vettore[6]=='X'){
		vettore[1]='O';	
		return;
	}
	else if(vettore[2]=='X'&& vettore[5]=='X'){
		vettore[4]='O';	
		return;
	}
	if(vettore[5]=='X'&& vettore[6]=='X'){
		vettore[8]='O';	
		return;
	}
	else if(vettore[0]=='X'&& vettore[7]=='X'){
		vettore[5]='O';	
		return;
	}	
	
	int i=0;
	while(vettore[i]!=' '){
		i++;
	}
	if(primamossa==1){
		i++;
		while(vettore[i]!=' '){
			i++;
		}
		
	}
	vettore[i]='O';
	return;	
}
}

void spiegazione (){
	char vettore[9]={'a','b','c','d','e','f','g','h','i'}; 
	printf("\nQuesto è il gioco del tris.\nLe caselle sono identificate da una lettera.\nSe vuoi inserire ad esempio nella prima casella devi digitare la lettera 'a' è premere invio\n");
	grafica(vettore);
}
Infatti c'era un bug

Codice: Seleziona tutto

#include <stdio.h>
#include <stdlib.h>
#define fflush(stdin) while ((getchar()) != '\n')
void spiegazione ();
void gioco();
void grafica(char * vettore);
void risposta(int i,char * vettore,int *primamossa);
void evitatris(char *vettore, int primamossa);

int main(){
	char i='a';
	
	spiegazione();
	while(i!='i'){
		printf("\ndigita 'i' per iniziare:\n");
		scanf("%c",&i);
		fflush(stdin);
	}
	printf("il tuo segno è 'X'\n");
	gioco();

}

void grafica(char *vettore){
	
printf("\n---------------- \n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[0],vettore[1],vettore[2]);
  printf("----------------\n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[3],vettore[4],vettore[5]);
  printf("----------------\n");
  printf("|    |    |    |\n");
  printf("| %c  | %c  | %C  |\n", vettore[6],vettore[7],vettore[8]);
  printf("----------------\n");
  
}



void gioco(){
	int primamossa=1;
	int i=0;
	char scelta='y';
	char vettore[9]={' ',' ',' ',' ',' ',' ',' ',' ',' '}; 

	grafica(vettore);
	for (i=0;i<=4;i++){
		printf("Scegli la casella vuota (non sono previsti errori):");
		scanf("%c",&scelta);
		fflush(stdin);
		if (scelta=='a'){
			vettore[0]='X';		
		}		
		else if (scelta=='b'){
			vettore[1]='X';		
		}
		else if (scelta=='c'){
			vettore[2]='X';		
		}
		else if (scelta=='d'){
			vettore[3]='X';		
		}
		else if (scelta=='e'){
			vettore[4]='X';		
		}
		else if (scelta=='f'){
			vettore[5]='X';		
		}
		else if (scelta=='g'){
			vettore[6]='X';		
		}
		else if (scelta=='h'){
			vettore[7]='X';		
		}
		else if (scelta=='i'){
			vettore[8]='X';		
		}	
		risposta(i,vettore,&primamossa);
		grafica(vettore);

	}

}



void risposta(int i,char * vettore, int *primamossa){

if(i==0){
	if(vettore[0]=='X'|| vettore[2]=='X'||vettore[6]=='X'||vettore[8]=='X'){
		vettore[4]='O';
		*primamossa=0;
		return;
	}
	else if(vettore[4]=='X'||vettore[1]=='X'|| vettore[3]=='X'){
		vettore[0]='O';
		return;
	}else if(vettore[4]=='X'){
		vettore[0]='O';
		return;
	}else if(vettore[5]=='X' || vettore[7]=='X'){
		vettore[8]='O';
		return;
	}
	


}
else {
	evitatris(vettore,*primamossa);
	return;
}

}

void evitatris(char *vettore, int primamossa){

if(vettore[0]=='O'&& vettore[1]=='O'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else if(vettore[0]=='O'&& vettore[2]=='O'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[1]=='O'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[3]=='O'&& vettore[4]=='O'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[3]=='O'&& vettore[5]=='O'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[5]=='O'&& vettore[4]=='O'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='O'&& vettore[7]=='O'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[6]=='O'&& vettore[8]=='O'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[8]=='O'&& vettore[7]=='O'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
//********************************************************//
else if(vettore[0]=='O'&& vettore[3]=='O'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[0]=='O'&& vettore[6]=='O'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='O'&& vettore[3]=='O'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[1]=='O'&& vettore[4]=='O'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[1]=='O'&& vettore[7]=='O'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[7]=='O'&& vettore[4]=='O'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[5]=='O'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[8]=='O'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[5]=='O'&& vettore[8]=='O'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
/**************************************************/
else if(vettore[0]=='O'&& vettore[4]=='O'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[0]=='O'&& vettore[8]=='O'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[8]=='O'&& vettore[4]=='O'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[4]=='O'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[2]=='O'&& vettore[6]=='O'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[6]=='O'&& vettore[4]=='O'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}


/*****************************************************/
if(vettore[0]=='X'&& vettore[1]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[2]=='X'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[1]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[3]=='X'&& vettore[4]=='X'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[3]=='X'&& vettore[5]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[5]=='X'&& vettore[4]=='X'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[7]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[8]=='X'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[8]=='X'&& vettore[7]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
//********************************************************//
else if(vettore[0]=='X'&& vettore[3]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[6]=='X'&& vettore[3]==' '){
	vettore[3]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[3]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[1]=='X'&& vettore[4]=='X'&& vettore[7]==' '){
	vettore[7]='O';
	return;
}
else if(vettore[1]=='X'&& vettore[7]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[7]=='X'&& vettore[4]=='X'&& vettore[1]==' '){
	vettore[1]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[5]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[8]=='X'&& vettore[5]==' '){
	vettore[5]='O';
	return;
}
else if(vettore[5]=='X'&& vettore[8]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
/**************************************************/
else if(vettore[0]=='X'&& vettore[4]=='X'&& vettore[8]==' '){
	vettore[8]='O';
	return;
}
else if(vettore[0]=='X'&& vettore[8]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[8]=='X'&& vettore[4]=='X'&& vettore[0]==' '){
	vettore[0]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[4]=='X'&& vettore[6]==' '){
	vettore[6]='O';
	return;
}
else if(vettore[2]=='X'&& vettore[6]=='X'&& vettore[4]==' '){
	vettore[4]='O';
	return;
}
else if(vettore[6]=='X'&& vettore[4]=='X'&& vettore[2]==' '){
	vettore[2]='O';
	return;
}
else{
	if(vettore[2]=='X'&& vettore[6]=='X'){
		vettore[1]='O';	
		return;
	}
	else if(vettore[2]=='X'&& vettore[5]=='X'){
		vettore[4]='O';	
		return;
	}
	if(vettore[5]=='X'&& vettore[6]=='X'){
		vettore[8]='O';	
		return;
	}
	else if(vettore[0]=='X'&& vettore[7]=='X'){
		vettore[5]='O';	
		return;
	}	
	
	int i=0;
	while(vettore[i]!=' '){
		i++;
	}
	if(primamossa==1){
		i++;
		while(vettore[i]!=' '){
			i++;
		}
		
	}
	vettore[i]='O';
	return;	
}
}

void spiegazione (){
	char vettore[9]={'a','b','c','d','e','f','g','h','i'}; 
	printf("\nQuesto è il gioco del tris.\nLe caselle sono identificate da una lettera.\nSe vuoi inserire ad esempio nella prima casella devi digitare la lettera 'a' è premere invio\n");
	grafica(vettore);
}
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da SuperStep »

provo a dare una risposta anche io.

imho ogni linguaggio di programmazione è diverso, e viene applicato in principi diversi; quando dici di voler programmare per ubuntu stai affrontando un'enorme gigante che è il so Ubuntu, partendo dal kernel modificato, a come gestisce i pacchetti, ai servizi, all'ui, etc etc.

con il linguaggio C puoi fare il 100% delle cose; ma spenderai il 900% in più del tempo per farle. C è un ottimo linguaggio, ma se devi sviluppare da solo un intero progetto te lo sconsiglio, rimarrai sommerso dal tuo stesso codice.

C++ associato ad un buon framework è già diverso, adesso Ubuntu (e non solo) utilizza il framework Qt per fare molti dei suoi progetti (Come unity).

1) La prima cosa se vuoi diventare un buon programmatore è prendere dimestichezza con la shell, in modo da automatizzare e risolvere tutti quei problemi che devi affrontare durante la gestione di un progetto.
2) imparare cos'è un software di controllo versione (git, bazar, svn, ...) e come utilizzarlo per gestire i progetti al meglio
3) Adeguarsi ad uno stile di programmazione mantenendo il codice e la documentazione quanto più vicino allo stile in modo da non confondere te stesso e chi legge il tuo codice.

questa è una piccola base per avere le capacità di creare e mantenere un progetto (anche su Ubuntu).
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da P_1_6 »

ok
ho imparato
c
c++
e un po d'inglese
dove posso trovare la documentazione di come funziona un sistema operativo ed in particolare Ubuntu? (possibilmente da zero)
John_Marco
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 311
Iscrizione: martedì 5 maggio 2009, 19:55
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS X86_64
Sesso: Maschile
Località: Potenza - Roma

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da John_Marco »

Ciao,
in testa alla sezione"Programmazione" vedrai un post dal titolo "Libri di informatica scaricabili gratuitamente". Nella prima pagina di discussione ci sono link ad un sacco di materiale, magari trovi qualcosa di interessante
P_1_6
Prode Principiante
Messaggi: 20
Iscrizione: giovedì 25 dicembre 2014, 23:01
Distribuzione: Ubuntu 15.10 i686

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da P_1_6 »

Hey garazie
sto seguendo questo libro http://codex.altervista.org/introlinux.html
credete sia un po datato o è valido lo stesso?
DavideDaSerra
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 349
Iscrizione: domenica 15 febbraio 2009, 15:26
Desktop: xubuntu
Distribuzione: Ubuntu12.10 x86_64
Località: Da qualche parte in quel di Modena

Re: Ubuntu: da dove iniziare per programmare?

Messaggio da DavideDaSerra »

per quanto riguarda il python, ti consiglio queste lezioni, di un corso di fondamenti di informatica, parte decisamente dal principio, lo ritengo valido per fare amicizia col python.

Per quanto riguarda i libri questo è quello su cui ho studiato:
sistemi operativi - progetto e implementazione ( Tanenbaum ). Credo che come prestito in biblioteca sia trovabile (almeno come prestito interbibliotecario)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: nik1404 e 6 ospiti