C-Programmierung: Algorithmen für Statistik und Spiele

Informatik3 KB

Statistik in C: Mittelwert und Varianz

Dieses Programm liest eine Stichprobe von Werten ein und berechnet sowohl das arithmetische Mittel als auch die statistische Varianz.

void leer_muestra(double v[], int n) {
    int i;
    printf("Geben Sie die Sample-Werte ein:");
    for (i = 0; i < n; i++)
        scanf("%lf", &v[i]);
}

double med_arit(double v[], int n) {
    double sum = 0.0;
    int i;
    for (i = 0; i < n; i++)
        sum += v[i];
    return (sum / n);
}

double variance(double v[], int n) {
    double var = 0.0, m;
    int i;
    m = med_arit(v, n);
    for (i = 0; i < n; i++)
        var += (m - v[i]) * (m - v[i]);
    return (var / n);
}

void escr_muestra(double v[], int n) {
    int i;
    for (i = 0; i < n; i++)
        printf("%lf ", v[i]);
}

void main() {
    void leer_muestra(double v[], int n);
    double med_arit(double v[], int n);
    double variance(double v[], int n);
    void escr_muestra(double v[], int n);
    double v[20];
    double mean, var;

    leer_muestra(v, 20);
    escr_muestra(v, 20);
    mean = med_arit(v, 20);
    printf("media = %lf\n", mean);
    var = variance(v, 20);
    printf("VAR = %lf\n", var);
}

Primzahlprüfung in C

Algorithmus zur Bestimmung, ob eine eingegebene positive Ganzzahl eine Primzahl ist:

int prime(unsigned int p) {
    int i;
    int prim = 1;
    for (i = 2; i < p; i++)
        if (p % i == 0)
            prim = 0;
    return prim;
}

int main() {
    int prime(unsigned int p);
    unsigned int num;
    int i;
    printf("Geben Sie eine Zahl ein: ");
    scanf("%u", &num);
    i = prime(num);
    if (i == 1)
        printf("Die Zahl ist eine Primzahl.\n");
    else
        printf("Die Zahl ist keine Primzahl.\n");
    return 0;
}

Numerische Integration (Integral)

Approximation eines bestimmten Integrals mittels numerischer Flächenberechnung (Trapezmethode):

S = 0;

for (i = 0; i < N; i++) {
    H1 = f(g + i * B, a, b, c);
    H2 = f(g + (i + 1) * B, a, b, c);
    AT = (B / 2.0) * (|H1| + |H2|);
    S += AT;
}

// Berechnungsfunktion
return a * x * x + b * x + c;

Tic-Tac-Toe in C (Drei gewinnt)

Einfaches konsolenbasiertes Tic-Tac-Toe-Spiel gegen den Computer:

#include <stdio.h>
#include <stdlib.h>

char board[3][3];
char check(void);
void inic_tablero(void);
void obt_mov_jugador(void);
void obt_mov_ordenador(void);
void mostrar_tablero(void);

void main(void) {
    char done;
    printf("Das ist das Spiel Drei gewinnt (Nullen und Kreuze).\n");
    printf("Dies ist ein Spiel gegen den Computer.\n");
    done = ' ';
    inic_tablero();
    do {
        mostrar_tablero();
        obt_mov_jugador();
        done = check();
        if (done != ' ') break;
        obt_mov_ordenador();
        done = check();
    } while (done == ' ');

    if (done == 'X')
        printf("Sie haben gewonnen!\n");
    else
        printf("Der Computer gewinnt!\n");
    mostrar_tablero();
}

Herunterladen

PDF Word HTML