Commit 04b1e397 authored by Paffenholz, Andreas's avatar Paffenholz, Andreas

Code fuer Kapitel 1 und 2 des Vorlesungsskripts

parent 3f0381a9
# 2020_21_Codebeispiele
Codebeispiele zur Vorlesung Einführung in die Programmierung 1, TU Darmstadt, Wintersemester 2020/21
/* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* TU Darmstadt, Wintersemester 2019/20
* 24.10.2019
* Approximation von sin(x) ueber die Reihenentwicklung
*
* Kompilieren mit
* javac ApproxSin.java
* Ausfuehren mit
* java ApproxSin <arg fuer sinus> <anzahl summanden>
*/
public class ApproxSin
{
public static void main(String args[])
{
float arg = Float.parseFloat(args[0]);
int n = Integer.parseInt(args[1]);
float approx_sin = arg;
float summand = approx_sin;
for (int i = 1; i <= n; i++) {
summand = summand
*(-1)*arg*arg/(2*i*(2*i+1));
approx_sin += summand;
}
System.out.printf("Der Sinus von %.10f" +
" ist naeherungsweise %.10f\n",
arg, approx_sin);
}
}
/* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* TU Darmstadt, Wintersemester 2019/20
* 24.10.2019
* Approximation von sin(x) ueber die Reihenentwicklung
*
* Kompilieren mit
* gcc -o approx_sin approx_sin.c
* Ausfuehren mit
* ./approx_sin <arg fuer sinus> <anzahl summanden>
*/
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char** argv ) {
float arg, approx_sin, summand;
int n, i;
// Argument fuer Sinus
arg = atof(argv[1]);
// Anzahl ausgewerteter Summanden
n = atoi(argv[2]);
// Summand fuer i=0
approx_sin = arg;
summand = arg;
for ( i=1; i<n; i=i+1 ) {
summand = summand
* (-1)*arg*arg/(2*i*(2*i+1));
approx_sin = approx_sin + summand;
}
printf("Der Sinus von %f ist naeherungsweise %f\n", arg, approx_sin);
return 0;
}
# Beispielprogramm zur Vorlesung
# Einfuehrung in die Programmierung I
# TU Darmstadt, Wintersemester 2019/20
# 24.10.2019
# Approximation von sin(x) ueber die Reihenentwicklung
#
# Ausfuehren mit
# perl approx_sin.pl <arg fuer sinus> <anzahl summanden>
my ($arg,$n) = @ARGV;
my $approx_sin = $arg;
my $summand = $approx_sin;
foreach (1..$n) {
$summand = $summand
*(-1)*$arg*$arg/(2*$_*(2*$_+1));
$approx_sin += $summand;
}
printf "Der Sinus von %.10f ist naeherungsweise %.5f\n",
($arg, $approx_sin);
# Beispielprogramm zur Vorlesung
# Einfuehrung in die Programmierung I
# TU Darmstadt, Wintersemester 2019/20
# 24.10.2019
# Approximation von sin(x) ueber die Reihenentwicklung
#
# Ausfuehren mit
# python approx_sin.py <arg fuer sinus> <anzahl summanden>
import sys
# Argument fuer Sinus
arg = float(sys.argv[1])
# Anzahl ausgewerteter Summanden
n = int(sys.argv[2])
# Summand fuer i=0
approx_sin = arg
summand = approx_sin
for i in range(1,n):
summand = summand * (-1)*arg*arg/(2*i*(2*i+1));
approx_sin = approx_sin + summand
print("Der Sinus von %f ist naeherungsweise %f \n" \
%(arg,approx_sin))
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Laenge der Collatzfolge
*
* Uebersetzen mit
* gcc collatz.c -o collatz
* Aufruf mit
* ./collatz
**************************************/
// Standardbibliotheken
#include <stdio.h>
/* Funktion zur Bestimmung der Laenge der Collatzfolge zu einem Startwert
Eingabe: startwert als ganze Zahl
Ausgabe: Laenge der Folge
Annahmen: - startwert ist positiv, kein Check
- Folge erreicht nach endlich vielen Schritten die 1
*/
int collatz_laenge(int startwert) {
int c = startwert; // Initialisierung
int laenge = 0;
while ( c != 1 ) { // naechstes Folgenglied, falls 1 nicht erreicht
if ( c % 2 == 0 ) {
c = c/2;
} else {
c = 3*c+1;
}
laenge = laenge + 1; // laenge aktualisieren
}
return laenge;
}
// main: Einstiegspunkt in das Programm
int main() {
int startwert = 0; // Eingabevariable initialisieren
printf("Geben Sie eine positive ganze Zahl ein: ");
scanf("%d",&startwert); // Startwert vom Terminal einlesen
// Aufruf der Funktion zur Bestimmung der Laenge
int laenge = collatz_laenge(startwert);
// Ergebnis ausgeben
printf("Die Collatz-Folge mit Start %d hat Laenge %d\n",startwert,laenge);
// Programm ohne Fehlermeldung beenden
return 0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment