feat: Demo-Examples (Python/Rust/Go/C) mit Protokoll-Templates und Restore-Skript
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
fb4e96919a
commit
64c2b7f0fd
21 changed files with 614 additions and 0 deletions
37
examples/go-fibonacci/PROTOKOLL.md
Normal file
37
examples/go-fibonacci/PROTOKOLL.md
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Demo-Protokoll: go-fibonacci
|
||||
|
||||
## Lauf 1
|
||||
|
||||
**Datum:**
|
||||
**Befehl:**
|
||||
```
|
||||
/optimize "Ersetze die naive Rekursion durch Memoization.
|
||||
fib(50) soll in unter 1ms abgeschlossen sein.
|
||||
Bestehende Tests müssen weiterhin grün bleiben." \
|
||||
--test-cmd "go test ./..." --interactive
|
||||
```
|
||||
**Startzeit:**
|
||||
**Ende Loop (PASS):**
|
||||
**Dauer Loop (min):**
|
||||
**Runden:**
|
||||
**Endergebnis Loop:** PASS / PASS WITH CONCERNS
|
||||
|
||||
**Befehl im --interactive-Checkpoint:**
|
||||
```
|
||||
/continue "Gib zusätzlich die Berechnungszeit in Mikrosekunden aus."
|
||||
```
|
||||
*(oder: `/continue` ohne Zusatzauftrag)*
|
||||
|
||||
**Startzeit /continue:**
|
||||
**Ende /continue:**
|
||||
|
||||
**Befehl /shipit:**
|
||||
```
|
||||
/shipit
|
||||
```
|
||||
**Startzeit /shipit:**
|
||||
**Endzeit /shipit:**
|
||||
**Endergebnis /shipit:** SHIP / NO-SHIP
|
||||
**Besonderheiten / Beobachtungen:**
|
||||
|
||||
---
|
||||
48
examples/go-fibonacci/README.md
Normal file
48
examples/go-fibonacci/README.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# Go Fibonacci
|
||||
|
||||
Naive rekursive Fibonacci-Implementierung — korrekt, aber exponentiell langsam.
|
||||
`fib(45)` dauert mehrere Sekunden; `fib(50)` läuft praktisch nicht durch.
|
||||
|
||||
## Aktueller Stand
|
||||
|
||||
```
|
||||
main.go fib(n) — rekursiv, O(2^n)
|
||||
main_test.go TestFib mit 5 Tabellen-Tests (alle grün)
|
||||
```
|
||||
|
||||
## Demo 1: `/optimize --interactive`
|
||||
|
||||
```
|
||||
/optimize "Ersetze die naive Rekursion durch Memoization.
|
||||
fib(50) soll in unter 1ms abgeschlossen sein.
|
||||
Bestehende Tests müssen weiterhin grün bleiben." \
|
||||
--test-cmd "go test ./..." --interactive
|
||||
```
|
||||
|
||||
Nach dem ersten PASS hält pi-coder im **interaktiven Checkpoint** an.
|
||||
Hier kann ein Zusatzauftrag erteilt werden:
|
||||
|
||||
```
|
||||
/continue "Gib zusätzlich die Berechnungszeit in Mikrosekunden aus."
|
||||
```
|
||||
|
||||
Oder einfach bestätigen:
|
||||
|
||||
```
|
||||
/continue
|
||||
```
|
||||
|
||||
## Demo 2: Abschluss mit `/shipit`
|
||||
|
||||
```
|
||||
/shipit
|
||||
```
|
||||
|
||||
Der Judge prüft nochmals explizit auf Produktionsreife und gibt SHIP oder NO-SHIP zurück.
|
||||
|
||||
## Manueller Test
|
||||
|
||||
```bash
|
||||
go test ./...
|
||||
go run main.go
|
||||
```
|
||||
3
examples/go-fibonacci/go.mod
Normal file
3
examples/go-fibonacci/go.mod
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
module fibonacci
|
||||
|
||||
go 1.21
|
||||
18
examples/go-fibonacci/main.go
Normal file
18
examples/go-fibonacci/main.go
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
// fib berechnet die n-te Fibonacci-Zahl rekursiv.
|
||||
// Korrekt, aber für n > 40 sehr langsam (exponentiell).
|
||||
func fib(n int) int {
|
||||
if n <= 1 {
|
||||
return n
|
||||
}
|
||||
return fib(n-1) + fib(n-2)
|
||||
}
|
||||
|
||||
func main() {
|
||||
for i := 0; i <= 10; i++ {
|
||||
fmt.Printf("fib(%2d) = %d\n", i, fib(i))
|
||||
}
|
||||
}
|
||||
20
examples/go-fibonacci/main_test.go
Normal file
20
examples/go-fibonacci/main_test.go
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
package main
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestFib(t *testing.T) {
|
||||
cases := []struct {
|
||||
n, want int
|
||||
}{
|
||||
{0, 0},
|
||||
{1, 1},
|
||||
{2, 1},
|
||||
{5, 5},
|
||||
{10, 55},
|
||||
}
|
||||
for _, c := range cases {
|
||||
if got := fib(c.n); got != c.want {
|
||||
t.Errorf("fib(%d) = %d, want %d", c.n, got, c.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue