]]> ]]>

gcc 4.4.3

Версия реализации gcc языка программирования C

Версия gcc.

Примеры:

Квадратное уравнение - C (427):

Этот пример использует тип данных complex, впервые появившийся в C99, и функции для работы с ним.

#include <stdio.h>
#include <complex.h>
#include <math.h>

void print(int ind, double complex x) {
    printf("x%d = ", ind);
    if (fabs(cimag(x)) < 1e-6)
        printf("%f\n", creal(x));
    else printf("(%f, %f)\n", creal(x), cimag(x));
}

int main() {
    double A, B, C;
    double D;
    printf("A = ");
    scanf("%lf", &A);
    if (fabs(A)<1E-3) {
        printf("Not a quadratic equation\n");
        return 1;
    }
    printf("B = ");
    scanf("%lf", &B);
    printf("C = ");
    scanf("%lf", &C);

    A *= 2;
    D = B*B-A*C*2.0;
    if (fabs(D)<1E-3)
        printf("x = %f", creal(-B/A));
    else {
        print(1, (-B+csqrt(D))/A);
        print(2, (-B-csqrt(D))/A);
    }
    return 0;
}
 

Hello, World! - C (471):

X11,чистый Xlib. Компилируется : gcc test.c -o test -lX11

Программа создает с помощью функции XOpenDisplay соединение с X-Server. Функция DefaultScreen выбирает текущий экран, XCreateSimpleWindow создает окно, а XSelectInput определяет события, на которые окно должно реагировать. XMapWindow выводит окно на экран, а XNextEvent выбирает из очереди событие, которое выше было определено. При событии Expose в окне выводится “Hello World!”. При нажатии клавиши на клавиатуре программа завершает работу.

 #include <X11/Xlib.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
 
 extern int errno;
 
 int main(void) {
   Display *display;
   Window window;
   XEvent e;
   char *msg = "Hello, World!";
   int s;
 
   /* Соединиться с X сервером */
    if ((display = XOpenDisplay(getenv("DISPLAY"))) == NULL) 
    {
        printf("Can't connect X server: %s\n", strerror(errno));
        exit(1);
    }
   s = DefaultScreen(display);
 
   /* Создать окно */
   window = XCreateSimpleWindow(display, RootWindow(display, s), 10, 10, 200, 100, 1,  BlackPixel(display, s), WhitePixel(display, s));
 
   /* На какие события будем реагировать */
   XSelectInput(display, window ,ExposureMask | KeyPressMask);
   XMapWindow(display, window); /* Вывести окно на экран */
 
   /* Бесконечный цикл обработки событий */
   while (1) 
   {
     XNextEvent(display, &e);
 
    /* Перерисовать окно */
     if (e.type == Expose) 
     {
       XDrawString(display, window, DefaultGC(display, s), 50, 50, msg, strlen(msg)); /*Вывод текста*/
     }
     if (e.type == KeyPress)
	break;
   }
  
   XCloseDisplay(display); /* Закрыть соединение с X сервером */
   return 0;
 }

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам