Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 2024ws
  • 2023ws
  • 2022ws
  • 2021ws
  • 2020ws
  • 2018ws
  • 2019ws
  • 2017ws
  • 2016ws
9 results

Target

Select target project
No results found
Select Git revision
  • master
  • 2018ws
  • 2017ws
  • 2016ws
4 results
Show changes
886 files
+ 26993
3101
Compare changes
  • Side-by-side
  • Inline

Files

20231005/answer-07.c

deleted100644 → 0
+0 −9
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 13;
  int b = 137;
  printf ("Die Antwort lautet: %X oder vielleicht auch %x\n", a, b);
  return 0;
}

20231005/if-07.c

deleted100644 → 0
+0 −6
Original line number Diff line number Diff line
#include <stdio.h>

int main (void) { int a = 360; printf ("a = %d\n", a); int b; printf
("Bitte b eingeben: "); scanf ("%d", &b); if (b == 0) { printf
("Bitte nicht durch 0 teilen.\n"); printf ("Das macht man nicht.\n");
} else printf ("a / b = %d\n", a / b); return 0; }

20231005/if-08.c

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 360;
  printf ("a = %d\n", a);
  int b;
  printf ("Bitte b eingeben: ");
  scanf ("%d", &b);
  if (b == 0)
    {
      printf ("Bitte nicht durch 0 teilen.\n");
      printf ("Das macht man nicht.\n");
    }
  else
    {
      printf ("a / b = %d\n", a / b);
    }
  return 0;
}

20231005/init-01.s

deleted100644 → 0
+0 −32
Original line number Diff line number Diff line
	.file	"init-01.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"a = %d\n"
.LC1:
	.string	"b = %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc                 # #include <stdio.h>
	subq	$8, %rsp               # 
	.cfi_def_cfa_offset 16         # int main (void)
	movl	$42, %esi              # {
	leaq	.LC0(%rip), %rdi       #   int a = 42;
	movl	$0, %eax               #   int b;
	call	printf@PLT             #   b = 137;
	movl	$137, %esi             #   printf ("a = %d\n", a);
	leaq	.LC1(%rip), %rdi       #   printf ("b = %d\n", b);
	movl	$0, %eax               #   return 0;
	call	printf@PLT             # }
	movl	$0, %eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (Debian 8.3.0-6) 8.3.0"
	.section	.note.GNU-stack,"",@progbits

20231005/init-02.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 42;
  int b;
  printf ("Bitte b eingeben: ");
  scanf ("%d", b);
  printf ("a * b + a + b = %d\n", a * b + a + b);
  return 0;
}

20231005/init-02.s

deleted100644 → 0
+0 −26
Original line number Diff line number Diff line
	.file	"init-02.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"a * b + a + b = %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	subq	$8, %rsp                 # #include <stdio.h>
	.cfi_def_cfa_offset 16           # 
	movl	$5933, %esi              # int main (void)
	leaq	.LC0(%rip), %rdi         # {
	movl	$0, %eax                 #   int a = 42;
	call	printf@PLT               #   int b = 137;
	movl	$0, %eax                 #   printf ("a * b + a + b = %d\n", a * b + a + b);
	addq	$8, %rsp                 #   return 0;
	.cfi_def_cfa_offset 8            # }
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (Debian 8.3.0-6) 8.3.0"
	.section	.note.GNU-stack,"",@progbits

20231005/init-03.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 42;
  int b;
  printf ("Bitte b eingeben: ");
  scanf ("%d", b);
  printf ("a * b + a + b = %d\n", a * b + a + b);
  return 0;
}

20231005/init-04.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 42;
  int b;
  printf ("Bitte b eingeben: ");
  scanf ("%d", &b);
  printf ("a * b + a + b = %d\n", a * b + a + b);
  return 0;
}

20231005/init-04.s

deleted100644 → 0
+0 −40
Original line number Diff line number Diff line
	.file	"init-04.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"Bitte b eingeben: "
.LC1:
	.string	"%d"
.LC2:
	.string	"a * b + a + b = %d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	subq	$24, %rsp
	.cfi_def_cfa_offset 32           # #include <stdio.h>
	leaq	.LC0(%rip), %rdi         # 
	movl	$0, %eax                 # int main (void)
	call	printf@PLT               # {
	leaq	12(%rsp), %rsi           #   int a = 42;
	leaq	.LC1(%rip), %rdi         #   int b;
	movl	$0, %eax                 #   printf ("Bitte b eingeben: ");
	call	__isoc99_scanf@PLT       #   scanf ("%d", &b);
	movl	12(%rsp), %eax           #   printf ("a * b + a + b = %d\n", a * b + a + b);
	leal	1(%rax), %esi            #   return 0;
	imull	$42, %esi, %esi          # }
	addl	%eax, %esi
	leaq	.LC2(%rip), %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (Debian 8.3.0-6) 8.3.0"
	.section	.note.GNU-stack,"",@progbits

20231005/input-02.c

deleted100644 → 0
+0 −10
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  double a;
  printf ("Bitte eine Zahl eingeben: ");
  scanf ("%lf", a);
  printf ("Ihre Antwort war: %lf\n", a);
  return 0;
}

20231005/input-03.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  double a;
  printf ("a = %lf\n", a);
  printf ("Bitte eine Zahl eingeben: ");
  scanf ("%lf", a);
  printf ("Ihre Antwort war: %lf\n", a);
  return 0;
}

20231005/input-04.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  double a = &a;
  printf ("a = %lf\n", a);
  printf ("Bitte eine Zahl eingeben: ");
  scanf ("%lf", a);
  printf ("Ihre Antwort war: %lf\n", a);
  return 0;
}

20231005/input-05.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  double a = (double) (long long unsigned) &a;
  printf ("a = %lf\n", a);
  printf ("Bitte eine Zahl eingeben: ");
  scanf ("%lf", a);
  printf ("Ihre Antwort war: %lf\n", a);
  return 0;
}

20231005/input-06.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  long long unsigned a = (long long unsigned) &a;
  printf ("a = %llu\n", a);
  printf ("Bitte eine Zahl eingeben: ");
  scanf ("%llu", a);
  printf ("Ihre Antwort war: %llu\n", a);
  return 0;
}

20231012/functions-01.c

deleted100644 → 0
+0 −4
Original line number Diff line number Diff line
int main (void)
{
  return 0;
}

20231012/functions-02.c

deleted100644 → 0
+0 −4
Original line number Diff line number Diff line
int main (void)
{
  return 42;
}

20231012/loops-01.c

deleted100644 → 0
+0 −16
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 1;
  do
   {
     if (a <= 10)
       {
         printf ("%d\n", a);
         a++;
       }
   }
  while (a <= 10);
  return 0;
}

20231012/loops-02.c

deleted100644 → 0
+0 −16
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 11;
  do
   {
     if (a <= 10)
       {
         printf ("%d\n", a);
         a++;
       }
   }
  while (a <= 10);
  return 0;
}

20231012/side-effects-04.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 3;
  int b = 5;
  printf ("%d\n", a += b);
  printf ("%d\n", a);
  printf ("%d\n", b);
  return 0;
}

20231012/side-effects-05.c

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 3;
  int b = 5;
  printf ("%d\n", a + b);
  printf ("%d\n", a);
  printf ("%d\n", b);
  return 0;
}

20231012/side-effects-11.c

deleted100644 → 0
+0 −9
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 3;
  a = (3,14);
  printf ("%d\n", a);
  return 0;
}

20231012/side-effects-13.c

deleted100644 → 0
+0 −13
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 137;
  int b = 0;
  if (b == 0)
    printf ("Bitte nicht durch 0 teilen.\n");
    printf ("So was macht man nicht.\n");
  else
    printf ("a / b = %d\n", a / b);
  return 0;
}

20231012/side-effects-15.c

deleted100644 → 0
+0 −13
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 137;
  int b = 0;
  if (b == 0)
    printf ("Bitte nicht durch 0 teilen.\n"),
    printf ("So was macht man nicht.\n");
  else
    printf ("a / b = %d\n", a / b);
  return 0;
}

20231019/arrays-05c.c

deleted100644 → 0
+0 −15
Original line number Diff line number Diff line

#include <stdio.h>

int main (void)
{
  int pflll[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
  int prime[8] = { 2, 3, 5, 7, 11, 13, 17, 19 };
  printf ("prime:\n");
  for (int *p = prime; *p; p++)
    printf ("%d\n", *p);
  printf ("pflll:\n");
  for (int *q = pflll; *q; q++)
    printf ("%d\n", *q);
  return 0;
}

20231019/files-07.txt

deleted100644 → 0
+0 −40
Original line number Diff line number Diff line
#include <stdio.h>
#include <errno.h>
#include <string.h>

int main (void)
{
  FILE *f = fopen ("fhello.txt", "w");
  if (f)
    {
      fprintf (f, "Hello, world!\n");
      fclose (f);
      return 0;
    }
  else
    {
      char *msg = strerror (errno);
      fprintf (stderr, "Fehler: %s\n", msg);
      return errno;
    }
}
cassini/home/peter/bo/2023ws/hp/20231019> gcc -Wall -O files-07.c -o files-07
cassini/home/peter/bo/2023ws/hp/20231019> ./files-07
Fehler: Permission denied
cassini/home/peter/bo/2023ws/hp/20231019> echo $?
13
cassini/home/peter/bo/2023ws/hp/20231019> rm fhello.txt
rm: reguläre Datei (schreibgeschützt) 'fhello.txt' entfernen? y
cassini/home/peter/bo/2023ws/hp/20231019> ./files-07
cassini/home/peter/bo/2023ws/hp/20231019> echo $?
0
cassini/home/peter/bo/2023ws/hp/20231019> ls -l fhello.txt
-rw-r--r-- 1 peter peter 14 19. Okt 15:56 fhello.txt
cassini/home/peter/bo/2023ws/hp/20231019> chmod -w fhello.txt
cassini/home/peter/bo/2023ws/hp/20231019> ls -l fhello.txt
-r--r--r-- 1 peter peter 14 19. Okt 15:56 fhello.txt
cassini/home/peter/bo/2023ws/hp/20231019> ./files-07
Fehler: Permission denied
cassini/home/peter/bo/2023ws/hp/20231019> echo $?
13
cassini/home/peter/bo/2023ws/hp/20231019>

20231019/strings-07d.c

deleted100644 → 0
+0 −21
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char hello[] = "Hello, world!\n";

  printf ("%s\n", hello);
  printf ("%zd\n", strlen (hello));

  printf ("%s\n", hello + 17);
  printf ("%zd\n", strlen (hello + 17));

  return 0;

  hello[5] = 0;
  printf ("%s\n", hello);
  printf ("%zd\n", strlen (hello));

  return 0;
}

