File input ambiguo

di il
40 risposte

40 Risposte - Pagina 2

  • Re: File input ambiguo

    È un esercizio troppo difficile per me consiglio di fare a casaccio
  • Re: File input ambiguo

    
    	string StringCopy(string x){
    		string aux=""; //x è la stringa in cui ho la parola
    		for(int i=0; i<x,length(); i+=2){
    			aux+=x[i];
    		}
    		return aux;
    	}
    
  • Re: File input ambiguo

    È un esercizio troppo difficile per me consiglio di fare a casaccio
  • Re: File input ambiguo

    Non so perche avevo pensato che ogni carattere avesse uno spazio ahah
    
    	String StringCopy(string x){
          		string aux=""; //x è la stringa in cui ho la parola
          		for(int i=0; i<x,length(); i++){
            		if(x[i]!=' ')
                			aux+=x[i];
          		}
          		return aux;
       	}
       
  • Re: File input ambiguo

    Adesso fai mangiacifreintesta
    Data una stringa fai un ciclo (un while) che in output ritorna le cifre 1..9, il punto,la virgola.
    si arresta quando finisce la stringa o trova un qualsiasi altro carattere. Ritorna anche la parte rimanente.
    In sostanza vuoi spezzare la stringa in due parti (automino)

    Input '25.8(9)+(x)' output '25.8' e '(9)+(x)'

    Input '(6)' output '' e '(6)'
    Attenzione che ti servirà un secondo p arametro di output che passerai per riferimento.
    chiamalo ad esempio o_resto
    Lo ripeto : la funzione ha Due output, non uno

    Ps la funzione di prima chiamala trimmaspazi
  • Re: File input ambiguo

    
    	string Mangia_Cifre_in_Testa(string x, string &back){
    		int i=0;
    		back="";
    		string torna="";
    		while(i<x.length() && x[i]!='(' || x[i]|=')' || x[i]!='+ || x[i]!='x')
    			torna+=x[i++];
    		while(i<x.length())
    			back+=x[i++];
    	}
    
  • Re: File input ambiguo

    È un esercizio troppo difficile per me consiglio di fare a casaccio
  • Re: File input ambiguo

    Vediamo, torna dovrebbe essere la stringa da ritornare solo che con la fretta ho scordato la return.
    le condizioni del ciclo le ho adattate all'input, altrimenti farei qualcosa del tipo:
    while(i<x.length() && ((x>=48 && x<=57) || x=='.' || x==','))
  • Re: File input ambiguo

    È un esercizio troppo difficile per me consiglio di fare a casaccio
  • Re: File input ambiguo

    
    	String Mangia_Cifre_in_Testa(string x, string &back){
          		int i=0;
         	 	back="";
          		string torna="";
          		while(i<x.length() && ((x[i]>=48 && x[i]<=57) || x[i]=='.' || x[i]==','))
          			torna+=x[i++];
          		while(i<x.length())
             		back+=x[i++];
    		return torna;  
       }
       
  • Re: File input ambiguo

    È un esercizio troppo difficile per me consiglio di fare a casaccio
  • Re: File input ambiguo

    È un esercizio troppo difficile per me consiglio di fare a casaccio
  • Re: File input ambiguo

    +m2+ ha scritto:


    Gettato la spugna?
    Sicuramente non gliela stai rendendo facile, considerando anche qual è la traccia dell'esercizio!

    +m2+ ha scritto:


    Non devi adattare niente, devi solo fare quello che dico.
    Inoltre non mi sembra il massimo come approccio (e non intendo per i modi, ma per il fatto di costringerlo a fare cose senza che lui abbia chiaro qual sia l'algoritmo complessivo), ma è una mia modesta opinione.


    Provo a darti anche io un input, se ti convince seguilo, altrimenti ignoralo.
    Lasciamo perdere per il momento i polinomi e concentriamoci sul singolo monomio; esso avrà una struttura del genere:

    segno(facoltativo) / intero che rappresenta il coefficiente(facoltativo) / variabile(facoltativa) / elevazione a potenza(facoltativa) / intero che rappresenta il grado (facoltativo)

    Ipotizziamo di scorrere dall'inizio alla fine la stringa che costituisce il monomio, quello che ci interessa alla fine del ciclo è di conoscere il coefficiente e il grado del monomio. Per farlo dichiariamo due variabili intere: coeff inizializzata a 1 e grad inizializzata a 0. Dichiariamo anche una variabile booleana flag inizializzato a false.
    Iniziamo quindi a scorrere la stringa:
    - se il primo carattere è + passiamo avanti, se è - prima di andare avanti modifichiamo coeff a -1;
    - scorreremo quindi il resto della stringa e se troviamo una cifra salveremo queste cifre consecutive in un vettore, se invece il carattere non è una cifra (quindi sarà o la variabile o l'elevazione a potenza) imposteremo flag a true e grad a 1 (poichè il monomio sicuramente non sarà di grado 0);
    - se il suddetto vettore ha dimensione non nulla, convertiremo il suo contenuto in un intero n(per esempio il vettore 3 9 1 diventa l'intero 391); quindi se flag=false sarà coeff*=n, se flag=true sarà grad=n.

    Riprendiamo ora la somma dei polinomi. Visto che il loro grado è massimo 20, dichiareremo un array p di 20 interi inizializzato a 0. Nel momento in cui a valle della precedente procedura conosceremo il coefficiente e il grado del generico monomio, basterà fare p[grad]+=coeff.
  • Re: File input ambiguo

    È un esercizio troppo difficile per me consiglio di fare a casaccio
  • Re: File input ambiguo

    Non dici cose sbagliate, ma secondo me spesso sono abbastanza fuori contesto.
    Coi quali costruirà prendipolinomiostrano (perché è un modo strano, ma vabbè).
    La traccia non è poi così strana, invece l'input che hai postato in precedenza, ossia 25.8(9)+(x), lo è abbastanza.
    6) se si preferisce andare allo 'sbaraglio' tanto meglio, ma lo scopo è (4), non fare un programma didattico
    Dalla piega surreale che aveva preso la discussione non mi sembra che fantasia stesse imparando qualcosa sul modo di ragionare e di risolvere un problema, ma si è solo limitato a (cercare di) seguire le tue istruzioni senza avere alcuna idea di dove si volesse andare a parare.
Devi accedere o registrarti per scrivere nel forum
40 risposte