Scusa, ma, prima non mettevi i tag CODE e quindi quello che indentavi veniva riallineato adesso che li usi scrivi tutto nella stessa colonna ...

Sorvolando questo...

Da che mondo è mondo una procedura NON legge e NON scrive...
se lo fai non ti da errore ma è una regola non scritta che rispettano tutti i programmatori (come usare I e J per i cicli...)

Le uniche eccezioni in cui puoi fare una procedura per scrivere è un menù ma in questo caso scrive e basta...la stessa cosa si potrebbe dire per la lettura...ma non un misto...

Non potresti scrivere cosa richiede l'esercizio perchè può anche darsi che il tuo algoritmo non c'entri con la risoluzione del problema e quindi potrei rischiare di darti un consiglio sbagliato

oddio, l'ho stracciata un po' ma meglio non correre rischi anche perchè sei autodidatta e se impari qualcosa di sbagliato te lo porti dietro per l'eternità

cmq per richiamare le procedure si scrive il nome e si passano le variabili.

In questo caso se vuoi richiamare la procedura inizia gli devi passare 2 interi, un array e altri due interi proprio nell'ordine in cui gli hai dichiarati all'interno della procedura.