20231026/string-ops-03.s

deleted100644 → 0
+0 −57
Original line number Diff line number Diff line
	.file	"string-ops-03.c"
	.text
	.section	.rodata
.LC0:
	.string	"Zacharias"
.LC1:
	.string	"Anton"
.LC2:
	.string	"%d\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	addq	$-128, %rsp
	leaq	.LC0(%rip), %rax
	movq	%rax, -8(%rbp)
	leaq	.LC1(%rip), %rax
	movq	%rax, -16(%rbp)
	movq	-16(%rbp), %rax
	cmpq	-8(%rbp), %rax
	setb	%al
	movzbl	%al, %eax
	movl	%eax, %esi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movq	-8(%rbp), %rax
	cmpq	-16(%rbp), %rax
	setb	%al
	movzbl	%al, %eax
	movl	%eax, %esi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$1, %esi
	leaq	.LC2(%rip), %rax
	movq	%rax, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Debian 12.2.0-14) 12.2.0"
	.section	.note.GNU-stack,"",@progbits

20231026/string-ops-05.c

deleted100644 → 0
+0 −18
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[100] = "Huber ";
  strcat (buffer, anton);
  printf ("%s\n", buffer);

  return 0;
}

20231026/string-ops-07.c

deleted100644 → 0
+0 −19
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[] = "Huber ";
  strcat (buffer, anton);
  printf ("%s\n", buffer);
  printf ("%s\n", anton);

  return 0;
}

20231026/string-ops-08.c

deleted100644 → 0
+0 −19
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[] = "Huber ";
  strcat (buffer, "Antonius, genannt Toni oder Anton");
  printf ("%s\n", buffer);
  printf ("%s\n", anton);

  return 0;
}

20231026/string-ops-09.c

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";
  char *toni = "Antonius, genannt Toni oder Anton";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[] = "Huber ";
  strcat (buffer, toni);
  printf ("%s\n", buffer);
  printf ("%s\n", anton);

  return 0;
}

20231026/string-ops-10.c

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";
  char *toni = "Antonius!!";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[] = "Huber ";
  strcat (buffer, toni);
  printf ("%s\n", buffer);
  printf ("%s\n", anton);

  return 0;
}

20231026/string-ops-11.c

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";
  char *toni = "Antonius!";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[] = "Huber ";
  strcat (buffer, toni);
  printf ("%s\n", buffer);
  printf ("%s\n", anton);

  return 0;
}

20231026/string-ops-11.s

deleted100644 → 0
+0 −55
Original line number Diff line number Diff line
	.file	"string-ops-11.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d\n"
.LC1:
	.string	"Anton"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movl	$-1, %esi
	leaq	.LC0(%rip), %rbx
	movq	%rbx, %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$1, %esi                      ; #include <stdio.h>
	movq	%rbx, %rdi                    ; #include <string.h>
	movl	$0, %eax                      ; 
	call	printf@PLT                    ; int main (void)
	movl	$0, %esi                      ; {
	movq	%rbx, %rdi                    ;   char *zacharias = "Zacha";
	movl	$0, %eax                      ;   char *anton = "Anton";
	call	printf@PLT                    ;   char *toni = "Antonius!";
	movl	$1700951368, 9(%rsp)          ; 
	movl	$2126437, 12(%rsp)            ;   printf ("%d\n", strcmp (anton, zacharias));
	leaq	9(%rsp), %rbx                 ;   printf ("%d\n", strcmp (zacharias, anton));
	movq	%rbx, %rdi                    ;   printf ("%d\n", strcmp (anton, anton));
	call	strlen@PLT                    ; 
	addq	%rbx, %rax                    ;   char buffer[] = "Huber ";
	movabsq	$8319671809674079809, %rdx    ;   strcat (buffer, toni);
	movq	%rdx, (%rax)                  ;   printf ("%s\n", buffer);
	movw	$33, 8(%rax)                  ;   printf ("%s\n", anton);
	movq	%rbx, %rdi                    ; 
	call	puts@PLT                      ;   return 0;
	leaq	.LC1(%rip), %rdi              ; }
	call	puts@PLT
	movl	$0, %eax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (Debian 12.2.0-14) 12.2.0"
	.section	.note.GNU-stack,"",@progbits

20231026/string-ops-12.c

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";
  char *toni = "Toni";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[] = "Huber ";
  strcat (buffer, toni);
  printf ("%s\n", buffer);
  printf ("%s\n", anton);

  return 0;
}

20231026/string-ops-12.s

deleted100644 → 0
+0 −54
Original line number Diff line number Diff line
	.file	"string-ops-12.c"
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d\n"
.LC1:
	.string	"Anton"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	subq	$16, %rsp                    ; #include <stdio.h>
	.cfi_def_cfa_offset 32               ; #include <string.h>
	movl	$-1, %esi                    ; 
	leaq	.LC0(%rip), %rbx             ; int main (void)
	movq	%rbx, %rdi                   ; {
	movl	$0, %eax                     ;   char *zacharias = "Zacha";
	call	printf@PLT                   ;   char *anton = "Anton";
	movl	$1, %esi                     ;   char *toni = "Toni";
	movq	%rbx, %rdi                   ; 
	movl	$0, %eax                     ;   printf ("%d\n", strcmp (anton, zacharias));
	call	printf@PLT                   ;   printf ("%d\n", strcmp (zacharias, anton));
	movl	$0, %esi                     ;   printf ("%d\n", strcmp (anton, anton));
	movq	%rbx, %rdi                   ; 
	movl	$0, %eax                     ;   char buffer[] = "Huber ";
	call	printf@PLT                   ;   strcat (buffer, toni);
	movl	$1700951368, 9(%rsp)         ;   printf ("%s\n", buffer);
	movl	$2126437, 12(%rsp)           ;   printf ("%s\n", anton);
	leaq	9(%rsp), %rbx                ; 
	movq	%rbx, %rdi                   ;   return 0;
	call	strlen@PLT                   ; }
	addq	%rbx, %rax
	movl	$1768845140, (%rax)
	movb	$0, 4(%rax)
	movq	%rbx, %rdi
	call	puts@PLT
	leaq	.LC1(%rip), %rdi
	call	puts@PLT
	movl	$0, %eax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (Debian 12.2.0-14) 12.2.0"
	.section	.note.GNU-stack,"",@progbits

20231026/string-ops-13.c

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";
  char *toni = "Antonius, genannt Toni";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[13] = "Huber ";
  strncat (buffer, toni, 13);
  printf ("%s\n", buffer);
  printf ("%s\n", anton);

  return 0;
}

20231026/string-ops-14.c

deleted100644 → 0
+0 −20
Original line number Diff line number Diff line
#include <stdio.h>
#include <string.h>

int main (void)
{
  char *zacharias = "Zacha";
  char *anton = "Anton";
  char *toni = "Antonius, genannt Toni";

  printf ("%d\n", strcmp (anton, zacharias));
  printf ("%d\n", strcmp (zacharias, anton));
  printf ("%d\n", strcmp (anton, anton));

  char buffer[14] = "Huber ";
  strncat (buffer, toni, 13);
  printf ("%s\n", buffer);
  printf ("%s\n", anton);

  return 0;
}

20231102/bc-01.txt

deleted100644 → 0
+0 −19
Original line number Diff line number Diff line
cassini/home/peter/bo/2023ws/hp/20231102> bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
obase=13
6 * 9
42
obase=A
6 * 9
54
obase=13
6 * 9
42
obase=1+1+1+1+1+1+1+1+1+1
6 * 9
54

cassini/home/peter/bo/2023ws/hp/20231102>

20231102/bc-02.txt

deleted100644 → 0
+0 −24
Original line number Diff line number Diff line
cassini/home/peter/bo/2023ws/hp/20231102> bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
obase=16
42
2A
ibase=16
B747 + A380
15AC7
obase=10
5 + 5
A
A + A
14
18 + 18
30
ibase=1+1+1+1+1+1+1+1+1+1
obase=10
5 + 5
10

cassini/home/peter/bo/2023ws/hp/20231102>

20231102/gtk-01.txt

deleted100644 → 0
+0 −52
Original line number Diff line number Diff line
cassini/home/peter/bo/2023ws/hp/20231102> gcc -Wall -O gtk-01.c -o gtk-01
gtk-01.c:1:10: fatal error: gtk/gtk.h: Datei oder Verzeichnis nicht gefunden
    1 | #include <gtk/gtk.h>
      |          ^~~~~~~~~~~
compilation terminated.
cassini/home/peter/bo/2023ws/hp/20231102> locate gtk/gtk.h
/usr/include/gtk-2.0/gtk/gtk.h
/usr/include/gtk-3.0/gtk/gtk.h
/usr/include/gtk-4.0/gtk/gtk.h
cassini/home/peter/bo/2023ws/hp/20231102> gcc -Wall -I /usr/include/gtk-4.0 -O gtk-01.c -o gtk-01
In file included from /usr/include/gtk-4.0/gtk/gtk.h:30,
                 from gtk-01.c:1:
/usr/include/gtk-4.0/gtk/css/gtkcss.h:30:10: fatal error: glib.h: Datei oder Verzeichnis nicht gefunden
   30 | #include <glib.h>
      |          ^~~~~~~~
compilation terminated.
cassini/home/peter/bo/2023ws/hp/20231102> locate glib.h
/home/peter/bo/2012ws/rtech/material/usbstick/fdos/source/command/command/suppl/msglib.h
/usr/include/jpeglib.h
/usr/include/dbus-1.0/dbus/dbus-glib.h
/usr/include/glib-2.0/glib.h
/usr/include/harfbuzz/hb-glib.h
cassini/home/peter/bo/2023ws/hp/20231102> gcc -Wall -I /usr/include/gtk-4.0 -I /usr/include/glib-2.0 -O gtk-01.c -o gtk-01
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/gtk-4.0/gtk/css/gtkcss.h:30,
                 from /usr/include/gtk-4.0/gtk/gtk.h:30,
                 from gtk-01.c:1:
