Pages

Affichage des articles dont le libellé est Fonctions. Afficher tous les articles
Affichage des articles dont le libellé est Fonctions. Afficher tous les articles

[ArcGIS 10.x] fonctions python sujet

mardi 8 avril 2014




Bonjour, j'ai défini quatre fonctions sur python et souhaite faire la somme de ces 4 fonctions. La somme s'effectue correctement sauf lorsqu'une des quatre fonction est nulle, le résultat est nul. je me retrouve face à ce problème:

def Function1(a):
result=(a*6.25)/100
return result

def Function2(b):
result=(b*0.93)/100
return result

def Function3(c):
result=(c*0.15)/100
return result

def Function4(d):
result=(d*0.03)/100
return result

calcul = Function1(a) + Function2(b) + Function3(c) + Function4(d)

or dans la 'Function4', (d) est parfois nul et fausse tout le calcul car le calcul comprend quatre variables et si l'une des quatre est inexistante, Python ne calcule pas le reste...

N'existe-t-il pas une fonction qui permet de dire ' SI Function4(d) = 0, ALORS prendre en compte uniquement Function1 Function2 et Function3' ??

Merci pour votre attention.




problème de boutons, impossible de lancer deux fonctions en même temps sujet

vendredi 28 mars 2014




Bonjours à tous, j'ai un projet info à faire en c avec interface graphique, j'ai choisis gtk car j'ai pas mal de menus à faire, c'est un jeu de carte (le 6 qui prend),j'ai un problème, je n'arrives pas à faire en sorte que quand je clique sur un bouton, il quitte le menu en cours et en ouvre un autre sur la même fenêtre.

voici une partie du code, je voudrais que quand je clique sur le bouton 2 (ou autre), il ferme la fonction en cours et m'en ouvre une autre
PS: j'ai vraiment cherché partout, je n'ai rien trouvé.

d'avance merci et bonne soirée :D



Code:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
void menu_1(GtkWidget *pWindow)
{
GtkWidget *pTable;
GtkWidget *Boutton[4];


/* Creation et insertion de la table 7 lignes 4 colonnes */
pTable=gtk_table_new(7,4,TRUE);
gtk_container_add(GTK_CONTAINER(pWindow), GTK_WIDGET(pTable));


/* Creation des boutons */
Boutton[0]= gtk_button_new_with_label("Jouer contre l'ordinateur");
Boutton[1]= gtk_button_new_with_label("Jouer contre un autre joueur");
Boutton[2]= gtk_button_new_with_label("Lire les règles");
Boutton[3]= gtk_button_new_with_label("Quitter");


/* Insertion des boutons */

gtk_table_attach_defaults(GTK_TABLE(pTable), Boutton[0],
1, 3, 1, 2);

gtk_table_attach_defaults(GTK_TABLE(pTable), Boutton[1],
1, 3, 3, 4);

gtk_table_attach_defaults(GTK_TABLE(pTable), Boutton[2],
1, 3, 5, 6);

gtk_table_attach(GTK_TABLE(pTable), Boutton[3],
3, 4, 6, 7,
GTK_EXPAND, GTK_EXPAND ,
0, 0);


g_signal_connect (Boutton[2], "clicked", regles, NULL);//je voudrais que quand je clique sur le bouton 2, je ferme cette fonction et que j'en appelle une autre


g_signal_connect (Boutton[3], "clicked", gtk_main_quit, NULL);







}



int main(int argc, char **argv)
{
GtkWidget *pWindow;


gtk_init(&argc, &argv);

pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(pWindow), 800, 600);
gtk_window_set_title(GTK_WINDOW(pWindow), "Le 6 qui prend!");
g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);



menu_1(pWindow);


gtk_widget_show_all(pWindow);

gtk_main();

return EXIT_SUCCESS;
}






[9.2] Problème d'enchaînement de fonctions sujet

jeudi 27 mars 2014




Bonjour à tous!
Dans le cadre de synchronisation entre différentes bases postgres (utilisant dblink), j'ai réalisé toute une série de fonctions réalisant les différentes étapes dont j'ai besoin (création de table/comparaison de table/synchronisation).
Mes fonctions se lancent correctement et font ce dont j'ai besoin en quelques ms quand je les lance manuellement les unes après les autres, mais lorsque que je les lance toutes d'un coup, la dernière fonction faisant la synchro vers autre une base sur le même serveur met une minute (au lieu de quelques ms).

Savez-vous ce qui peut causer une différence de comportement entre un lancement manuel une fonction après l'autre et un lancement global des fonctions?

Merci, Thomas

EDIT: en regardant dans pg_locks les processus en cours d'exécution quand je fais un lancement global, je vois les process tous actifs en même temps, j'imagine que le problème vient de là (dans une fonction j'ai un update de table tandis que dans une autre j'ai un select sur cette même table). Est-ce qu'il y a un moyen de lancer les fonctions les unes après les autres pour éviter les concurrence d'appel?