problema inserimento pseudocodice

  • Questo topic ha 11 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 19 anni, 7 mesi fa da sbz.
  • Creatore
    Topic
  • #12011
    sbz
      Up
      0
      Down
      ::


      Salve a tutti, devo inserire uno pseudocodice nella mia tesi ma ho il problema che il compilatore non riconosce i comandi dei pacchetti.
      MI spiego meglio. Nel preambolo ho le inclusioni

      \usepackage{algorithm}
      \usepackage{algorithmic}

      e il codice, per fare una prova, è

      \begin{algorithmic}[1]
      \Begin
      \State $sum:=0$;
      \state $prod:=1$;
      \For{i:=1}{10}
      \Begin
      \State $sum:=sum+i$;
      \State $prod:=prod*i$;
      \End
      \End.
      \end{algorithmic}

      uso MiKTex 2.5 ed ogni volta che arriva alla riga di codice con \Begin mi da l’errore

      ! Undefined control sequence

      e lo fa anche per \State ed \End
      ma perchè? dove sbaglio?

    Visualizzazione 10 filoni di risposte
    • Autore
      Risposte
      • #12012
        Up
        0
        Down
        ::

        Salve a tutti, devo inserire uno pseudocodice nella mia tesi ma ho il problema che il compilatore non riconosce i comandi dei pacchetti.
        MI spiego meglio. Nel preambolo ho le inclusioni

        \usepackage{algorithm}
        \usepackage{algorithmic}

        e il codice, per fare una prova, è

        \begin{algorithmic}[1]
        \Begin
        \State $sum:=0$;
        \state $prod:=1$;
        \For{i:=1}{10}
        \Begin
        \State $sum:=sum+i$;
        \State $prod:=prod*i$;
        \End
        \End.
        \end{algorithmic}

        uso MiKTex 2.5 ed ogni volta che arriva alla riga di codice con \Begin mi da l’errore

        ! Undefined control sequence

        e lo fa anche per \State ed \End
        ma perchè? dove sbaglio?

        I comandi che cerchi di usare non sono definiti. Leggi la documentazione del pacchetto.

        Ciao
        Enrico

      • #12013
        sbz
          Up
          0
          Down
          ::


          ma ho preso l’emepio da un manuale che ho trovato on-line…. 😥

        • #12014
          sbz
            Up
            0
            Down
            ::


            emepio=esempio….sorry 😆

          • #12015
            Up
            0
            Down
            ::

            ma ho preso l’esempio da un manuale che ho trovato on-line…. 😥

            Dove l’hai trovato? Purtroppo in giro ci sono manuali non proprio correttissimi.

            Ciao
            Enrico

          • #12016
            sbz
              Up
              0
              Down
              ::


              quello di cui parlavo prima non ricordo….
              ma adesso ne sto provando un altro, preso da CTAN (http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/algorithmicx.pdf)
              che però mi da ugualmente errore…. 😥

            • #12017
              sbz
                Up
                0
                Down
                ::


                In parte ho risolto….
                Mettendo nel preambolo i package {algorithm} ed {algpseudocode} non da più problemi con i comandi \State, \For che prima si verificavano.
                Ma resta sempre il fatto che non riconosce i comandi \Begin ed \End… 👿

              • #12018
                Up
                0
                Down
                ::


                Ciao sbz.

                Se sei proprio deciso ad usare i pacchetti «algorithm» e «algorithmic», allora il codice che proponi andrebbe riscritto in un modo simile al seguente:
                `\documentclass[italian]{article}

                \usepackage[boxed]{algorithm} % prova a togliere l'opzione 'boxed'.
                \usepackage{algorithmic}
                \usepackage[italian]{babel}

                \floatname{algorithm}{Algoritmo} % se non ti piace, mettici qualcos'altro.

                \begin{document}

                \begin{algorithm}
                \caption{Algoritmo di esempio}
                \label{alg:esempio}
                \begin{algorithmic}[1]
                \STATE $sum \leftarrow 0$
                \STATE $prod \leftarrow 1$
                \FOR{$i \leftarrow 1$ to $10$}
                \STATE $sum \leftarrow sum + i$
                \STATE $prod \leftarrow prod \cdot i$
                \ENDFOR
                \end{algorithmic}
                \end{algorithm}

                \end{document}
                `
                Due considerazioni:

                • non so se quel «$10$» è proprio corretto (si vedano <http://www.guit.sssup.it/phpBB2/viewtopic.php?t=1023> e <http://www.guit.sssup.it/phpBB2/viewtopic.php?t=1220>), ma l’ho fatto per uniformità (tutti gli altri numeri stanno in un ambiente matematico);

                • nella riga in cui assegno alla variabile prod il valore di prod per i, volendo indicare la moltiplicazione, mi verrebbe poco naturale usare l’asterisco presente nel tastierino numerico («*»), e un «\times» esplicito mi sapeva troppo di «elementari» (ora per me quel simbolo rappresenta soloil prodotto cartesiano). Voi che ne dite?

                A presto!

              • #12019
                sbz
                  Up
                  0
                  Down
                  ::


                  grazie mille!!!ottima soluzione… 😀

                • #12020
                  sbz
                    Up
                    0
                    Down
                    ::


                    ne approfitto per fare un’altra domanda… 😆

                    Con i comandi presentati da rodimus l’intestazione dell’algoritmo viene numerata, cioè quando viene visualizzato l’algoritmo c’è scritto “Algoritmo 1: nomeAlgoritmo”.
                    Nel mio testo ho solo un algoritmo quindi vorrei evitare la numerazione: vedendo la documentazone ho provato ad inserire la riga

                    \floatname{algorithm}{}

                    ma il problema è che toglie solo la dicitura “Algoritmo” e mantiene la numerazione, cioè resta “1: nomeAlgoritmo”; e non ho trovato l’esistenza di un comando tipo \floatnumber….

                    come si può fare?

                  • #12021
                    Up
                    0
                    Down
                    ::

                    ne approfitto per fare un’altra domanda… 😆

                    Con i comandi presentati da rodimus l’intestazione dell’algoritmo viene numerata, cioè quando viene visualizzato l’algoritmo c’è scritto “Algoritmo 1: nomeAlgoritmo”.
                    Nel mio testo ho solo un algoritmo quindi vorrei evitare la numerazione: vedendo la documentazone ho provato ad inserire la riga

                    \floatname{algorithm}{}

                    ma il problema è che toglie solo la dicitura “Algoritmo” e mantiene la numerazione, cioè resta “1: nomeAlgoritmo”; e non ho trovato l’esistenza di un comando tipo \floatnumber….

                    come si può fare?

                    Se vuoi la parola “Algoritmo:” che precede la didascalia puoi fare così
                    `\floatname{algorithm}{Algoritmo}
                    \renewcommand{\thealgorithm}{\unskip}`
                    Altrimenti devi caricare il pacchetto caption:
                    `\usepackage[boxed]{algorithm}
                    \usepackage{algorithmic}
                    \usepackage{caption}
                    \captionsetup[algorithm]{labelformat=empty,labelsep=none}`
                    Ciao
                    Enrico

                  • #12022
                    sbz
                      Up
                      0
                      Down
                      ::


                      Grazie!!!utilizzando il pacchetto \caption come dici te non numera l’algoritmo!

                  Visualizzazione 10 filoni di risposte
                  • Devi essere connesso per rispondere a questo topic.

                  Go to top