/usr/include/glib-2.0/glib/gtypes.h:34:10: fatal error: glibconfig.h: Datei oder Verzeichnis nicht gefunden
   34 | #include <glibconfig.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
cassini/home/peter/bo/2023ws/hp/20231102> pkg-config --cflags --libs gtk4
-I/usr/include/gtk-4.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/graphene-1.0 -I/usr/lib/x86_64-linux-gnu/graphene-1.0/include -mfpmath=sse -msse -msse2 -pthread -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 
cassini/home/peter/bo/2023ws/hp/20231102> gcc -Wall -O -I/usr/include/gtk-4.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/graphene-1.0 -I/usr/lib/x86_64-linux-gnu/graphene-1.0/include -mfpmath=sse -msse -msse2 -pthread -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 gtk-01.c -o gtk-01
/usr/bin/ld: /tmp/cc6S8nDW.o: in function `activate':
gtk-01.c:(.text+0x7): undefined reference to `gtk_application_window_new'
/usr/bin/ld: gtk-01.c:(.text+0xf): undefined reference to `gtk_window_get_type'
/usr/bin/ld: gtk-01.c:(.text+0x1d): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: gtk-01.c:(.text+0x2c): undefined reference to `gtk_window_set_title'
/usr/bin/ld: gtk-01.c:(.text+0x37): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: gtk-01.c:(.text+0x3f): undefined reference to `gtk_window_present'
/usr/bin/ld: /tmp/cc6S8nDW.o: in function `main':
gtk-01.c:(.text+0x60): undefined reference to `gtk_application_new'
/usr/bin/ld: gtk-01.c:(.text+0x8a): undefined reference to `g_signal_connect_data'
/usr/bin/ld: gtk-01.c:(.text+0x8f): undefined reference to `g_application_get_type'
/usr/bin/ld: gtk-01.c:(.text+0x9a): undefined reference to `g_type_check_instance_cast'
/usr/bin/ld: gtk-01.c:(.text+0xa7): undefined reference to `g_application_run'
/usr/bin/ld: gtk-01.c:(.text+0xb1): undefined reference to `g_object_unref'
collect2: error: ld returned 1 exit status
cassini/home/peter/bo/2023ws/hp/20231102> gcc -Wall -O gtk-01.c -I/usr/include/gtk-4.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/graphene-1.0 -I/usr/lib/x86_64-linux-gnu/graphene-1.0/include -mfpmath=sse -msse -msse2 -pthread -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -o gtk-01
cassini/home/peter/bo/2023ws/hp/20231102>

20231102/hp-20231102.txt

deleted100644 → 0
+0 −35
Original line number Diff line number Diff line
"Output"
~~~~~~~~
AND
        10101100                                        A
      & 11111011       Bit gezielt löschen           &  B   "Maske"
        --------                                       ---
        10101000                                        A, außer dort, wo B Nullen hat
                                                           Dort sind es Nullen.
OR
        10101100                                        A
      | 00000010       Bit gezielt setzen            &  B   "Maske"
        --------                                       ---
        10101110                                        A, außer dort, wo B Einsen hat
                                                           Dort sind es Einsen.
XOR
        10101100                                       A
      ^ 00000010       Bit gezielt umklappen        &  B   "Maske"
        --------                                      ---
        10101110                                       A, außer dort, wo B Einsen hat
                                                          Dort wird A umgeklappt.
        00000010
      ^ 00001000
        --------
        00001010

"Input"
~~~~~~~
AND
        10101100
      & 00000100
        --------
        00000100  <-- ungleich 0: Bit war gesetzt

        Achtung: Das Ergebnis ist nicht gleich 1!
                 (sondern: gleich 4)
+0 −492
Original line number Diff line number Diff line
% hp-musterloesung-20231102.pdf - Solutions to the Exercises on Low-Level Programming / Applied Computer Sciences
% Copyright (C) 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023  Peter Gerwinski
%
% This document is free software: you can redistribute it and/or
% modify it either under the terms of the Creative Commons
% Attribution-ShareAlike 3.0 License, or under the terms of the
% GNU General Public License as published by the Free Software
% Foundation, either version 3 of the License, or (at your option)
% any later version.
%
% This document is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this document.  If not, see <http://www.gnu.org/licenses/>.
%
% You should have received a copy of the Creative Commons
% Attribution-ShareAlike 3.0 Unported License along with this
% document.  If not, see <http://creativecommons.org/licenses/>.

% README: Zahlensysteme, Ausgabe von Hexadezimalzahlen, Einfügen in Strings

\documentclass[a4paper]{article}

\usepackage{pgscript}
\renewcommand{\breath}{\bigskip}

