Ecco in C come sarebbe(ci vuole poco ad adattarlo x il pascal,è solo una questione di qualche lieve cambiamento di sintassi):
codice:
/* ipotizzando,per entrambe, che la variabile intera numero sia dichiarata globale,altrimenti bisogna passarla alla funzione! */
void procedura_pari(){
int i=0;
while(numero != 1){
numero /= 2; //cioè numero=numero/2;
printf("%d PASSAGGIO : %d \n",i++,numero);
}
}
void procedura_dispari(){
numero=(numero*3)+1;
}
Se hai detto pero' che il numero inserito,oltre ad essere controllato se pari o dispari,nel secondo caso,se dispari quindi,deve oltre ad essere moltiplicato x3 e aggiunto 1 e poi controllato se pari cambia il corpo di tutto il programma.Le funzioni che ti ho scritto vanno cmq bene ma nel caso dispari devono essere "combinate" tra di loro...ossia se il numero ottenuto da *3+1 è pari richiama la procedura_pari,altrimenti richiama l'altra...