Soyez le premier à donner votre avis sur cette source.
Snippet vu 10 670 fois - Téléchargée 32 fois
#include <stdlib.h> #include <gtk/gtk.h> static GtkWidget *pLabel1; static GtkWidget *pLabel2; static GtkWidget *pWindow; double a, b, c, discr, x, y; void result_a(void); void result_b(void); void result_c(void); int main(int argc, char **argv) { GtkWidget *pVBox; GtkWidget *pHBox; GtkWidget *pButton1; GtkWidget *pButton2; gtk_init(&argc, &argv); pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(pWindow), "Equation du deuxieme degre."); gtk_window_set_default_size(GTK_WINDOW(pWindow), 400, 81); g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL); pVBox = gtk_vbox_new(TRUE, 0); gtk_container_add(GTK_CONTAINER(pWindow), pVBox); pLabel1 = gtk_label_new("Resultat x1:"); gtk_box_pack_start(GTK_BOX(pVBox), pLabel1, FALSE, FALSE, 0); pLabel2 = gtk_label_new("Resultat x2:"); gtk_box_pack_start(GTK_BOX(pVBox), pLabel2, FALSE, FALSE, 0); pHBox = gtk_hbox_new(TRUE, 0); gtk_container_add(GTK_CONTAINER(pVBox), pHBox); pButton1 = gtk_button_new_with_label("Nouvelle equation"); gtk_box_pack_start(GTK_BOX(pHBox), pButton1, FALSE, TRUE, 0); pButton2 = gtk_button_new_with_label("Quitter"); gtk_box_pack_start(GTK_BOX(pHBox), pButton2, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(pButton1), "clicked", G_CALLBACK(result_a), NULL); g_signal_connect(G_OBJECT(pButton2), "clicked", G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(pWindow); gtk_main(); return EXIT_SUCCESS; } void result_a(void) { GtkWidget* pBoitea; GtkWidget* pEntrya; const gchar* sA; pBoitea = gtk_dialog_new_with_buttons("Saisie de a", GTK_WINDOW(pWindow), GTK_DIALOG_MODAL, GTK_STOCK_OK,GTK_RESPONSE_OK, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, NULL); pEntrya = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(pEntrya), "Saisissez a dans ax2+bx+c=0"); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pBoitea)->vbox), pEntrya, TRUE, FALSE, 0); gtk_widget_show_all(GTK_DIALOG(pBoitea)->vbox); switch (gtk_dialog_run(GTK_DIALOG(pBoitea))) { case GTK_RESPONSE_OK: sA = gtk_entry_get_text(GTK_ENTRY(pEntrya)); a = strtod(sA, NULL); break; case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_NONE: default: gtk_label_set_text(GTK_LABEL(pLabel1), "Vous n'avez rien saisi !"); break; } gtk_widget_destroy(pBoitea); result_b(); } void result_b(void) { GtkWidget* pBoiteb; GtkWidget* pEntryb; const gchar* sB; pBoiteb = gtk_dialog_new_with_buttons("Saisie de b", GTK_WINDOW(pWindow), GTK_DIALOG_MODAL, GTK_STOCK_OK,GTK_RESPONSE_OK, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, NULL); pEntryb = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(pEntryb), "Saisissez b dans ax2+bx+c=0"); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pBoiteb)->vbox), pEntryb, TRUE, FALSE, 0); gtk_widget_show_all(GTK_DIALOG(pBoiteb)->vbox); switch (gtk_dialog_run(GTK_DIALOG(pBoiteb))) { case GTK_RESPONSE_OK: sB = gtk_entry_get_text(GTK_ENTRY(pEntryb)); b = strtod(sB, NULL); break; case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_NONE: default: gtk_label_set_text(GTK_LABEL(pLabel1), "Vous n'avez rien saisi !"); break; } gtk_widget_destroy(pBoiteb); result_c(); } void result_c(void) { GtkWidget* pBoitec; GtkWidget* pEntryc; const gchar* sC; char sx1[100]; char sx2[100]; pBoitec = gtk_dialog_new_with_buttons("Saisie de c", GTK_WINDOW(pWindow), GTK_DIALOG_MODAL, GTK_STOCK_OK,GTK_RESPONSE_OK, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, NULL); pEntryc = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(pEntryc), "Saisissez c dans ax2+bx+c=0"); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(pBoitec)->vbox), pEntryc, TRUE, FALSE, 0); gtk_widget_show_all(GTK_DIALOG(pBoitec)->vbox); switch (gtk_dialog_run(GTK_DIALOG(pBoitec))) { case GTK_RESPONSE_OK: sC = gtk_entry_get_text(GTK_ENTRY(pEntryc)); c = strtod(sC, NULL); discr = b*b-4*a*c; if (discr < 0) { sprintf(sx1, "La premiere solution est: %f + i racine de %f, le tout sur %f.", -b, discr*-1, 2*a); sprintf(sx2, "La seconde solution est: %f - i racine de %f, le tout sur %f.", -b, discr*-1, 2*a); } else { discr = sqrt(b*b-4*a*c); x = (-b+discr)/(2*a); y = (-b-discr)/(2*a); sprintf(sx1, "La premiere solution est: %f", x); sprintf(sx2, "La seconde solution est: %f", y); } gtk_label_set_text(GTK_LABEL(pLabel1), sx1); gtk_label_set_text(GTK_LABEL(pLabel2), sx2); break; case GTK_RESPONSE_CANCEL: case GTK_RESPONSE_NONE: default: gtk_label_set_text(GTK_LABEL(pLabel1), "Vous n'avez rien saisi !"); break; } gtk_widget_destroy(pBoitec); }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.