Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Programma di Calcolo in C

    Ciao a tutti questa è la prima volta che scrivo in questo forum e spero di riceve un vostro aiuto.
    Per domani dovrei fare un programma in C che calcoli le permutazioni, le disposizioni e combinazioni, inserendo n e k. In un secondo momento devo chiedere se si vogliono effettuare le permutazioni, le disposizioni e combinazioni con permutazioni. Io ho fatto così però non mi funziona e sto per entrare in tilt!!!!!
    In pratica dove aver chiesto cosa si vuole calcolare si chiude il programma, e non so come risolvere!! Vi prego aiutatemiii

    codice:
     #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include<conio.h>
    main(){
    int n,k,p,c,d,pr,fn,fk,fkn,fkn1,fn1,pow,b,i,cr;
    char a,risp,si,no,ff,fnk,nk,dr,potenza,fnk1;
    printf("Inserisci n");
    scanf("%d",&n);
    printf("Inserisci k");
    scanf("%d",&k);
    if(n>k){
    printf("Quale operazione vuoi effettuare?\n");
    printf("Premi 'p' per calcolare le permutazioni");
    printf("\nPremi 'd' per calcolare le disposizioni");
    printf("\nPremi 'c' per calcolare le combinazioni\n");
    getch ();
    if(a=='p'){
    fn=1;
    for(i=1;i<=n;i++){
    fn=i*n;
    }
    printf("vuoi calcolare anche le permutazioni con ripetizioni? si/no");
    scanf("%c",risp);
    if (risp==si){
    fn=1;
    for(i=1;i<=n;i++){
    fn=i*n;}
    "ff";
    pr=fn/ff;
    }
    
    else if (a=='d'){
    fn=i;
    for(i=1;i<=n;i++){
    fn=i*n;}
    fnk=1;
    for(i=1;i<=nk;i++){
    fnk=i*nk;}
    d=fn/fnk;}
    printf("vuoi calcolare anche le disposizioni con ripetizione? si/no");
    scanf("%c",risp);
    if (risp==si)
    {
    dr=n*k;
    }
    else if (a=='c') {
    fn=1;
    for(i=1;i<=n;i++) {
    fn=i*n;}
    fnk=1;
    for(i=1;i<=nk;i++){
    nk=(i*nk);}
    fk=1;
    for(i=1;i<=k;i++){
    fk=i*k;}
    c=fn/(fnk*fk);}
    printf("vuoi calcolare anche le combinazioni con ripetizioni? si/no");
    scanf("%c",risp);
    if (risp==si)
    {
    b=n+k-1;
    fnk1=1;
    for(i=1;i<=b;i++){
    fnk1=i*fnk1;}
    fk=1;
    for(i=1;i<=fk;i++){
    fk=i*fk;}
    fn1=1;
    for(i=1;i<=fn1;i++){
    fn1=i*fn1;}
    cr=fnk1/(fk*fn1);}
    getch();
    }
    }
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,841

    Moderazione

    Usa il tag [CODE] per riportare il codice, come indicato nel Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Delphi Succinctly (e-book)

  3. #3
    fatto ^^

  4. #4
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    550

    non ho idea di cosa faccia il programma

    hai un getch ma non assegni il carattere letto alla variabile a.


    Sai cosa credo , credo che hai appositamente postato il codice con quell'errore non so per
    quale motivo!


    non vuoi stampare i risultati in output ?

    qualche correzione


    codice:
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include<conio.h>
    main(){
    int n,k,p,c,d,pr,fn,fk,fkn,fkn1,fn1,pow,b,i,cr;
    char a,risp,si,no,ff,fnk,nk,dr,potenza,fnk1;
    printf("Inserisci n");
    scanf("%d",&n);
    printf("Inserisci k");
    scanf("%d",&k);
    if(n>k){
    	printf("Quale operazione vuoi effettuare?\n");
    	printf("Premi 'p' per calcolare le permutazioni");
    	printf("\nPremi 'd' per calcolare le disposizioni");
    	printf("\nPremi 'c' per calcolare le combinazioni\n");
    
    	fflush(stdin); // meglio metterlo
    	scanf("%1s",&a); // non mi funzionava con getch()
    
    	if(a=='p'){
    	fn=1;
    	for(i=1;i<=n;i++){
    		fn=i*n;
    	}
    	printf("vuoi calcolare anche le permutazioni con ripetizioni? si/no");
    	fflush(stdin);
    	scanf("%c",&risp);// mancava &
    	if (risp=='s'){
    			fn=1;
    			for(i=1;i<=n;i++){
    			fn=i*n;}
    			"ff";
    			pr=fn/ff;
    	}
    
    	else if (a=='d'){
    		fn=i;
    		for(i=1;i<=n;i++){
    			fn=i*n;}
    		fnk=1;
    		for(i=1;i<=nk;i++){
    			fnk=i*nk;}
    		d=fn/fnk;}
    	printf("vuoi calcolare anche le disposizioni con ripetizione? si/no");
    	fflush(stdin);
    	scanf("%c",&risp);// mancava &
    	if (risp=='s')
    	{
    		dr=n*k;
    	}
    	else if (a=='c') {
    			fn=1;
    			for(i=1;i<=n;i++) {
    					fn=i*n;}
    			fnk=1;
    			for(i=1;i<=nk;i++){
    				nk=(i*nk);}
    			fk=1;
    			for(i=1;i<=k;i++){
    				fk=i*k;}
    				c=fn/(fnk*fk);}
    	printf("vuoi calcolare anche le combinazioni con ripetizioni? si/no");
    	fflush(stdin);
    	scanf("%c",&risp); //manca &
    	if (risp=='s) //  prima cera si non puoi confrontare due stringhe con ==
    	{
    			b=n+k-1;
    			fnk1=1;
    			for(i=1;i<=b;i++){
    			fnk1=i*fnk1;}
    			fk=1;
    			for(i=1;i<=fk;i++){
    			fk=i*fk;}
    			fn1=1;
    			for(i=1;i<=fn1;i++){
    			fn1=i*fn1;}
    			cr=fnk1/(fk*fn1);}
    	getch();
    	}
    }
    }


    SPERO CHE LA TUA NON SIA STATA UNA PRESA PER I FONDELLI ma il sospetto ce lo
    Tecnologia

  5. #5
    non sto prendendo per i fondelli nessuno anche perchè ci lavoro da settimane, e comunque ancora il programma non funziona cioè non mi da il risultato

  6. #6
    Il programma allo stato attuale è illeggibile, difficile che qualcuno si prenda la briga di cercare di capire cosa fa. Qualche consiglio:
    1. indenta il codice
    codice:
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include<conio.h>
    
    int main()
    {
        int n,k,p,c,d,pr,fn,fk,fkn,fkn1,fn1,pow,b,i,cr;
        char a,risp,si,no,ff,fnk,nk,dr,potenza,fnk1;
        printf("Inserisci n");
        scanf("%d",&n);
        printf("Inserisci k");
        scanf("%d",&k);
        if(n>k)
        {
            printf("Quale operazione vuoi effettuare?\n");
            printf("Premi 'p' per calcolare le permutazioni");
            printf("\nPremi 'd' per calcolare le disposizioni");
            printf("\nPremi 'c' per calcolare le combinazioni\n");
            getch ();
            if(a=='p')
            {
                fn=1;
                for(i=1; i<=n; i++)
                {
                    fn=i*n;
                }
                printf("vuoi calcolare anche le permutazioni con ripetizioni? si/no");
                scanf("%c",risp);
                if (risp==si)
                {
                    fn=1;
                    for(i=1; i<=n; i++)
                    {
                        fn=i*n;
                    }
                    "ff";
                    pr=fn/ff;
                }
    
                else if (a=='d')
                {
                    fn=i;
                    for(i=1; i<=n; i++)
                    {
                        fn=i*n;
                    }
                    fnk=1;
                    for(i=1; i<=nk; i++)
                    {
                        fnk=i*nk;
                    }
                    d=fn/fnk;
                }
                printf("vuoi calcolare anche le disposizioni con ripetizione? si/no");
                scanf("%c",risp);
                if (risp==si)
                {
                    dr=n*k;
                }
                else if (a=='c')
                {
                    fn=1;
                    for(i=1; i<=n; i++)
                    {
                        fn=i*n;
                    }
                    fnk=1;
                    for(i=1; i<=nk; i++)
                    {
                        nk=(i*nk);
                    }
                    fk=1;
                    for(i=1; i<=k; i++)
                    {
                        fk=i*k;
                    }
                    c=fn/(fnk*fk);
                }
                printf("vuoi calcolare anche le combinazioni con ripetizioni? si/no");
                scanf("%c",risp);
                if (risp==si)
                {
                    b=n+k-1;
                    fnk1=1;
                    for(i=1; i<=b; i++)
                    {
                        fnk1=i*fnk1;
                    }
                    fk=1;
                    for(i=1; i<=fk; i++)
                    {
                        fk=i*fk;
                    }
                    fn1=1;
                    for(i=1; i<=fn1; i++)
                    {
                        fn1=i*fn1;
                    }
                    cr=fnk1/(fk*fn1);
                }
                getch();
            }
        }
    }
    2. spezzalo in procedure separate;
    3. aggiungi commenti;
    4. usa nomi sensati per le variabili.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Scusate,su c++ reference non trovo i prototipi delle funzioni di conio.h,trovo solo esempi già fatti.
    Qual' è il prototipo di una funzione come getch?

  8. #8
    Originariamente inviato da ramy89
    Scusate,su c++ reference non trovo i prototipi delle funzioni di conio.h,trovo solo esempi già fatti.
    Qual' è il prototipo di una funzione come getch?
    conio.h non è standard, se il tuo compilatore lo fornisce dovresti trovarlo nella sua documentazione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Ho provato ad eseguirlo semplicemente,beh è un nuovo metodo per bloccare in flusso delle istruzioni.Basta premere un tasto e il programma riparte.
    Lo potrei scrivere anche con windows.h:

    codice:
    cout <<"Premere F12 per terminare";
    for(;; )
    {
      Sleep(250);
      if(GetAsyncKeyState(WK_F12));
    }
    Con Sleep durante 250 cicli di clock si interrompe il programma e si affida la cpu agli altri processi.
    Direi che per chi usa windows va bene,o no?

  10. #10
    GetAsyncKeyState in linea di massima non andrebbe mai usata; per fare una cosa del genere andrebbero usate le API della console (nello specifico ReadConsoleInput), se hai installato VC++ puoi vedere la sua implementazione di _getch nella cartella dei sorgenti della CRT.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.