index — ti25-glauchau-code @ 72a1f44f3f7b9f35f97b3dcb692ffd7cc4fc06dd

Meine Lösungen (oder auch nicht) für die Programmieraufgaben in der TI25 an der Staatlichen Studienakademie Glauchau

ima/2025-10-08/binaerzaehler2.go (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
package main

import (
	"fmt"
)

func createArr(nptr *int) *[][]bool {
	arr := make([][]bool, (1 << *nptr))
	for i := range arr {
		arr[i] = make([]bool, *nptr)
	}

	for row := 1; row < len(arr); row++ {
		copy(arr[row], arr[row-1])
		column:
		for column := range arr[row]{
			if arr[row][column] == false {
				arr[row][column] = true
				break column
			} else {
				arr[row][column] = false
			}
		}
	}
	return &arr
}

func readArr(arrptr *[][]bool, kpttr *int) *[][]bool {
	var validRows [][]bool
	counter := 0
	for row := range *arrptr {
		counter = 0
		for column := range (*arrptr)[row] {
			if (*arrptr)[row][column] == true {
				counter++
			}
		}
		if counter == *kpttr {
			validRows = append(validRows, (*arrptr)[row])
		}
	}
	return &validRows
}

func main() {
	n := 4
	k := 3

	arrptr := createArr(&n)
	fmt.Println(*arrptr)	

	validRowpttr := readArr(arrptr, &k)
	fmt.Println(*validRowpttr)
}