n° 198
Luglio/Agosto 2015
Giugno 30, 2015, 01:09:25 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  



* Messaggi recenti
Messaggi recenti
Pagine: [1] 2 3 ... 10
 1 
 inserita:: Giugno 29, 2015, 02:25:53  
Aperta da Tr_gal - Ultimo messaggio da Tr_gal
Grazie ora provo a riguardare Sorriso

 2 
 inserita:: Giugno 29, 2015, 01:47:34  
Aperta da Tr_gal - Ultimo messaggio da M.A.W. 1968
Non ho tempo di guardare accuratamente il codice, ma in questa sezione c'è evidentemente un errore.
Guarda bene gli operatori d'ordine nelle condizioni logiche.

Codice:
while (i<j)
{
if (pivot==A[i])
q=i;
if (A[j]>pivot)
j--;
if (A[i]>pivot)
{
Swap(A,i,j);
j--;
}
i++;
}

Inoltre sarebbe decisamente il caso di scegliere nomi più significativi per i parametri e tutte le variabili non banalmente di induzione. Questo in primissima lettura, non escludendo che possano esservi altri ulteriori problemi.

 3 
 inserita:: Giugno 29, 2015, 12:00:18  
Aperta da Tr_gal - Ultimo messaggio da Tr_gal
Su Windows 8, ora ho modificato il codice e non va più in crash solo che adesso non restituisce il risultato giustoooo Indeciso Questo esercizio mi sta portando alla disperazione!!
Codice:
#include <stdio.h>
#include <stdlib.h>

int Max (int A[],int k)
{
int max=0,i,tmp;
for(i=0;i<k-1;i++)
{
if (max<A[i])
{
max=A[i];
}
}
printf("\npivot=%d\n",max);
return max;
}

void Swap (int A[], int i, int j)
{
int tmp;
tmp=A[j];
A[j]=A[i];
A[i]=tmp;
return;
}
int *Kpartition (int *A,int p,int r,int k)
{
int i, j, pivot, z, q, a;
int B[3];
i=p;
j=r;
for (z=k-1;z>=1;z--)
{
pivot=Max (A, k);
i=p;
while (i<j)
{
if (pivot==A[i])
q=i;
if (A[j]>pivot)
j--;
if (A[i]>pivot)
{
Swap(A,i,j);
j--;
}
i++;
}
if (A[q]>A[j])
{
Swap(A,q,j);
B[z]=j;
j--;
}
else
B[z]=q;
if (pivot==Max(A,k))
p++;
printf("z=%d\n  ",z);
for(i=0; i<=8; i++)
printf("%d  ",A[i]);
printf("\n");

}

B[0]=p;

return B;
}
void Insertionsort (int A[],int p,int r,int k)
{
int j,i,key;
if (p<r)
{
for(j=p+1; j<r;j++)
{
key=A[j];
i=j-1;
while (i>=p && A[i]>key)
{
A[i+1]=A[i];
i--;
}
A[i+1]=key;
}
for(i=0; i<=8; i++)
printf("%d  ",A[i]);
printf("\n");
}
}
void Kquicksort(int A[],int p,int r,int k)
{
int i;
int *q;
//B=(int*)malloc((k)*sizeof(int));
if(p>=r)
{
//free (B);
return;
}
if (r-p>k)
q=Kpartition(A,p,r,k);
else
{
Insertionsort(A,p,r,k);
p++;
}
for(i=0; i<k-1; i++)
Kquicksort(A, q[i], q[i+1], k);
}
void main ()
{
int A[]={9,8,7,6,5,4,3,2,1}, n=8;
int i,k=3;
Kquicksort(A,0,n,k);
for(i=0; i<=n; i++)
printf("%d  ",A[i]);
return;
}

 4 
 inserita:: Giugno 29, 2015, 11:44:16  
Aperta da Tr_gal - Ultimo messaggio da michele.p
In che senso va in crash? Ti viene restituito qualche errore in particolare?

