Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/Code Layout: Unterschied zwischen den Versionen

(Abschnit für Kommentare hinzugefügt)
K (verschob „Ckurs/Code Layout“ nach „C-Kurs/Code Layout“)
 
(9 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= Aufgabenstellung =
 
= Aufgabenstellung =
  
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.
+
In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren, aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.
 +
 
 +
== sum.c ==
 +
 
 +
In der Funktion sum hat sich eine for-Schleife versteckt. Schreibe die Funktion so um, dass sie übersichtlicher ist. Gib den Variablen bei dieser Gelegenheit selbsterklärende Namen.
 +
 
 +
#define klaus jonny
 +
 +
/**
 +
  * Berechnet die summe der Zahlen im übergebenen array
 +
  * @breite array mit den Zahlen
 +
  * @hoehe länge des arrays
 +
  */
 +
int sum(int *breiTee, int hoehe)
 +
{
 +
int vorgabe = 0;
 +
int i = 1;
 +
do
 +
{
 +
int klaus = vorgabe + breiTee[i-1];
 +
vorgabe = jonny;
 +
i = i + 1;
 +
} while (i <= hoehe);
 +
 +
return vorgabe;
 +
}
 +
 
 +
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/sum_refactor.c sum_refactor.c]]
 +
 
 +
So wird das Programm benutzt:
 +
 
 +
$ gcc sum_refactor.c -o sum
 +
$ ./sum 23 42
 +
65
  
 
== fac.c ==
 
== fac.c ==
  
Die Fakultät kann auch Rekursiv berechnet werden, allerdings könnte man das auch bequem in zwei Zeilen machen, ohne dabei unübersichtlich zu werden.
+
Die Fakultät kann Rekursiv berechnet werden, allerdings könnte man das auch sauber in zwei Zeilen machen, ohne dabei so unübersichtlich zu werden.
  
 +
/**
 +
  * Brerechnet die Fakultät
 +
  * @n Zahl von der die Fakultät berechnet werden soll
 +
  * @return Fakultät von n
 +
  */
 
  int faculty(int n){
 
  int faculty(int n){
 
   if (n < 2) return 1;
 
   if (n < 2) return 1;
Zeile 19: Zeile 57:
 
   }
 
   }
 
  }
 
  }
 +
 +
Hier ist die Vorlage: [[http://docs.freitagsrunde.org/Veranstaltungen/ckurs_2009/vorgaben/fac_refactor.c fac_refactor.c]]
 +
 +
So wird das programm benutzt:
 +
 +
$ gcc fac_refactor.c -o fac
 +
$ ./fac 4
 +
4! = 24
  
 
= Kommentare =
 
= Kommentare =

Aktuelle Version vom 5. März 2013, 17:37 Uhr

Aufgabenstellung

In dieser Aufgabe sind einige Codeschnipsel gegeben die zwar funktionieren, aber etwas unübersichtlich oder umständlich geschrieben sind. Deine Aufgabe ist es diese so um zu schreiben, dass sie übersichtlicher und einfacher sind. Vergleiche die Ergebnisse mit deinem Nachbarn und sprecht über eure Ergebnisse.

sum.c

In der Funktion sum hat sich eine for-Schleife versteckt. Schreibe die Funktion so um, dass sie übersichtlicher ist. Gib den Variablen bei dieser Gelegenheit selbsterklärende Namen.

#define klaus jonny

/**
 * Berechnet die summe der Zahlen im übergebenen array
 * @breite array mit den Zahlen
 * @hoehe länge des arrays
 */
int sum(int *breiTee, int hoehe)
{
	int vorgabe = 0;
	int i = 1;
	do
	{
		int klaus = vorgabe + breiTee[i-1];
		vorgabe = jonny;
		i = i + 1;
	} while (i <= hoehe);

	return vorgabe;
} 

Hier ist die Vorlage: [sum_refactor.c]

So wird das Programm benutzt:

$ gcc sum_refactor.c -o sum
$ ./sum 23 42
65

fac.c

Die Fakultät kann Rekursiv berechnet werden, allerdings könnte man das auch sauber in zwei Zeilen machen, ohne dabei so unübersichtlich zu werden.

/**
 * Brerechnet die Fakultät
 * @n Zahl von der die Fakultät berechnet werden soll
 * @return Fakultät von n
 */
int faculty(int n){
  if (n < 2) return 1;

  if(n == 2)
  {
      return 2;
  } else {
    int m;
    m = n*faculty(n-1);
    return m;
  }
}

Hier ist die Vorlage: [fac_refactor.c]

So wird das programm benutzt:

$ gcc fac_refactor.c -o fac
$ ./fac 4
4! = 24

Kommentare