\begin{document}

  \section*{Hardwarenahe Programmierung\\
            Musterlösung zu den Übungsaufgaben -- 2.\ November 2023}

  \exercise{Zahlensysteme}

  Wandeln Sie ohne Hilfsmittel

  \begin{minipage}[t]{0.3\textwidth}
    \begin{itemize}
      \item
        nach Dezimal:
        \begin{itemize}
          \item[(a)]
            0010\,0000$_2$
          \item[(b)]
            42$_{16}$
          \item[(c)]
            17$_8$
        \end{itemize}
    \end{itemize}
  \end{minipage}\hfill
  \begin{minipage}[t]{0.3\textwidth}
    \begin{itemize}
      \item
        nach Hexadezimal:
        \begin{itemize}
          \item[(d)]
            0010\,0000$_2$
          \item[(e)]
            42$_{10}$
          \item[(f)]
            192.168.20.254$_{256}$
        \end{itemize}
    \end{itemize}
  \end{minipage}\hfill
  \begin{minipage}[t]{0.3\textwidth}
    \begin{itemize}
      \item
        nach Binär:
        \begin{itemize}
          \item[(g)]
            750$_8$
          \item[(h)]
            42$_{10}$
          \item[(i)]
            AFFE$_{16}$
        \end{itemize}
    \end{itemize}
  \end{minipage}
  
  \medskip

  Berechnen Sie ohne Hilfsmittel:
  \begin{itemize}
    \item[(j)]
      750$_8$ \& 666$_8$
    \item[(k)]
      A380$_{16}$ + B747$_{16}$
    \item[(l)]
      AFFE$_{16} >> 1$
  \end{itemize}

  Die tiefgestellte Zahl steht für die Basis des Zahlensystems.
  Jede Teilaufgabe zählt 1 Punkt. \addtocounter{points}{12}

  (In der Klausur sind Hilfsmittel zugelassen,
  daher ist dies \emph{keine\/} typische Klausuraufgabe.)

  \solution

  Wandeln Sie ohne Hilfsmittel

  \begin{itemize}
    \item
      nach Dezimal:
      \begin{itemize}
        \item[(a)]
          $0010\,0000_2 = 32_{10}$

          Eine Eins mit fünf Nullen dahinter steht binär für $2^5 = 32$:\\
          mit $1$ anfangen und fünfmal verdoppeln.
        \item[(b)]
          $42_{16} = 4 \cdot 16 + 2 \cdot 1 = 64 + 2 = 66$
        \item[(c)]
          $17_8 = 1 \cdot 8 + 7 \cdot 1 = 8 + 7 = 15$
      \end{itemize}
      Umwandlung von und nach Dezimal ist immer rechenaufwendig.
      Umwandlungen zwischen Binär, Oktal und Hexadezimal gehen ziffernweise
      und sind daher wesentlich einfacher.
    \item
      nach Hexadezimal:
      \begin{itemize}
        \item[(d)]
          $0010\,0000_2 = 20_{16}$

          Umwandlung von Binär nach Hexadezimal geht ziffernweise:\\
          Vier Binärziffern werden zu einer Hex-Ziffer.
        \item[(e)]
          $\rm 42_{10} = 32_{10} + 10_{10} = 20_{16} + A_{16} = 2A_{16}$
        \item[(f)]
          $\rm 192.168.20.254_{256} = C0\,A8\,14\,FE_{16}$

          Umwandlung von der Basis 256 nach Hexadezimal geht ziffernweise:\\
          Eine 256er-Ziffer wird zu zwei Hex-Ziffern.

          Da die 256er-Ziffern dezimal angegeben sind,
          müssen wir viermal Dezimal nach Hexadezimal umwandeln.
          Hierfür bieten sich unterschiedliche Wege an.

          $\rm 192_{10} = 128_{10} + 64_{10} = 1100\,0000_{2} = C0_{16}$

          $\rm 168_{10} = 10_{10} \cdot 16_{10} + 8_{10} = A_{16} \cdot 10_{16} + 8_{16} = A8_{16}$

          $20_{10} = 16_{10} + 4_{10} = 10_{16} + 4_{16} = 14$
          
          $\rm 254_{10} = 255_{10} - 1_{10} = FF_{16} - 1_{16} = FE_{16}$
      \end{itemize}
    \item
      nach Binär:
      \begin{itemize}
        \item[(g)]
          $750_8 = 111\,101\,000_2$

          Umwandlung von Oktal nach Binär geht ziffernweise:\\
          Eine Oktalziffer wird zu drei Binärziffern.
        \item[(h)]
          $\rm 42_{10} = 2A_{16}$ (siehe oben) $= 0010\,1010_{16}$

          Umwandlung von Hexadezimal nach Binär geht ziffernweise:\\
          Eine Hex-Ziffer wird zu vier Binärziffern.
        \item[(i)]
          $\rm AFFE_{16} = 1010\,1111\,1111\,1110_2$

          Umwandlung von Hexadezimal nach Binär geht ziffernweise:\\
          Eine Hex-Ziffer wird zu vier Binärziffern.
      \end{itemize}
  \end{itemize}
  
  \medskip

  Berechnen Sie ohne Hilfsmittel:
  \begin{itemize}
    \item[(j)]
      $750_8\,\&\,666_8
      = 111\,101\,000_2\,\&\,110\,110\,110_2
      = 110\,100\,000_2
      = 640_8$

      Binäre Und-Operationen lassen sich am leichtesten
      in binärer Schreibweise durchführen.
      Umwandlung zwischen Oktal und Binär geht ziffernweise:
      Eine Oktalziffer wird zu drei Binärziffern und umgekehrt.

      Mit etwas Übung funktionieren diese Operationen
      auch direkt mit Oktalzahlen im Kopf.

    \item[(k)]
      $\rm\phantom{+}A380_{16}$\\
      $\rm+\kern2ptB747_{16}$\\[-\medskipamount]
      \rule{1.4cm}{0.5pt}\\
      $\rm 15AC7_{16}$
      \begin{picture}(0,0)
        \put(-1.4,0.35){\mbox{\scriptsize\bf 1}}
      \end{picture}

      Mit Hexadezimalzahlen (und Binär- und Oktal- und sonstigen Zahlen)
      kann man genau wie mit Dezimalzahlen schriftlich rechnen.
      Man muß nur daran denken, daß der "`Zehner"'-Überlauf nicht bei
      $10_{10}$ stattfindet, sondern erst bei $10_{16} = 16_{10}$
      (hier: $\rm 8_{16} + 4_{16} = C_{16}$ und
      $\rm 3_{16} + 7_{16} = A_{16}$, aber
      $\rm A_{16} + B_{16} = 10_{10} + 11_{10}
      = 21_{10} = 16_{10} + 5_{10} = 10_{16} + 5_{16} =  15_{16}$).

    \item[(l)]
      $\rm AFFE_{16} >> 1
      = 1010\,1111\,1111\,1110_2 >> 1
      = 0101\,0111\,1111\,1111_2
      = 57FF_{16}$

      Bit-Verschiebungen lassen sich am leichtesten
      in binärer Schreibweise durchführen.
      Umwandlung zwischen Hexadezimal und Binär geht ziffernweise:
      Eine Hex-Ziffer wird zu vier Binärziffern und umgekehrt.

      Mit etwas Übung funktionieren diese Operationen
      auch direkt mit Hexadezimalzahlen im Kopf.

  \end{itemize}

  \exercise{Ausgabe von Hexadezimalzahlen}

  Schreiben Sie eine Funktion \lstinline{void print_hex (uint32_t x)},
  die eine gegebene vorzeichenlose 32-Bit-Ganzzahl \lstinline{x}
  als Hexadezimalzahl ausgibt.
  (Der Datentyp \lstinline{uint32_t} ist mit \lstinline{#include <stdint.h>} verfügbar.)

  Verwenden Sie dafür \emph{nicht\/} \lstinline{printf()} mit
  der Formatspezifikation \lstinline{%x} als fertige Lösung,
  sondern programmieren Sie die nötige Ausgabe selbst.
  (Für Tests ist \lstinline{%x} hingegen erlaubt und sicherlich nützlich.)

  Die Verwendung von \lstinline{printf()}
  mit anderen Formatspezifikationen wie z.\,B.\ \lstinline{%d}
  oder \lstinline{%c} oder \lstinline{%s} ist hingegen zulässig.

  \points{8}

  (Hinweis für die Klausur: Abgabe auf Datenträger ist erlaubt und erwünscht,
  aber nicht zwingend.)

  \solution

  Um die Ziffern von \lstinline{x} zur Basis 16 zu isolieren,
  berechnen wir \lstinline{x % 16} (modulo 16 = Rest bei Division durch 16)
  und dividieren anschließend \lstinline{x} durch 16,
  solange bis \lstinline{x} den Wert 0 erreicht.

  Wenn wir die auf diese Weise ermittelten Ziffern direkt ausgeben,
  sind sie \emph{Little-Endian}, erscheinen also in umgekehrter Reihenfolge.
  Die Datei \gitfile{hp}{2023ws/20231102}{loesung-2-1.c} setzt diesen Zwischenschritt um.

  Die Ausgabe der Ziffern erfolgt in \gitfile{hp}{2023ws/20231102}{loesung-2-1.c}
  über \lstinline{printf ("%d")}
  für die Ziffern 0 bis 9. Für die darüberliegenden Ziffern
  wird der Buchstabe \lstinline{a} um die Ziffer abzüglich 10 inkrementiert
  und der erhaltene Wert mit \lstinline{printf ("%c")} als Zeichen ausgegeben.

  Um die umgekehrte Reihenfolge zu beheben,
  speichern wir die Ziffern von \lstinline{x}
  in einem Array \lstinline{digits[]} zwischen
  und geben sie anschließend in einer zweiten Schleife
  in umgekehrter Reihenfolge aus (siehe \gitfile{hp}{2023ws/20231102}{loesung-2-2.c}).
  Da wir wissen, daß \lstinline{x} eine 32-Bit-Zahl ist
  und daher höchstens 8 Hexadezimalziffern haben kann,
  ist 8 eine sinnvolle Länge für das Ziffern-Array \lstinline{digits[8]}.

  Nun sind die Ziffern in der richtigen Reihenfolge,
  aber wir erhalten zusätzlich zu den eigentlichen Ziffern führende Nullen.
  Da in der Aufgabenstellung nicht von führenden Nullen die Rede war,
  sind diese nicht verboten; \gitfile{hp}{2023ws/20231102}{loesung-2-2.c} ist daher
  eine richtige Lösung der Aufgabe.

  \breath

  Wenn wir die führenden Nullen vermeiden wollen,
  können wir die \lstinline{for}-Schleifen durch \lstinline{while}-Schleifen ersetzen.
  Die erste Schleife zählt hoch, solange \lstinline{x} ungleich 0 ist;
  die zweite zählt von dem erreichten Wert aus wieder herunter
  -- siehe \gitfile{hp}{2023ws/20231102}{loesung-2-3.c}.
  Da wir wissen, daß die Zahl \lstinline{x} höchstens 32 Bit,
  also höchstens 8 Hexadezimalziffern hat,
  wissen wir, daß \lstinline{i} höchstens den Wert 8 erreichen kann,
  das Array also nicht überlaufen wird.

  Man beachte, daß der Array-Index nach der ersten Schleife "`um einen zu hoch"' ist.
  In der zweiten Schleife muß daher \emph{zuerst\/} der Index dekrementiert werden.
  Erst danach darf ein Zugriff auf \lstinline{digit[i]} erfolgen.

  \breath

  Alternativ können wir auch mitschreiben,
  ob bereits eine Ziffer ungleich Null ausgegeben wurde,
  und andernfalls die Ausgabe von Null-Ziffern unterdrücken
  -- siehe \gitfile{hp}{2023ws/20231102}{loesung-2-4.c}.

  \breath

  Weitere Möglichkeiten ergeben sich, wenn man bedenkt,
  daß eine Hexadezimalziffer genau einer Gruppe von vier Binärziffern entspricht.
  Eine Bitverschiebung um 4 nach rechts
  ist daher dasselbe wie eine Division durch 16,
  und eine Und-Verknüpfung mit 15$_{10}$ = f$_{16}$ = 1111$_2$
  ist dasselbe wie die Operation Modulo 16.
  Die Datei \gitfile{hp}{2023ws/20231102}{loesung-2-5.c} ist eine in dieser Weise abgewandelte Variante
  von \gitfile{hp}{2023ws/20231102}{loesung-2-3.c}.

  Mit dieser Methode kann man nicht nur auf die jeweils unterste Ziffer,
  sondern auf alle Ziffern direkt zugreifen.
  Damit ist kein Array als zusätzlicher Speicher mehr nötig.
  Die Datei \gitfile{hp}{2023ws/20231102}{loesung-2-6.c} setzt dies auf einfache Weise um.
  Sie gibt wieder führende Nullen mit aus,
  ist aber trotzdem eine weitere richtige Lösung der Aufgabe.

  Die führenden Nullen ließen sich auf die gleiche Weise vermeiden
  wie in \gitfile{hp}{2023ws/20231102}{loesung-2-4.c}.

  Die Bitverschiebungsmethode hat den Vorteil,
  daß kein zusätzliches Array benötigt wird.
  Auch wird die als Parameter übergebene Zahl \lstinline{x} nicht verändert,
  was bei größeren Zahlen, die über Zeiger übergeben werden, von Vorteil sein kann.
  Demgegenüber steht der Nachteil,
  daß diese Methode nur für eine ganze Anzahl von Bits funktioniert,
  also für Basen, die Zweierpotenzen sind (z.\,B.\ 2, 8, 16, 256).
  Für alle anderen Basen (z.\,B.\ 10) eignet sich nur die Methode
  mit Division und Modulo-Operation.

  \exercise{Einfügen in Strings}

  Wir betrachten das folgende Programm (\gitfile{hp}{2023ws/20231102}{aufgabe-3.c}):
%  \begin{lstlisting}[style=numbered]
  \begin{lstlisting}
    #include <stdio.h>
    #include <string.h>

    void insert_into_string (char src, char *target, int pos)
    {
      int len = strlen (target);
      for (int i = pos; i < len; i++)
        target[i+1] = target[i];
      target[pos] = src;
    }

    int main (void)
    {
      char test[100] = "Hochshule Bochum";
      insert_into_string ('c', test, 5);
      printf ("%s\n", test);
      return 0;
    }
  \end{lstlisting}
  Die Ausgabe des Programms lautet:
  \lstinline[style=terminal]{Hochschhhhhhhhhhh}

  \begin{enumerate}[\quad(a)]
    \item
      Erklären Sie, wie die Ausgabe zustandekommt.
      \points{3}
%      \workspace{12}
    \item
      Schreiben Sie die Funktion \lstinline|insert_into_string()| so um,
      daß sie den Buchstaben \lstinline{src} an der Stelle \lstinline{pos}
      in den String \lstinline{target} einfügt.\par
      Die Ausgabe des Programms müßte dann
      \lstinline[style=terminal]{Hochschule Bochum} lauten.
      \points{2}
%      \workspace{13}
    \item
      Was kann passieren, wenn Sie die Zeile
      \lstinline{char test[100] = "Hochshule Bochum";}\\
      durch
      \lstinline{char test[] = "Hochshule Bochum";} ersetzen?
      Begründen Sie Ihre Antwort.
      \points{2}
%      \workspace{10}
    \item
      Was kann passieren, wenn Sie die Zeile
      \lstinline{char test[100] = "Hochshule Bochum";}\\
      durch
      \lstinline{char *test = "Hochshule Bochum";} ersetzen?
      Begründen Sie Ihre Antwort.
      \points{2}
%      \workspace{10}
%    \item
%      Schreiben Sie eine Funktion
%      \lstinline{void insert_into_string_sorted (char src, char *target)},
%      die voraussetzt, daß der String \lstinline{target} alphabetisch sortiert ist
%      und den Buchstaben \lstinline{src} an der alphabetisch richtigen Stelle
%      einfügt. Diese Funktion darf die bereits vorhandene Funktion
%      \lstinline|insert_into_string()| aufrufen.\\
%      \points{4}\par
%      Zum Testen eignen sich die folgenden Zeilen im Hauptprogramm:
%      \begin{lstlisting}[gobble=8]
%        char test[100] = "";
%        insert_into_string_sorted ('c', test);
%        insert_into_string_sorted ('a', test);
%        insert_into_string_sorted ('d', test);
%        insert_into_string_sorted ('b', test);
%      \end{lstlisting}
%      Danach sollte \lstinline{test[]} die Zeichenfolge \lstinline{"abcd"} enthalten.
%      \workspace{14}
%    \item
%      Wie schnell (Landau-Symbol in Abhängigkeit von der Länge $n$ des Strings)
%      arbeitet Ihre Funktion
%      \lstinline{void insert_into_string_sorted (char src, char *target)}
%      und warum?
%      \points{1}
%      \workspace{10}
%    \item
%      Beschreiben Sie -- in Worten oder als C-Quelltext --, wie man die Funktion\\
%      \lstinline{void insert_into_string_sorted (char src, char *target)}
%      so gestalten kann,\\
%      daß sie in $\mathcal{O}(\log n)$ arbeitet.
%      \points{3}
%      \workspace{35}
  \end{enumerate}

  \solution

  \begin{enumerate}[\quad(a)]
    \item
      \textbf{Erklären Sie, wie die Ausgabe zustandekommt.}

      In der Schleife wird \emph{zuerst\/} der nächste Buchstabe \lstinline{target[i + 1]}
      gleich dem aktuellen gesetzt
      und \emph{danach\/} der Zähler \lstinline{i} erhöht.
      Dadurch wird im nächsten Schleifendurchlauf der bereits verschobene Buchstabe
      noch weiter geschoben und letztlich alle Buchstaben in \lstinline{target[]}
      durch den an der Stelle \lstinline{pos} ersetzt.

    \item
      \textbf{Schreiben Sie die Funktion \lstinline|insert_into_string()| so um,
      daß sie den Buchstben \lstinline{src} an der Stelle \lstinline{pos}
      in den String \lstinline{target} einfügt.}\par
      \textbf{Die Ausgabe des Programms müßte dann
      \lstinline[style=terminal]{Hochschule Bochum} lauten.}

      Um im String "`Platz zu schaffen"', muß man von hinten beginnen,
      also die Schleife umdrehen\\
      (siehe: \gitfile{hp}{2023ws/20231102}{loesung-3.c}):
      \begin{lstlisting}{gobble=8}
        for (int i = len; i >= pos; i--)
          target[i + 1] = target[i];
      \end{lstlisting}

    \item
      \textbf{Was kann passieren, wenn Sie die Zeile
      \lstinline{char test[100] = "Hochshule Bochum";}\\
      durch
      \lstinline{char test[] = "Hochshule Bochum";}
      ersetzen und warum?}

      Die Schreibweise \lstinline{test[]} bedeutet,
      daß der Compiler selbst zählt, wieviel Speicherplatz der String benötigt,
      un dann genau die richtige Menge Speicher reserviert
      (anstatt, wie wir es manuell getan haben, pauschal Platz für 100 Zeichen).

      Wenn wir nun in den String ein zusätzliches Zeichen einfügen,
      ist dafür kein Speicherplatz reserviert worden,
      und wir \textbf{überschreiben} dann Speicher, an dem sich andere Variable befinden,
      was zu einem \textbf{Absturz} führen kann.

      Da wir hier nur ein einziges Zeichen schreiben,
      wird dieser Fehler nicht sofort auffallen.
      Dies ist schlimmer, als wenn das Programm direkt beim ersten Test abstürzt,
      denn dadurch entsteht bei uns der Eindruck, es sei in Ordnung.
      Wenn danach der Fehler in einer Produktivumgebung auftritt,
      kann dadurch Schaden entstehen -- je nach Einsatzgebiet der Software
      u.\,U.\ erheblicher Vermögens-, Sach- und/oder Personenschaden
      (z.\,B.\ Absturz eines Raumflugkörpers).

    \item
      \textbf{Was kann passieren, wenn Sie 
      \lstinline{char test[100] = "Hochshule Bochum";}\\
      durch
      \lstinline{char *test = "Hochshule Bochum";}
      ersetzen und warum?}

      In diesem Fall wird der Speicher für den eigentlichen String
      in einem unbenannten, \textbf{nicht schreibbaren} Teil des Speichers reserviert.
      Unser Versuch, dorthin ein zusätzliches Zeichen zu schreiben,
      fürt dann normalerweise zu einem \textbf{Absturz}.

      In manchen Systemen (Betriebssystem, Compiler, \dots)
      ist der Speicherbereich tatsächlich sehr wohl schreibbar.
      In diesem Fall tritt der Absturz nicht immer und nicht immer sofort auf --
      genau wie in Aufgabenteil (c).
     
  \end{enumerate}

\end{document}

20231102/inttypes-03.txt

deleted100644 → 0
+0 −21
Original line number Diff line number Diff line
2^14 ist nicht "2 hoch 14", sondern "2 xor-verknüpft mit 14".
Wie rechnet man das aus?

Binär rechnen:
  14 = 15 - 1 = 1111 - 0001 = 1110
  (dezimal)     (binär)

          2 = 10
  (dezimal)   (binär)

  0010
^ 1110
  ----
  1100

Alternative: 2^14 ist dasselbe wie 14^2

  1110
^ 0010  <-- dieses eine Bit umklappen, die anderen beibehalten
  ----
  1100

20231102/libraries-01.txt

deleted100644 → 0
+0 −10
Original line number Diff line number Diff line
cassini/home/peter/bo/2023ws/hp/20231102> ar rs libanswer.a answer.o
ar: creating libanswer.a
cassini/home/peter/bo/2023ws/hp/20231102> ls -l libanswer.a
-rw-r--r-- 1 peter peter 1232  2. Nov 14:45 libanswer.a
cassini/home/peter/bo/2023ws/hp/20231102> gcc -Wall -O philosophy.c -lanswer -o philosophy   /usr/bin/ld: cannot find -lanswer: Datei oder Verzeichnis nicht gefunden
collect2: error: ld returned 1 exit status
cassini/home/peter/bo/2023ws/hp/20231102> gcc -L . -Wall -O philosophy.c -lanswer -o philosophy
cassini/home/peter/bo/2023ws/hp/20231102> ./philosophy
The answer is 23.
cassini/home/peter/bo/2023ws/hp/20231102>

20231102/number-systems-01.c

deleted100644 → 0
+0 −9
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int number[] = { 01, 02, 03, 04, 05, 06, 07, 08, 09, 10 };  // Achtung: Oktalzahlen!
  for (int i = 0; i < 10; i++)
    printf ("%d\n", number[i]);
  return 0;
}

20231102/number-systems-02.c

deleted100644 → 0
+0 −12
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int number[] = { 023, 025, 027,  // Achtung: Oktalzahlen!
                   033, 035, 037,
                   123, 125, 127,
                   133, 135, 137 };
  for (int i = 0; i < 12; i++)
    printf ("%d\n", number[i]);
  return 0;
}