Se parli di crash la prima cosa che mi viene in mente è un problema di segmentation fault alias va a "toccare" zone di memoria che non dovrebbe nemmeno guardare.  Ghigno

Su che sistema operativo stai provando il programma?

 5 
 inserita:: Giugno 29, 2015, 10:29:51  
Aperta da Tr_gal - Ultimo messaggio da Tr_gal
Ciao a tutti, sono settimane che provo ad implementare un quicksort che funzioni con k pivot e quando finalmente mi sembra quasi funzionare il programma va in crash Broncio
C'è qualcuno che sa dirmi dove sbaglio? sto impazzendo!
Vi posto il codice:
Codice:
#include <stdio.h>
#include <stdlib.h>

int Max (int A[],int k)
{
int max=0,i,tmp;
for(i=0;i<k-1;i++)
{
if (max<A[i])
{
max=A[i];
}
}
printf("\npivot=%d\n",max);
return max;
}

void Swap (int A[], int i, int j)
{
int tmp;
tmp=A[j];
A[j]=A[i];
A[i]=tmp;
return;
}
int *Kpartition (int *A,int p,int r,int k)
{
int i, j, pivot, z, q, a;
int B[3];
i=p;
j=r;
for (z=k-1;z>=1;z--)
{
pivot=Max (A, k);
i=p;
while (i<j)
{
if (pivot==A[i])
q=i;
if (A[j]>pivot)
j--;
if (A[i]>pivot)
{
Swap(A,i,j);
j--;
}
i++;
}
if (A[q]>A[j])
{
Swap(A,q,j);
B[z]=j;
j--;
}
else
B[z]=q;

printf("z=%d\n  ",z);
for(i=0; i<=8; i++)
printf("%d  ",A[i]);
printf("\n");

}
B[0]=p;

return B;
}
void Kquicksort(int A[],int p,int r,int k)
{
int i;
int *q;
//B=(int*)malloc((k)*sizeof(int));
if(p>=r)
{
//free (B);
return;
}
q=Kpartition(A,p,r,k);
for(i=0; i<k-1; i++)
Kquicksort(A, q[i], q[i+1], k);
}
void main ()
{
int A[]={10,1,5,3,7,2,6,9,8}, n=8;
int i,k=3;
Kquicksort(A,0,n,k);
for(i=0; i<=n; i++)
printf("%d  ",A[i]);
return;
}

 6 
 inserita:: Giugno 27, 2015, 12:20:48  
Aperta da Totti - Ultimo messaggio da michele.p
A beneficio di coloro che potrebbero avere lo stesso problema/medesima domanda, ricordiamoci sempre di mettere un [RISOLTO].  Sorriso

 7 
 inserita:: Giugno 26, 2015, 09:46:12  
Aperta da Totti - Ultimo messaggio da Totti
Si funziona.

 8 
 inserita:: Giugno 26, 2015, 12:19:13  
Aperta da Totti - Ultimo messaggio da michele.p
Quindi il backtick (poiché sono "sinonimi").
Provato? Funziona?

 9 
 inserita:: Giugno 25, 2015, 10:53:30  
Aperta da Totti - Ultimo messaggio da Totti
Grazie,
penso che questo faccia al caso mio :


<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

 10 
 inserita:: Giugno 25, 2015, 10:46:29  
Aperta da Totti - Ultimo messaggio da michele.p
L'idea con include potrebbe essere una soluzione: http://php.net/manual/en/function.include.php

Verifica se il backtick potrebbe ritornarti utile nel tuo caso: http://us2.php.net/language.operators.execution

un esempio banale: http://www.webdeveloper.com/forum/showthread.php?182681-Run-another-PHP-script

Pagine: [1] 2 3 ... 10
2: include(/mnt/host/www/ioprogrammo/footer.htm) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
File: D:\StorageVM\malphas\www\ioprogrammo\Themes\ioprogrammo\Recent.template.php (main_below sub template - eval?)
Riga: 800