PDA

Visualizza la versione completa : [C] Calcoli e operazioni sugli insiemi


raffaellomar
09-12-2009, 09:25
salve, qualcuno mi è di aiuto? vorrei realizzare un semplice programma in c ANSI che faccia le seguenti funzioni:
1-La prima funzione restituisce un insieme acquisito da tastiera.
2-La seconda funzione ha come parametro di ingresso un insieme e lo stampa a video.
3-La terza funzione ha come parametri di ingresso due insiemi e restituisce la loro unione.
4-La quarta funzione ha come parametri di ingresso due insiemi e restituisce la loro intersezione.
5-La quinta funzione ha come parametri di ingresso due insiemi e restituisce la loro differenza.

Sono ...abbastanza nuovo di C e non so da dove cominciare!

devel
09-12-2009, 09:31
Io inizierei dallo studio di C ... ancor prima di fare questi programmi inizia con la somma di due elementi a e b .. studiando passo passo cio' che stai facendo. Amplia poi il programma pian piano che studi altri costrutti.

Non credo che l'aiuto che cerchi *scriverti* l'algoritmo sia una cosa garantita, quindi armati di voglia di studio.

P.S Consiglio, scrivi qualcosa su cui ci si puo' pensare qualcosa.

raffaellomar
09-12-2009, 09:44
lo sto già facendo..eccome
questo è un programma che ho realizzato e che moltipilca le prime 3 cifre dando come risultato la 4° cifra.
puo' essere un inizio? utilizzo linux fedora, vim,gcc grazie in anticipo.


/*
* programma che moltiplica tre cifre di valore decimale
*/
#include<stdio.h>
int main(void)
{

/*questi sono gli identificatori del tipo double in questo caso*/
double cifra1, cifra2, cifra3, cifra4;

/*ora chiediamo di digitare il valore prova1*/
printf("inserire il valore di cifra1:");

/* la funzione scanf permette di inserire dei valori %f valore intero in questo caso*/
scanf("%lf",
&cifra1);

printf("inserire il valore di cifra2:");
scanf("%lf",
&cifra2);

printf("inserire il valore di cifra3:");
scanf("%lf",
&cifra3);

cifra4 = cifra1 * cifra2 * cifra3;

/* chiediamo di troncare il risultato alla seconda cifra */
printf("il totale cifra4 e' : %.2f\n",cifra4);
return 0;
}

devel
09-12-2009, 09:57
E' gia' un inizio... ma cerchiamo di capire con calma cosa hai scritto e perche':

int main(void) Perche' hai scritto cosi'?

scanf("%lf", &cifra1); Ho notato l'utilizzo di %lf sai a cosa serve? Se' si potevi farlo in maniera ancora piu' semplice?? (P.S Non e' sbagliato ma perche' usarlo ai fini di un esercizio?)

return 0 Perche' hai usato il Return? Qual e' la sua funzione?

[...] Altre cose...

L'utilizzo di una distribuzione - e simili non vuol dire nulla, puoi usare un block notes o un foglio e una penna.

Ecco come avrei iniziato io un programma semplice:



/*Somma di due variabili e stampa a video*/
#include <stdio.h> /*Direttive del compilatore*/

main () {
int a=2; /*Inizializzazione delle variabili a,b,c*/
int b=2; /*Sono degli interi int*/
int c=0;
printf("Somma di a e b\n"); /*Funzione di printf - stampa a video*/
c=a+b; /*Somma*/
printf("Risultato: %d\n",c); /*Stampa a video di un intero: %d*/
system("PAUSE");
}


P.S Quelli di Html.it mi uccideranno per l'indecenza :x

raffaellomar
09-12-2009, 10:32
non so se dipende dalla versione di gcc o che altro ma devo scrive (void) altrimenti non lo compila, cosi' come devo aggiungere return(0) alla fine .

scanf credo che sia una funzione liberria che serve per acquisire dati da tastiera, e "%lf" per indicargli che il valore sarà del tipo decimale in virgola fissa.

queste sono nozioni prese da manuali cosi' come le ho capite io......... '-)



/*Somma di due variabili e stampa a video*/
#include <stdio.h> /*Direttive del compilatore*/

int main()
{
int a=2; /*Inizializzazione delle variabili a,b,c*/
int b=2; /*Sono degli interi int*/
int c=0;
printf("Somma di a e b\n"); /*Funzione di printf - stampa a video*/
c=a+b; /*Somma*/
printf("Risultato: %d\n",c); /*Stampa a video di un intero: %d*/
return(0);
}

alka
09-12-2009, 11:34
Originariamente inviato da raffaellomar
programmino c

Suggerisco di usare titoli più significativi per le future discussioni, come indicato nel Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

Il titolo di questa discussione l'ho corretto io.

MacApp
09-12-2009, 15:43
Originariamente inviato da devel

Ecco come avrei iniziato io un programma semplice:



/*Somma di due variabili e stampa a video*/
#include <stdio.h> /*Direttive del compilatore*/

main () {
int a=2; /*Inizializzazione delle variabili a,b,c*/
int b=2; /*Sono degli interi int*/
int c=0;
printf("Somma di a e b\n"); /*Funzione di printf - stampa a video*/
c=a+b; /*Somma*/
printf("Risultato: %d\n",c); /*Stampa a video di un intero: %d*/
system("PAUSE");
}



che genera i seguenti:


$ gcc --version
i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)

$ gcc -Wall -ansi -pedantic -Wextra -Wconversion main.c
main.c:4: warning: return type defaults to 'int'
main.c: In function 'main':
main.c:11: warning: implicit declaration of function 'system'
main.c:12: warning: control reaches end of non-void function

ant_alt
09-12-2009, 15:57
Originariamente inviato da MacApp
che genera i seguenti:


chiaramente devel è su windows, per questo la funzione system non va usata se serve solo per mettere in attesa il programma.
si usa getchar();
e poi il main deve restituire un int

Loading