Example #1
0
void rul(int i)  /* right-up-left */
{
    if (i == 0) return;
    urd(i - 1);  draw_rel( h, 0);
    rul(i - 1);  draw_rel( 0, h);
    rul(i - 1);  draw_rel(-h, 0);
    dlu(i - 1);
}
Example #2
0
void dlu(int i)  /* down-left-up */
{
    if (i == 0) return;
    ldr(i - 1);  draw_rel( 0, -h);
    dlu(i - 1);  draw_rel(-h,  0);
    dlu(i - 1);  draw_rel( 0,  h);
    rul(i - 1);
}
Example #3
0
void urd(int i)  /* up-right-down */
{
    if (i == 0) return;
    rul(i - 1);  draw_rel( 0,  h);
    urd(i - 1);  draw_rel( h,  0);
    urd(i - 1);  draw_rel( 0, -h);
    ldr(i - 1);
}
Example #4
0
int main()
{
    int i, order;

    printf("位数 = ");  scanf("%d", &order);
    gr_on();  gr_window(0, 0, 1, 1, 1, 0);
    h = 1;
    for (i = 2; i <= order; i++) h = h / (2 + h);
    move(0, 0);  rul(order);
    hitanykey();
    return EXIT_SUCCESS;
}
Example #5
0
void
do_stat (int fd)
{
    static char  buffer[1024];
    static double last = 0.0;
    static counters_t old_counter;
    double now;
    double t;
    counters_t new_counter;
    counters_t counter;
    int    n;

    lseek (fd, 0, SEEK_SET);
    now = timenow();
    n = read (fd, buffer, sizeof (buffer));
    if (n < 0)
    {
        fprintf (stderr, "Can't read statfile\n");
        exit (1);
    }
    buffer[n] = 0;

    n = sscanf(buffer, "%lu %lu %lu %lu %lu %lu %lu %llu %llu %llu %llu",
               &new_counter.msgs_alloc, &new_counter.msgs_max,
               &new_counter.errors,
               &new_counter.send_count, &new_counter.recv_count,
               &new_counter.route_count, &new_counter.drop_count,
               &new_counter.send_length, &new_counter.recv_length,
               &new_counter.route_length, &new_counter.drop_length);
    if (n < 11)
    {
        fprintf (stderr, "Can't parse statfile\n");
        exit (1);
    }

    if (last == 0.0) {
        printf("M %lu(%lu) E %lu S %llu/%lu R %llu/%lu F %llu/%lu "
               "D %llu/%lu\n",
               new_counter.msgs_alloc, new_counter.msgs_max,
               new_counter.errors,
               new_counter.send_length, new_counter.send_count,
               new_counter.recv_length, new_counter.recv_count,
               new_counter.route_length, new_counter.route_count,
               new_counter.drop_length, new_counter.drop_count);
    } else {
        t = now - last;

        counter.msgs_alloc = new_counter.msgs_alloc;
        counter.msgs_max = new_counter.msgs_max;

        counter.errors = subul(new_counter.errors, old_counter.errors);
        counter.send_count = subul(new_counter.send_count, old_counter.send_count);
        counter.recv_count = subul(new_counter.recv_count, old_counter.recv_count);
        counter.route_count = subul(new_counter.route_count, old_counter.route_count);
        counter.drop_count = subul(new_counter.drop_count, old_counter.drop_count);
        counter.send_length = subull(new_counter.send_length, old_counter.send_length);
        counter.recv_length = subull(new_counter.recv_length, old_counter.recv_length);
        counter.route_length = subull(new_counter.route_length, old_counter.route_length);
        counter.drop_length = subull(new_counter.drop_length, old_counter.drop_length);

        printf ("M %3lu(%3lu) E %0.0f S %7.2f/%6.0f R %7.2f/%6.0f F %7.2f/%6.0f D %4.2f/%0.0f\n",
                counter.msgs_alloc, counter.msgs_max,
                rul(counter.errors,t),
                rull(counter.send_length,t*1024.0*1024.0), rul(counter.send_count, t),
                rull(counter.recv_length,t*1024.0*1024.0), rul(counter.recv_count, t),
                rull(counter.route_length,t*1024.0*1024.0), rul(counter.route_count, t),
                rull(counter.drop_length,t*1024.0*1024.0), rul(counter.drop_count, t));
    }

    old_counter = new_counter;
    fflush (stdout);

    lseek (fd, 0, SEEK_SET);
    last = timenow();
}