20231109/blink-9.s

deleted100644 → 0
+0 −84
Original line number Diff line number Diff line
	.file	"blink-9.c"
__SP_H__ = 0x3e
__SP_L__ = 0x3d
__SREG__ = 0x3f
__tmp_reg__ = 0
__zero_reg__ = 1
	.text
.global	__vector_1
	.type	__vector_1, @function
__vector_1:
	push r1
	push r0
	in r0,__SREG__
	push r0                                       ; #include <avr/io.h>
	clr __zero_reg__                              ; #include <avr/interrupt.h>
	push r24                                      ; #include <stdint.h>
/* prologue: Signal */                                ; 
/* frame size = 0 */                                  ; #define F_CPU 16000000l
/* stack size = 4 */                                  ; #include <util/delay.h>
.L__stack_usage = 4                                   ; 
	ldi r24,lo8(1)                                ; uint8_t key_pressed = 0;
	sts key_pressed,r24                           ; 
/* epilogue start */                                  ; ISR (INT0_vect)  /* PD2 */
	pop r24                                       ; {
	pop r0                                        ;   key_pressed = 1;
	out __SREG__,r0                               ; }
	pop r0                                        ; 
	pop r1                                        ; int main (void)
	reti                                          ; {
	.size	__vector_1, .-__vector_1              ;   cli ();
	.section	.text.startup,"ax",@progbits  ;   EICRA = 1 << ISC00 | 1 << ISC01;  /* INT0: steigende Flanke */
.global	main                                          ;   EIMSK = 1 << INT0;  /* INT0 einschalten */
	.type	main, @function                       ;   sei ();
main:                                                 ;   DDRD = 0xfb;   /* binär: 1111 1011 */
/* prologue: function */                              ;   PORTD = 0x44;  /* binär: 0100 0100 */
/* frame size = 0 */                                  ;   while (1)
/* stack size = 0 */                                  ;     {
.L__stack_usage = 0                                   ;       while (!key_pressed)
/* #APP */                                            ;         ;  /* just wait */
 ;  17 "blink-9.c" 1                                  ;       PORTD ^= 0x40;
	cli                                           ;       _delay_ms (1);  /* Wartezeit zum Entprellen */
 ;  0 "" 2                                            ;       key_pressed = 0;
/* #NOAPP */                                          ;     }
	ldi r24,lo8(3)                                ;   return 0;
	sts 105,r24                                   ; }
	ldi r24,lo8(1)
	out 0x1d,r24
/* #APP */
 ;  20 "blink-9.c" 1
	sei
 ;  0 "" 2
/* #NOAPP */
	ldi r24,lo8(-5)
	out 0xa,r24
	ldi r24,lo8(68)
	out 0xb,r24
	ldi r25,lo8(64)
.L4:
	lds r24,key_pressed
	cpse r24,__zero_reg__
	rjmp .L7
.L6:
	rjmp .L6
.L7:
	in r24,0xb
	eor r24,r25
	out 0xb,r24
	ldi r30,lo8(3999)
	ldi r31,hi8(3999)
1:	sbiw r30,1
	brne 1b
	rjmp .
	nop
	sts key_pressed,__zero_reg__
	rjmp .L4
	.size	main, .-main
.global	key_pressed
	.section .bss
	.type	key_pressed, @object
	.size	key_pressed, 1
