package my.demo import com.sun.xml.internal.fastinfoset.util.StringArray import java.util.* import kotlin.random.Random //var random = { Random.nextInt(1, 100)} fun main(args: Array) { var n: Int var v = IntArray(20) var reader = Scanner(System.`in`) var choice: String? do { var menu = arrayOf("1: media del vettore", "2: ricerca max del vettore", "3: invertire un vettore su se stesso", "4: verifico ordinamento crescente del vettore", "5: conta occorrenze nel vettore", "6: somma elementi pari e dispari", "7: verifica elementi tutti uguali", "8: copia vettore a in vettore b", "9: copia vettore a invertito in b", "a: elementi uguali in posizione uguale", "b: medie vettori uguali", "c: copia in vettori pari e dispari", "d: copia in testa pari e coda dispari", "e: caricamento vettore ordinato e disgiunto", "f: cerca i 3 massimi", "g: cerca i 3 massimi con parimerito", "h: prodotto scalare di 2 vettori", "i: caricamento vettore disgiunto e non ordinato", "l: shift a dx circolare", "m: verifica vettore disgiunto") printStringArray(menu) choice = insertChoice("\nChoice the option that you want: ", reader) when (choice) { "1" -> { n = insertArrayLength(reader) print("Middle value of Array: " + middleArray(loadArray(n), n)) } "2" -> { n = insertArrayLength(reader) val max = MaxValueArray(loadArray(n), n) println("Max value of Array is: " + max.toString()) } "3" ->{ n = insertArrayLength(reader) reverseArray( loadArray(n), n) } else -> print("\nInvalid choice") } } while (choice != "Exit") } fun reverseArray(v: IntArray, n: Int) { printArray(v) var nMiddle = n/2 var aus = 0 var j = n for ((i, nMiddle) in v.withIndex()){ aus = v[i] v[i] = v[i - j - 1] v[i - j - 1] = aus } printArray(v) } fun MaxValueArray(v: IntArray, n: Int): Int { var max = 0 printArray(v) for (i in v.indices) if (v[i] > max) max = v[i] return max } fun middleArray(v: IntArray, n: Int): Int { printArray(v) var somma = 0 for ((i, n) in v.withIndex()) somma += v[i] return somma/n } fun loadArray(n: Int): IntArray{ var v = IntArray(n) { Random.nextInt(1, 100) } return v } fun printArray(v: IntArray) = println(Arrays.toString(v)) fun printStringArray(v: Array){ for (i in v.indices) println(v[i]) } fun insertChoice(message: String, reader: Scanner): String? { print(message) return reader.next() } fun insertArrayLength(reader: Scanner): Int = insertIntNumber("\nInsert a number from 1 until 20: ", 1, 20, reader) fun insertIntNumber(messange: String, min: Int, max: Int, reader: Scanner): Int { var n: Int do { print(messange) n = reader.nextInt() if (n < min || n> max) println("Invalid Input") else break } while ( n < min || n > max) return n } fun menu(){ var menu = arrayOf("1: Array Middle" + "2: ") printStringArray(menu) }