Algorismes punters

De franhpWiki

Revisió de 14:10, 11 set 2009; Admin (Discussió | contribucions)
(dif) ←Versió més antiga | Versió actual (dif) | Versió més nova→ (dif)
Dreceres ràpides: navegació, cerca
  • Escriure un algorisme que inicialitzi una frase acabada en punt. Aquesta frase serà desada en un vector, el qual serà passat a una acció la qual haurà de substituir tots els espais en blanc pel guió baix ( _ ). Després haurà de mostrar la frase tractada.
   algorisme espaiperguio
   const
       enter N<-40
   fconst
   
   var
       caràcter v[N]<-"frase que acaba en.";
   fvar
   
   vectoritza(v);
   
   canviaespais(v);
   
   falgorisme
   
   acció vectoritza(caràcter *pv){
       per(i<-0;*(pv+i)!='.';i++){
           v[i]<-*(pv+i);
       }
   }
   
   acció canviaespais(caràcter *pv){
       per(i<-0;i<N;i++){
           si(*(pv+i)=' ') *(pv+i)='_';
           escriure(*(pv+i));
       }
   }
  • Fer un algorisme en què l’usuari escrigui una paraula de fins a 10 caràcters (comprovar aquest fet), que sigui desada en un vector. El vector serà passat a una acció mitjançant punters, on serà invertida, i finalment a una altra acció que l’imprimirà.
   funció invertir(caràcter *pv){
       enter i;
       caràcter tmp;
       
       per(i<-0;(i<N/2);i++{
       tmp<-*(pv+i);
       *(pv+i)<-(*pv+i)-N-1);
       *(pv+i)-N-1<-tmp;
       }
   
   }
  • Fer un algorisme que inicialitzi un vector de 10 elements, i el passi a una acció que n’ordeni tots els elements de més gran a més petit.
   accío ordena (enter *pv)
   per(i<-0;i<N;i++)
       per(j<-i+1;j<N;j++)
           si (*(pv+i) > *(pv+j))
               tmp<-*(pv+i)
               *(pv+i)<-*(pv+j)
               *(pv+j)<-tmp;
           fsi
       fper
   fper
   
   facció