key_pressed:
	.zero	1
	.ident	"GCC: (GNU) 5.4.0"
.global __do_clear_bss

20231109/hp-20231109.toc

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
\babel@toc {german}{}\relax 
\beamer@sectionintoc {3}{Bibliotheken}{3}{0}{1}
\beamer@subsectionintoc {3}{4}{Callbacks}{3}{0}{1}
\beamer@subsectionintoc {3}{5}{Projekt organisieren: make}{5}{0}{1}
\beamer@sectionintoc {4}{Hardwarenahe Programmierung}{10}{0}{2}
\beamer@subsectionintoc {4}{1}{Bit-Operationen}{10}{0}{2}
\beamer@subsubsectionintoc {4}{1}{1}{Zahlensysteme}{10}{0}{2}
\beamer@subsubsectionintoc {4}{1}{2}{Bit-Operationen in C}{12}{0}{2}
\beamer@subsectionintoc {4}{2}{I/O-Ports}{14}{0}{2}
\beamer@subsectionintoc {4}{3}{Interrupts}{17}{0}{2}
\beamer@subsectionintoc {4}{4}{volatile-Variable}{19}{0}{2}

20241010/gitlab.png

0 → 120000
+1 −0
Original line number Diff line number Diff line
../common/gitlab.png
 No newline at end of file

20241010/hello-01.txt

0 → 100644
+15 −0
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  printf ("Hello, world!\n");
  return 0;
}
cassini/home/peter/bo/2024ws/hp/20241010> gcc hello-01.c -o hello-01
cassini/home/peter/bo/2024ws/hp/20241010> ls -l hello-*
-rwxr-xr-x 1 peter peter 15952 10. Okt 12:02 hello-01
-rw-r--r-- 1 peter peter    82 10. Okt 12:00 hello-01.c
-rw-r--r-- 1 peter peter  1261  8. Okt 2023  hello-gtk.c
cassini/home/peter/bo/2024ws/hp/20241010> ./hello-01
Hello, world!
cassini/home/peter/bo/2024ws/hp/20241010>

20241010/hello-04.c

0 → 100644
+7 −0
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  printf ("Die Antwort lautet: %d\n", 42);
  return 0;
}
Original line number Diff line number Diff line
% hp-20231005.pdf - Lecture Slides on Low-Level Programming
% Copyright (C) 2012, 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023  Peter Gerwinski
% hp-20241010.pdf - Lecture Slides on Low-Level Programming
% Copyright (C) 2012, 2013, 2015-2023, 2024  Peter Gerwinski
%
% This document is free software: you can redistribute it and/or
% modify it either under the terms of the Creative Commons
@@ -20,7 +20,7 @@
% Attribution-ShareAlike 3.0 Unported License along with this
% document.  If not, see <http://creativecommons.org/licenses/>.

% README: Einführung, Einführung in C (bis 2.7: Strukturierte Programmierung)
% README: Einführung, Einführung in C

\documentclass[10pt,t]{beamer}

@@ -41,7 +41,7 @@

\title{Hardwarenahe Programmierung}
\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski}
\date{5.\ Oktober 2023}
\date{10.\ Oktober 2024}

\begin{document}

@@ -49,11 +49,11 @@

