Problema con flag

di il
8 risposte

Problema con flag

]Ciao!!
Ho un dubbio , in questo programma in C compare la variabile "flag"; dato che il mio prof non l'ha spiegata , mi potreste dire come posso sostituirla all'interno di questo programma? (codice) Esiste il flag in c++??
 # include <stdlib.h>
#include <stdio.h>
void verificavett(int a[10], int &b)
{
	int i, flag;
	flag = 1;

	for (i = 0; i < 10; i++)
	{
		if (a[i]<a[0] || a[i]>a[9])
		{
			flag = 0;
		}
	}
	if (flag == 0)
	{
		b = -1;
	}
}
if (flag == 1)

	b = 1;
}
int main()
{.... 

8 Risposte

  • Re: Problema con flag

    Per postare del codice sul forum utilizza l'apposito tag (pulsante "Code" nell'editor completo).

    Nella funzione verificavett() c'è qualcosa che non va con le parentesi graffe... se avessi scritto codice indentato te ne saresti accorta da sola.
    Ho un dubbio , in questo programma in C compare la variabile "flag"; dato che il mio prof non l'ha spiegata , mi potreste dire come posso sostituirla all'interno di questo programma? (codice)
    Dovresti essere più chiara quando poni una domanda... da quello che hai scritto non si capisce niente!
    Di preciso cosa non hai capito? Cosa devi fare?

    Sai cosa fa la funzione verificavett()? Anche se il tuo prof non l'ha spiegato dovresti essere in grado di interpretare un codice tanto semplice.
  • Re: Problema con flag

    Nippolo ha scritto:


    Per postare del codice sul forum utilizza l'apposito tag (pulsante "Code" nell'editor completo).

    Nella funzione verificavett() c'è qualcosa che non va con le parentesi graffe... se avessi scritto codice indentato te ne saresti accorta da sola.
    Ho un dubbio , in questo programma in C compare la variabile "flag"; dato che il mio prof non l'ha spiegata , mi potreste dire come posso sostituirla all'interno di questo programma? (codice)
    Dovresti essere più chiara quando poni una domanda... da quello che hai scritto non si capisce niente!
    Di preciso cosa non hai capito? Cosa devi fare?

    Sai cosa fa la funzione verificavett()? Anche se il tuo prof non l'ha spiegato dovresti essere in grado di interpretare un codice tanto semplice.
    Non mi sembrava proprio scritta così male, scusa! comunque il mio dubbio era come fare questo pezzo di programma senza utilizzare il "flag" sempre che sia possibile... per la funzione verificavett () non ho problemi
    Inoltre mi ero posta il dubbio se la variabile flag esistesse anche nel linguaggio c++ dato che non mi era mai capitato di incontrarla
  • Re: Problema con flag

    Quello che usi è una semplice variabile non chissà cosa quindi puoi usarla in tutti i linguaggi (anche se la chiami pippo).

    Ma per il resto non si capisce cosa debba fare quella funzione e non ti sei ancora spiegata.

    Inoltre non hai ancora seguito il consiglio di usare i tag code e l'indentazione. Leggetelo il regolamento prima di postare.
  • Re: Problema con flag

    oregon ha scritto:


    Quello che usi è una semplice variabile non chissà cosa quindi puoi usarla in tutti i linguaggi (anche se la chiami pippo).

    Ma per il resto non si capisce cosa debba fare quella funzione e non ti sei ancora spiegata.

    Inoltre non hai ancora seguito il consiglio di usare i tag code e l'indentazione. Leggetelo il regolamento prima di postare.
    Il programma continua, solo che il mio dubbio era solo capire la variabile flag quindi non sono stata a scriverlo tutto
  • Re: Problema con flag

    Boh ... così non si capisce molto ma se hai risolto meglio cosi.
  • Re: Problema con flag

    @giulia, purtroppo non sappiamo leggere nel pensiero.

    Il codice che hai postato ha una parentesi graffa nel posto sbagliato.

    Ok, supponiamo che il codice sia corretto spostando opportunamente la parentesi.

    Ed ora 'ragiona': in inglese 'flag' vuol dire 'bandierina', ed una 'bandierina' puo' essere 'alzata' o 'abbassata'.

    Gli americani hanno la cassetta della posta con la 'bandierina' [l'ho visto nei film quindi sara' vero ].

    Nel computer non puoi infilarci una 'bandierina', ma la puoi simulare con una variabile [che puo' avere QUALUNQUE nome, tra cui 'flag'] che puo' assumere DUE valori.

    Quali possono essere questi due valori?

    Li scegli TU a piacimento, anche se certe scelte sono dei classici (come Chanel n.5, e' un classico, ma ci sono altre infinite alternative):

    0, 1
    -1, 1

    Ti ricordano niente questi numeri?

    Comunque il codice e' MOLTO SEMPLICE, DEVI essere in grado di leggerlo e seguire il filo del funzionamento.

    Prova a capire questo
    
    #include<stdio.h>
    #include<stdlib.h>
    #define M malloc(sizeof(
    #define R fread(x,sizeof(float),Z*w,f)
    #define E free(
    
    char*G=
    "   "
    "    '"
    "@(*AP(  "
    "             "
    "                     "
    "                              "
    "                                        "
    "                                                   _"
    "0   #@ .  \"C^*/XH\"Q2_U(D&(5*E0C 4B54DV   X    \"!9A@   89H$ !"
    "0(/@@4 @(/@@(   #@T  @(\" @(    P, , P# , #Y1244^   ?R 0#%)14,A#9)24$B 1"
    "_)!0,$Y145%R Y145$^&!81T! #9)24DV#Y)24DP  ;&P     -C4 $$B% @ !04%!04 @4(D$ #!(1"
    "4 @#U574$^'^0D)!_&Z1D9'_$*!@8%^'Z!@8'_(&1D9'_(\"0D)#_%Z1D8%^/\\0$!#_ \"!_X$ /X! 0"
    "$&(-$*!#_ $! 0'_/] ,$#_/\\&&&#_'Z!@8%^&\"0D)#_'V\"A8%^&>8D)#_$Z1D9%B(\" _X\" /X"
    "! 0'^/ , PSP/P#' /\\,<H$\"C', @'R# ,&AD8F'(&!_P   ,,,,     _X&!! @0\" 0 "
    "$! 0$!  @0(   \\5%14\" X1$0G_!$1$1$./\\2$1$. T5%14. \"0D'\\ 'Y)"
    "144X \\0$ C_  !7Q     7A$! $2# 3_ $!_H   \\0'Q ? \\0"
    "$! ? X1$1$.#A$1\"1_'](1$0X @0$ @? (5%14)"
    "  1$?X0!\\\" 0$>!@& 088!X!#@$>"
    "!$*! H1#X)!04X!$9%1,1"
    "(&!;A 0   _P "
    " ! 0;H&!"
    " @$\""
    "! ("
    "\0";                            int s,p,e,c,t,r,a,l;   /* l e a k a g e */
     
                                                         int
                                                       F(int o
                                                    ,int n, int t
                                                 ){char*p=(o*(136-o)
                                               >=1260)*7*(o-9)+G; for(
                                              n=!(o=-1); n=*p+++64*n-*G
                                            ,(o+=3)>>2<5-t; ); return 255
                                           &n>>2*o%8; } float L[0x400];int
                                         T(float a,float b,float l,float*e)
                                        {return L[0x3ff]||!(e[1]=b*a+l**e)||
                                       !T(l*a-b**e,b,l,e+1); } float f(int x)
                                      {int w=s<<!!T(1,6.135885e-3,-1.882472e-5
                                     +1,L); x=(x%w+w)%w<<9; return(L[x/s]*(s-x%
                                    s)+L[x/s+1]*(x%s))/s; } int C(float*h,float*
                                   i,int r,int P){ int x,y,c; for(y=0; h<i; ++y,h
                                   +=r){ c=P<1; for(*h=x=0; x<8; c+=(1&P>>x&&P+(*
                                  h+=f(e*(l+a*(2*x+1))*y)*f(s/2-e*a*y+e*a*y*y*(t/p
                                 )/(s/p)))),++x); float z=f(y*t)*f(y*t); *h=z*(1+3*
                                 z+2*z*z)/6**h/c; } return h-i-r+1; } void d(int w,
                                int n,FILE*f){int Z=s/t; int S[5]; float**P=M float*
                                )*c);for(r=0;r<c;++r){ P[r]=M float)*Z); C(P[r],P[r]
                               +Z,1,r); } float*x=M float)*Z*w); for (; ; ){ for(r=0;
                    r<5        ; ++r){ int o=1; for(R,a=256; o&&--a; )for(o=t=0; t<Z;        o+=
                   P[a][       t]!=x[w*t+n],++t); S[r]=a; } if(R-Z*w)break; for(r=a= -      12;r<
                  5&&(a+=     a<11?22:1)<127; )for(r=-1; ++r<5&&F(a,1,r)==S[r]; );if(a     <127&&r
        ==5      )putchar(    a); } for(; --c; E P[c])); E P); fclose(f);}int main(int    q,char**v)      {s=
       44100     ;p=25; e=    55;c=256; t=75; r=q>1?v[1][0]*c+v[1][1]:0; a=7;l=16;if(r    ==11620){d     (atoi
      (v[2]),   atoi(v[3]),  q<5?stdin:fopen(v[4],"r")); return 0; } char*H=malloc(c),*  h=H; sprintf   (H,"\0"
     "Usage\n"  "    %s [-"  "h] [-d #c cid] file1 file2 ... (or stdin)"+(q-1&&r==11624  ),v[0]);if(*  H)q=1;int
     w=2>q?1:q -1; FILE**f=M FILE*)*w); f[0]=stdin; if(q>1)for(r=0; r<w; f[r]=fopen(v[r +1],"r"),++r); int l=s/t
     *w; float *b=M float)*l ),*t=b+l; int*i=M int)*w); for(; ; ){ int x=*h&&1>ungetc(* H++,*f); for(r =w; r--;)
    { i[r]=getc (f[r]); if(i[r]<0)i[r]=!++x; } if(x==w)break; while(++r<6){ while(C(b++,t,w,F(*i++,r< 5,r))); i-=
    w; fwrite(b-=w,sizeof(float),l,stdout); } fflush(stdout); } while(fclose(f[--w]),w); E f); E b); E i); E h);}
    
    
  • Re: Problema con flag

    Per quanto riguarda il poterla evitare, si, basta che all'inizio di verificavett metti b = 1 e al posto di flag = 0 metti b = -1
  • Re: Problema con flag

    Franzo ha scritto:


    Per quanto riguarda il poterla evitare, si, basta che all'inizio di verificavett metti b = 1 e al posto di flag = 0 metti b = -1
    Grazie!
Devi accedere o registrarti per scrivere nel forum
8 risposte