La memoria juega malas pasadas
Es más yo no me se de memoria ningún procedimiento o función simplemente hago el dibujo. Por ejemplo hago el dibujo para insertar o para suprimir y luego en base a eso voy haciendo el procedimiento o función en Pascal.
Ventajas de esto: el procedimiento o función estará bien hecho y funcionará.
Inconvenientes de esto: puede que el procedimiento o función no sea del todo exacto al que viene en los libros de texto, tal vez sea más enrevesado y menos eficiente. Otro inconveniente es que tardarás más tiempo que si te lo sabes de memoria.
Por contra saberte de memoria un procedimiento o función tiene ventajas como que la subrutina va a ser la más eficiente ya que va a ser exacta a la de los libros de texto y funcionará por supuesto, tardarás menos tiempo en sacar el procedimiento ya que simplemente es recordarlo y punto. Pero aquí vienen los grandes incovenientes: como te falte un pequeño detalle de la subrutina date por perdido, la subrutina no funcionará a pesar de ser 99% parecida a la de los libros de texto, la memoria juega malas pasadas y puede que hoy te acuerdes de esa subrutina que tanto usas pero estate dos meses sin usarla verás como serás incapaz de recordarla.
Resumiendo, si tienes una memoria de elefante (lo cual muy poca gente tiene) memorízate todas las subrutinas. Si tienes una memoria normal haz el dibujo y deduce.
Esto me recuerda a lo que nos decían los profesores de mateméticas en el instituto: "no memoriceis las fórmulas matemáticas, deducirlas todas si es posible", el caso es que tenían razón, es la forma más adecuada de resolver problemas a no ser ya digo que tengas todos los problemas, subrutinas, declaraciones de tipos metidos en la cabeza memorizados a priori.
Deducir unido a hacer miles de ejercicios distintos = programar eficientemente. ¡Suerte!