\date{\begin{picture}(0,0)
        \color{red}
        \put(0.55,1.05){\makebox(0,0)[t]{$\underbrace{\rule{1.45cm}{0pt}}_{%
        \put(0.65,1.05){\makebox(0,0)[t]{$\underbrace{\rule{1.45cm}{0pt}}_{%
          \mbox{\emph{rerum naturalium\/} = der natürlichen Dinge (lat.)}}$}}
        \put(1.55,-3){\makebox(0,0)[bl]{\redurl{https://www.peter.gerwinski.de/physik/}}}
      \end{picture}%
      5.\ Oktober 2023}
      10.\ Oktober 2024}

\maketitleframe

@@ -305,11 +305,11 @@

\end{frame}

\sectionnonumber{Zu dieser Lehrveranstaltung}
\nosectionnonumber{Zu dieser Lehrveranstaltung}

\begin{frame}

  \showsectionnonumber
  \shownosectionnonumber

  \begin{itemize}
    \item
@@ -385,7 +385,7 @@

\end{frame}

\section{Einführung}
\setcounter{section}{1}
\section{Einführung in C}
\subsection{Hello, world!}

Original line number Diff line number Diff line
% hp-uebung-20231005.pdf - Exercises on Low-Level Programming / Applied Computer Sciences
% Copyright (C) 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023  Peter Gerwinski
% hp-uebung-20241010.pdf - Exercises on Low-Level Programming / Applied Computer Sciences
% Copyright (C) 2013, 2015-2023, 2024  Peter Gerwinski
%
% This document is free software: you can redistribute it and/or
% modify it either under the terms of the Creative Commons
@@ -20,7 +20,7 @@
% Attribution-ShareAlike 3.0 Unported License along with this
% document.  If not, see <http://creativecommons.org/licenses/>.

% README: Hello-World-Programme, Schaltjahr ermitteln, Maximum berechnen
% README: 0: Hello-World-Programme, Schaltjahr ermitteln, Maximum berechnen

\documentclass[a4paper]{article}

@@ -33,18 +33,18 @@
  \thispagestyle{empty}

  \section*{Hardwarenahe Programmierung\\
            Übungsaufgaben -- 5.\ Oktober 2023}
            Übungsaufgaben 0 -- 10.\ Oktober 2024}

  \exercise{Hello, world!}

  Unter \url{https://gitlab.cvh-server.de/pgerwinski/hp/tree/2023ws/20231005}
  Unter \url{https://gitlab.cvh-server.de/pgerwinski/hp/tree/2024ws/20241010}
  können Sie
  \href{https://gitlab.cvh-server.de/pgerwinski/hp/raw/2023ws/20231005/hp-uebung-20231005.pdf}%
       {diesen Übungszettel als PDF-Datei}
  herunterladen sowie die folgenden Beispielprogramme:
  \begin{enumerate}[\quad(a)]
    \item \gitfile{hp}{2023ws/20231005}{hello.c}
    \item \gitfile{hp}{2023ws/20231005}{hello-gtk.c}
    \item \gitfile{hp}{2024ws/20241010}{hello.c}
    \item \gitfile{hp}{2024ws/20241010}{hello-gtk.c}
  \end{enumerate}
  Bringen Sie diese Programme auf Ihrem eigenen Rechner
  und/oder auf einem Rechner der Hochschule
@@ -59,6 +59,7 @@

  \textbf{Hinweis 0:} Diese PDF-Datei enthält Links zu den jeweiligen Dateien.
  Durch Anklicken können Sie diese direkt herunterladen.
  (Falls dies nicht funktionieren sollte, bitte bescheidsagen.)

  \textbf{Hinweis 1:} Für (b) benötigen Sie die Bibliothek GTK+.
  Diese finden Sie -- einschließlich Dokumentation -- als freie Software im Internet.
Original line number Diff line number Diff line
@@ -2,10 +2,9 @@

int main (void)
{
  int a = 360;
  printf ("a = %d\n", a);
  int b;
  printf ("Bitte b eingeben: ");
  int a = 42;
  int b = 0;
  printf ("a = 42\nBitte b eingeben: ");
  scanf ("%d", &b);
  printf ("a / b = %d\n", a / b);
  return 0;
Original line number Diff line number Diff line
@@ -2,14 +2,13 @@

int main (void)
{
  int a = 360;
  printf ("a = %d\n", a);
  int b;
  printf ("Bitte b eingeben: ");
  int a = 42;
  int b = 0;
  printf ("a = 42\nBitte b eingeben: ");
  scanf ("%d", &b);
  if (b != 0)
    printf ("a / b = %d\n", a / b);
  else
    printf ("Bitte nicht durch 0 teilen.\n");
    printf ("Bitte nicht durch 0 dividieren!\n);
  return 0;
}
Original line number Diff line number Diff line
@@ -2,14 +2,13 @@

int main (void)
{
  int a = 360;
  printf ("a = %d\n", a);
  int b;
  printf ("Bitte b eingeben: ");
  int a = 42;
  int b = 0;
  printf ("a = 42\nBitte b eingeben: ");
  scanf ("%d", &b);
  if (b = 0)
    printf ("Bitte nicht durch 0 teilen.\n");
  else
  if (b != 0)
    printf ("a / b = %d\n", a / b);
  else
    printf ("Bitte nicht durch 0 dividieren!\n");
  return 0;
}
Original line number Diff line number Diff line
@@ -2,14 +2,13 @@

int main (void)
{
  int a = 360;
  printf ("a = %d\n", a);
  int b;
  printf ("Bitte b eingeben: ");
  int a = 42;
  int b = 0;
  printf ("a = 42\nBitte b eingeben: ");
  scanf ("%d", &b);
  if (b)
    printf ("a / b = %d\n", a / b);
  else
    printf ("Bitte nicht durch 0 teilen.\n");
    printf ("Bitte nicht durch 0 dividieren!\n");
  return 0;
}
Original line number Diff line number Diff line
@@ -2,14 +2,14 @@

int main (void)
{
  int a = 360;
  printf ("a = %d\n", a);
  int b;
  printf ("Bitte b eingeben: ");
  int a = 42;
  int b = 0;
  printf ("a = 42\nBitte b eingeben: ");
  scanf ("%d", &b);
  if (b == 0)
    printf ("Bitte nicht durch 0 teilen.\n");
  else
  if (b)
    printf ("a / b = %d\n", a / b);
  else
    printf ("Bitte nicht durch 0 dividieren!\n");
    printf ("Das macht man nicht!\n");
  return 0;
}
Original line number Diff line number Diff line
@@ -2,17 +2,15 @@

int main (void)
{
  int a = 360;
  printf ("a = %d\n", a);
  int b;
  printf ("Bitte b eingeben: ");
  int a = 42;
  int b = 0;
  printf ("a = 42\nBitte b eingeben: ");
  scanf ("%d", &b);
  if (b == 0) {
    printf ("Bitte nicht durch 0 teilen.\n");
    printf ("Das macht man nicht.\n");
  }
  else {
  if (b)
    printf ("a / b = %d\n", a / b);
  else {
    printf ("Bitte nicht durch 0 dividieren!\n");
    printf ("Das macht man nicht!\n");
  }
  return 0;
}
Original line number Diff line number Diff line
@@ -2,17 +2,16 @@

int main (void)
{
  int a = 360;
  printf ("a = %d\n", a);
  int b;
  printf ("Bitte b eingeben: ");
  int a = 42;
  int b = 0;
  printf ("a = 42\nBitte b eingeben: ");
  scanf ("%d", &b);
  if (b == 0)
  if (b)
    printf ("a / b = %d\n", a / b);
  else
    {
      printf ("Bitte nicht durch 0 teilen.\n");
      printf ("Das macht man nicht.\n");
      printf ("Bitte nicht durch 0 dividieren!\n");
      printf ("Das macht man nicht!\n");
    }
  else
    printf ("a / b = %d\n", a / b);
  return 0;
}

20241010/if-07a.pas

0 → 100644
+18 −0
Original line number Diff line number Diff line
program if_07a;

var
  a: Integer = 42;
  b: Integer = 0;

begin
  WriteLn ('a = 42');
  Write ('Bitte b eingeben: ');
  ReadLn (b);
  if b <> 0 then
    WriteLn ('a / b = ', a / b)
  else
    begin
      WriteLn ('Bitte nicht durch 0 dividieren!');
      WriteLn ('Das macht man nicht!')
    end
end.

20241010/if-07b.pas

0 → 100644
+18 −0
Original line number Diff line number Diff line
program if_07b;

var
  a: Integer = 42;
  b: Integer = 0;

begin
  WriteLn ('a = 42');
  Write ('Bitte b eingeben: ');
  ReadLn (b);
  if b <> 0 then
    WriteLn ('a / b = ', a div b)
  else
    begin
      WriteLn ('Bitte nicht durch 0 dividieren!');
      WriteLn ('Das macht man nicht!')
    end
end.

20241010/if-07c.c

0 → 100644
+17 −0
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 42;
  int b = 0;
  printf ("a = %d\nBitte b eingeben: ", a);
  scanf ("%d", &b);
  if (b)
    printf ("a / b = %d\n", a / b);
  else
    {
      printf ("Bitte nicht durch 0 dividieren!\n");
      printf ("Das macht man nicht!\n");
    }
  return 0;
}

20241010/if-07c.pas

0 → 100644
+18 −0
Original line number Diff line number Diff line
program if_07c;

var
  a: Integer = 42;
  b: Integer = 0;

begin
  WriteLn ('a = ', a);
  Write ('Bitte b eingeben: ');
  ReadLn (b);
  if b <> 0 then
    WriteLn ('a div b = ', a div b)
  else
    begin
      WriteLn ('Bitte nicht durch 0 dividieren!');
      WriteLn ('Das macht man nicht!')
    end
end.

20241010/if-08.c

0 → 100644
+15 −0
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a = 42;
int b = 0;
  printf ("a = 42\nBitte b eingeben: ");
                                              scanf ("%d", &b);
  if (b) printf ("a / b = %d\n", a / b); else
    {
printf ("Bitte nicht durch 0 dividieren!\n");
printf ("Das macht man nicht!\n");
                                                    }
  return 0;
}

20241010/if-09.c

0 → 100644
+4 −0
Original line number Diff line number Diff line
#include <stdio.h>
int main (void) { int a = 42; int b = 0; printf ("a = 42\nBitte b eingeben: ");
scanf ("%d", &b); if (b) printf ("a / b = %d\n", a / b); else { printf
("Bitte nicht durch 0 dividieren!\n"); printf ("Das macht man nicht!\n"); } return 0; }
Original line number Diff line number Diff line
@@ -2,14 +2,16 @@

int main (void)
{
  int a = 137;
  int a = 42;
  int b = 0;
  if (b == 0)
  printf ("a = 42\nBitte b eingeben: ");
  scanf ("%d", &b);
  if (b)
    printf ("a / b = %d\n", a / b);
  else
    {
      printf ("Bitte nicht durch 0 teilen.\n");
      printf ("So was macht man nicht.\n");
      printf ("Bitte nicht durch 0 dividieren!\n");
      printf ("Das macht man nicht!\n");
    }
  else
    printf ("a / b = %d\n", a / b);
  return 0;
}
Original line number Diff line number Diff line
@@ -3,9 +3,8 @@
int main (void)
{
  int a;
  printf ("Bitte eine Zahl eingeben: ");
  printf ("Antwort? ");
  scanf ("%d", &a);
  a = 2 * a;
  printf ("Das Doppelte ist: %d\n", a);
  printf ("Die Antwort lautete: %d\n", a);
  return 0;
}
Original line number Diff line number Diff line
@@ -3,8 +3,8 @@
int main (void)
{
  double a;
  printf ("Bitte eine Zahl eingeben: ");
  printf ("Antwort? ");
  scanf ("%lf", &a);
  printf ("Ihre Antwort war: %lf\n", a);
  printf ("Die Antwort lautete: %lf\n", a);
  return 0;
}

20241010/input-03.c

0 → 100644
+10 −0
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a;
  printf ("Antwort? ");
  scanf ("%d", a);
  printf ("Die Antwort lautete: %d\n", a);
  return 0;
}

20241010/input-04.c

0 → 100644
+11 −0
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a;
  printf ("Antwort? ");
  scanf ("%d", a);
  a = a + 2;
  printf ("Die Antwort + 2 lautete: %d\n", a);
  return 0;
}

20241010/input-05.c

0 → 100644
+11 −0
Original line number Diff line number Diff line
#include <stdio.h>

int main (void)
{
  int a;
  printf ("Antwort? ");
  scanf ("%d", &a);
  a = a + 2;
  printf ("Die Antwort + 2 lautete: %d\n", a);
  return 0;
}
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

+10 −0

File added.

Preview size limit exceeded, changes collapsed.

+10 −0

File added.

Preview size limit exceeded, changes collapsed.

+10 −0

File added.

Preview size limit exceeded, changes collapsed.

+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241010/while-03.c

0 → 100644
+12 −0

File added.

Preview size limit exceeded, changes collapsed.

20241010/while-07.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241010/while-08.c

0 → 100644
+12 −0

File added.

Preview size limit exceeded, changes collapsed.

20241010/while-09.c

0 → 100644
+12 −0

File added.

Preview size limit exceeded, changes collapsed.

20241010/while-10.c

0 → 100644
+12 −0

File added.

Preview size limit exceeded, changes collapsed.

20241010/while-12.s

0 → 100644
+45 −0

File added.

Preview size limit exceeded, changes collapsed.

20241010/while-13.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241010/while-14.c

0 → 100644
+7 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/gitlab.png

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-03.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-04.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-05.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-06.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-07.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-08.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-09.c

0 → 100644
+11 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-10.c

0 → 100644
+11 −0

File added.

Preview size limit exceeded, changes collapsed.

20241017/hello-10.txt

0 → 100644
+29 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/arrays-06.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/arrays-07.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/arrays-08.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/arrays-09.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/arrays-12.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

+17 −0

File added.

Preview size limit exceeded, changes collapsed.

+17 −0

File added.

Preview size limit exceeded, changes collapsed.

+17 −0

File added.

Preview size limit exceeded, changes collapsed.

+16 −0

File added.

Preview size limit exceeded, changes collapsed.

+17 −0

File added.

Preview size limit exceeded, changes collapsed.

+17 −0

File added.

Preview size limit exceeded, changes collapsed.

+17 −0

File added.

Preview size limit exceeded, changes collapsed.

+26 −0

File added.

Preview size limit exceeded, changes collapsed.

+27 −0

File added.

Preview size limit exceeded, changes collapsed.

+27 −0

File added.

Preview size limit exceeded, changes collapsed.

+29 −0

File added.

Preview size limit exceeded, changes collapsed.

+29 −0

File added.

Preview size limit exceeded, changes collapsed.

+910 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/pointers-00.c

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/pointers-02.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/pointers-03.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/pointers-04.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/pointers-05.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/pointers-06.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/strings-03.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241031/strings-04.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-01.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-02.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-05.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-06.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-07.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-08.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-09.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-10.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-11.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-12.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-13.c

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-14.c

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-15.c

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/arrays-16.c

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/files-01.txt

0 → 100644
+21 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/files-04.c

0 → 100644
+17 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/files-05.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/files-06.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/files-07.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/pointers-01.c

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/pointers-02.c

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/pointers-03.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-03.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-04.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-06.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-07.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-08.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-10.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-11.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-12.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-13.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-14.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-15.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/strings-16.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/structs-04.c

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/structs-05.c

0 → 100644
+27 −0

File added.

Preview size limit exceeded, changes collapsed.

20241107/structs-06.c

0 → 100644
+27 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/arrays-03.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/arrays-04.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/arrays-04.s

0 → 100644
+56 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/arrays-05.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/arrays-05.s

0 → 100644
+51 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/arrays-07.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/ascii-01.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/fhello.txt

0 → 100644
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/files-01.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/files-01.txt

0 → 100644
+21 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/files-02.c

0 → 100644
+12 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/files-04.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/files-06.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/files-08.c

0 → 100644
+20 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/files-09.c

0 → 100644
+17 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/files-10.c

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/maerchen.txt

0 → 100644
+33 −0

File added.

Preview size limit exceeded, changes collapsed.

+26 −0

File added.

Preview size limit exceeded, changes collapsed.

+77 −0

File added.

Preview size limit exceeded, changes collapsed.

+19 −0

File added.

Preview size limit exceeded, changes collapsed.

+77 −0

File added.

Preview size limit exceeded, changes collapsed.

+13 −0

File added.

Preview size limit exceeded, changes collapsed.

+14 −0

File added.

Preview size limit exceeded, changes collapsed.

+13 −0

File added.

Preview size limit exceeded, changes collapsed.

+14 −0

File added.

Preview size limit exceeded, changes collapsed.

+20 −0

File added.

Preview size limit exceeded, changes collapsed.

+20 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-01.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-02.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-03.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-04.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-05.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-06.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-07.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-08.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-09.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241114/strings-10.c

0 → 100644
+9 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/Makefile-1

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/Makefile-2

0 → 100644
+16 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/Makefile-3

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/bits-01.txt

0 → 100644
+56 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/blink-00.txt

0 → 100644
+38 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/blink-01.txt

0 → 100644
+6 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/blink-02.txt

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/blink-03.txt

0 → 100644
+24 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/blink-04.txt

0 → 100644
+45 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/blink-1.hex

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-01.txt

0 → 100644
+12 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-02.txt

0 → 100644
+16 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-03.txt

0 → 100644
+52 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-04.txt

0 → 100644
+40 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-05.txt

0 → 100644
+19 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-06.txt

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-07.txt

0 → 100644
+27 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-08.txt

0 → 100644
+7 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-09.txt

0 → 100644
+7 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-10.txt

0 → 100644
+42 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-11.txt

0 → 100644
+106 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/extern-12.txt

0 → 100644
+3 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/hello-03.c

0 → 100644
+7 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/hello-05.c

0 → 100644
+7 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/hello-06.c

0 → 100644
+7 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/hexe.h

0 → 100644
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/maerchen.c

0 → 100644
+4 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/muh.h

0 → 100644
+12 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/prompfl-01.c

0 → 100644
+6 −0

File added.

Preview size limit exceeded, changes collapsed.

20241121/prompfl-01.h

0 → 100644
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/Makefile-1

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/Makefile-2

0 → 100644
+16 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/Makefile-3

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/answer.c

0 → 100644
+6 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/answer.h

0 → 100644
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/aufgabe-1.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/aufgabe-2.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/bits-01.txt

0 → 100644
+68 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/blink-1.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/blink-1.hex

0 → 100644
+13 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/blink-3.hex

0 → 100644
+11 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/extern-01.txt

0 → 100644
+43 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/extern-02.txt

0 → 100644
+26 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/gtk-01a.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/gtk-01b.c

0 → 100644
+19 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/gtk-01c.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/gtk-02.txt

0 → 100644
+34 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/gtk-06a.c

0 → 100644
+55 −0

File added.

Preview size limit exceeded, changes collapsed.

+1307 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/loesung-1.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

+15 −0

File added.

Preview size limit exceeded, changes collapsed.

+15 −0

File added.

Preview size limit exceeded, changes collapsed.

+34 −0

File added.

Preview size limit exceeded, changes collapsed.

+34 −0

File added.

Preview size limit exceeded, changes collapsed.

+15 −0

File added.

Preview size limit exceeded, changes collapsed.

+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/loesung-2.c

0 → 100644
+30 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/make-01.txt

0 → 100644
+27 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/make-02.txt

0 → 100644
+30 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/make-03.txt

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/make-04.txt

0 → 100644
+21 −0

File added.

Preview size limit exceeded, changes collapsed.

20241128/philosophy.c

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/Makefile

0 → 100644
+8 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/aufgabe-1.c

0 → 100644
+10 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/blink-1.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/blink-2.c

0 → 100644
+16 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/blink-3.c

0 → 100644
+17 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/blink-4.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/blink-4a.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/blink-5.c

0 → 100644
+19 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/blink-6.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/blink-8.s

0 → 100644
+84 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/download.sh

0 → 100755
+3 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/loesung-1.c

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/pgscript.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/pgslides.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/wurf-01.c

0 → 100644
+43 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/wurf-02.c

0 → 100644
+57 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/wurf-03.c

0 → 100644
+56 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/wurf-04.c

0 → 100644
+59 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/wurf-05.c

0 → 100644
+59 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/wurf-06.c

0 → 100644
+62 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/wurf-07.c

0 → 100644
+62 −0

File added.

Preview size limit exceeded, changes collapsed.

20241205/wurf-08.c

0 → 100644
+62 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/loesung-3a.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/loesung-3b.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/loesung-3c.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

+1324 −0

File added.

Preview size limit exceeded, changes collapsed.

+521 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/pendulum-0.c

0 → 100644
+69 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/pendulum-1.c

0 → 100644
+69 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/pendulum-2.c

0 → 100644
+69 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/pendulum-3.c

0 → 100644
+87 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/pendulum-4.c

0 → 100644
+86 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/pendulum.pdf

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/pgscript.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/pgslides.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241212/smiley.xbm

0 → 100644
+6 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/aufgabe-1.c

0 → 100644
+24 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/aufgabe-2.c

0 → 100644
+16 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-00.c

0 → 100644
+26 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-01.c

0 → 100644
+30 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-02.c

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-03.c

0 → 100644
+44 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-04.c

0 → 100644
+44 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-05.c

0 → 100644
+45 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-06.c

0 → 100644
+52 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-07.c

0 → 100644
+52 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-08.c

0 → 100644
+52 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-09.c

0 → 100644
+58 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/hanoi-10.c

0 → 100644
+58 −0

File added.

Preview size limit exceeded, changes collapsed.

+973 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/loesung-1.c

0 → 100644
+80 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/loesung-1f.c

0 → 100644
+80 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/loesung-2.c

0 → 100644
+16 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/pendulum.pdf

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/pgscript.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/pgslides.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/sort-0.c

0 → 100644
+16 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/sort-1.c

0 → 100644
+21 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/sort-2.c

0 → 100644
+46 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/sort-3.c

0 → 100644
+46 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/sort-4.c

0 → 100644
+59 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/sum-01.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/sum-02.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/sum-03.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20241219/test-utf8.txt

0 → 100644
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/aufgabe-1.c

0 → 100644
+23 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/aufgabe-2.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/aufgabe-3a.c

0 → 100644
+50 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/aufgabe-3b.c

0 → 100644
+50 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/bsort-1.c

0 → 100644
+48 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/bsort-2.c

0 → 100644
+55 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/bsort-3.c

0 → 100644
+58 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/bsort-4.c

0 → 100644
+57 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/crash.c

0 → 100644
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/dynarr-01.c

0 → 100644
+14 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/dynarr-02.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/dynarr-03.c

0 → 100644
+19 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/dynarr-04.c

0 → 100644
+23 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/dynarr-05.c

0 → 100644
+24 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/dynarr-06.c

0 → 100644
+20 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/dynarr-07.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

+1027 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/loesung-2e.c

0 → 100644
+33 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/loesung-2g.c

0 → 100644
+46 −0

File added.

Preview size limit exceeded, changes collapsed.

+54 −0

File added.

Preview size limit exceeded, changes collapsed.

+54 −0

File added.

Preview size limit exceeded, changes collapsed.

+54 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/loesung-3e.c

0 → 100644
+61 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/loesung-3f.c

0 → 100644
+69 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/loesung-3g.c

0 → 100644
+77 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-01.c

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-02.c

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-03.c

0 → 100644
+34 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-04.c

0 → 100644
+34 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-05.c

0 → 100644
+34 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-06.c

0 → 100644
+39 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-07.c

0 → 100644
+43 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-08.c

0 → 100644
+59 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-09.c

0 → 100644
+69 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-09a.c

0 → 100644
+60 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-09b.c

0 → 100644
+60 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/objects-09c.c

0 → 100644
+61 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/pgscript.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/pgslides.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/qsort-1.c

0 → 100644
+70 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/qsort-2.c

0 → 100644
+72 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/qsort-3.c

0 → 100644
+74 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/sort-0.c

0 → 100644
+16 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/sort-1.c

0 → 100644
+21 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/sort-2.c

0 → 100644
+46 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/sort-3.c

0 → 100644
+46 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/sort-4.c

0 → 100644
+59 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/sort-5.c

0 → 100644
+60 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/sort-6.c

0 → 100644
+60 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/sort-7.c

0 → 100644
+53 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/unions-03.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20250109/unions-04.c

0 → 100644
+15 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/aufgabe-1.c

0 → 100644
+47 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/aufgabe-3.c

0 → 100644
+62 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/aufgabe-4.c

0 → 100644
+53 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-01.c

0 → 100644
+31 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-02.c

0 → 100644
+31 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-03.c

0 → 100644
+32 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-04.c

0 → 100644
+30 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-05.c

0 → 100644
+32 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-06.c

0 → 100644
+33 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-07.c

0 → 100644
+35 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-08.c

0 → 100644
+50 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/fifo-09.c

0 → 100644
+55 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/hello-gtk.png

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

+1301 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/lists-01.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/lists-02.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/lists-03.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/lists-04.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/lists-05.c

0 → 100644
+20 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/lists-06.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/lists-07.c

0 → 100644
+31 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-1a.c

0 → 100644
+69 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-1b.c

0 → 100644
+97 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-2c.c

0 → 100644
+68 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-3-1.c

0 → 100644
+50 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-3-2.c

0 → 100644
+58 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-3-3.c

0 → 100644
+71 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-3-4.c

0 → 100644
+101 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-4.c

0 → 100644
+62 −0

File added.

Preview size limit exceeded, changes collapsed.

+58 −0

File added.

Preview size limit exceeded, changes collapsed.

+58 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-4c.c

0 → 100644
+72 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/loesung-4d.c

0 → 100644
+86 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/objects-10.c

0 → 100644
+76 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/objects-11.c

0 → 100644
+78 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/objects-12.c

0 → 100644
+69 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/objects-13.c

0 → 100644
+75 −0

File added.

Preview size limit exceeded, changes collapsed.

+55 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/pgscript.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/pgslides.sty

0 → 120000
+1 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/stack-01.c

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/stack-02.c

0 → 100644
+27 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/stack-03.c

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/stack-04.c

0 → 100644
+27 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/stack-05.c

0 → 100644
+40 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/stack-06.c

0 → 100644
+39 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/stack-07.c

0 → 100644
+39 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/trees-01.c

0 → 100644
+18 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/trees-02.c

0 → 100644
+28 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/trees-03.c

0 → 100644
+29 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/trees-04.c

0 → 100644
+38 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/trees-05.c

0 → 100644
+50 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/trees-06.c

0 → 100644
+51 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/trees-07.c

0 → 100644
+51 −0

File added.

Preview size limit exceeded, changes collapsed.

20250116/trees-08.c

0 → 100644
+48 −0

File added.

Preview size limit exceeded, changes collapsed.

20250130/aufgabe-3.2.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

+244 −0

File added.

Preview size limit exceeded, changes collapsed.

20250130/loesung-3.2.c

0 → 100644
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

+74 −49

File changed.

Preview size limit exceeded, changes collapsed.

File changed.

Preview size limit exceeded, changes collapsed.

hp-slides-2023ws.tex

deleted100644 → 0
+0 −28

File deleted.

Preview size limit exceeded, changes collapsed.

hp-slides-2024ws.tex

0 → 100644
+38 −0

File added.

Preview size limit exceeded, changes collapsed.

termine.txt

0 → 100644
+3 −0

File added.

Preview size limit exceeded, changes collapsed.

+32 −26

File changed.

Preview size limit exceeded, changes collapsed.