Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Consiglio su codice in C

    Salve mi sono appena registrato! Premetto che studio il linguaggio C da qualche mese e stavo scrivendo questo programma che dovrebbe controllare il teorico funzionamento di un cancello.
    C'è però un errore logico che non so risolvere ovvero alla fine del primo ciclo la variabile STAT sembra ritornare a valore CANC_C (0) mentre dovrebbe essere CANC_A(1). Cosa sbaglio?
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define INTERR_OFF 0
    #define INTERR_ON 1
    #define FOT_C 1  //fotocellula coperta//
    #define FOT_L 0  //fotocellula libera//
    #define CANC_C 0 //cancello chiuso//
    #define CANC_A 1 //cancello aperto//
    #define SWITCH_A 1 //interruttore per aprire//
    #define SWITCH_C 0 //interr. per chiudere//
    
    int main(int argc, char *argv[])
    {
      int FOT,STAT,PAUS,SWITCH,INTERR;
      FOT = FOT_L; STAT = CANC_C;
      INTERR = INTERR_ON;
      while(INTERR==INTERR_ON)
      {
         printf("SELEZIONA STATO DEL CANCELLO: \n");
         scanf("%d",&SWITCH);
         switch(SWITCH)
         { case SWITCH_A:
              STAT==CANC_A;
              printf("Il cancello è stato aperto.\n");
              break;
           case SWITCH_C:
              if(STAT==CANC_A)
              {
                     printf("Inserisci lo stato della fotocellula: \n.");
                     scanf("%d",&FOT);         
                     switch(FOT)
                     {
                          case FOT_L:
                              printf("Il cancello è stato chiuso.\n");
                              STAT==CANC_C;   
                              break;
                          case FOT_C:
                              printf("C'è un ostacolo vicino al cancello impossibile chiudere!\n");
                              STAT==CANC_A;
                              break;
                     }                      
              }       
              else
              {
                     printf("Il cancello è gia' chiuso!\n");
              }          
              break;      
         }
         printf("Aggiorna lo stato del cancello (spegni sistema o lascialo acceso): \n");
         scanf("%d",&INTERR);
      }  
      printf("IL SISTEMA E' SPENTO CANCELLO NON FUNZIONANTE!\n");        
      
      system("PAUSE");	
      return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    In C questo

    STAT==CANC_A;

    si scrive

    STAT=CANC_A;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    Moderazione

    Tra parentesi, il codice va incluso tra tag [code] ... [/code], altrimenti perde la formattazione; ora sistemo io, in futuro ricordatene.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4

    Re: Moderazione

    Originariamente inviato da MItaly
    Tra parentesi, il codice va incluso tra tag [code] ... [/code], altrimenti perde la formattazione; ora sistemo io, in futuro ricordatene.
    grazie milleXD

  5. #5
    Originariamente inviato da oregon
    In C questo

    STAT==CANC_A;

    si scrive

    STAT=CANC_A;
    Grazie del consiglio!!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da simobest400
    Grazie del consiglio!!
    Non era solo un consiglio ... devi proprio correggere tutte quelle linee altrimenti il progamma non funzionerà correttamente.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da simobest400
    Grazie del consiglio!!
    okok adesso va grazie mille

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 © 2024 vBulletin Solutions, Inc. All rights reserved.