Hello !
A kovetkezo a problemam: linux alatt divide et impera modszer segitsegevel
kellene
rendezni egy sort... Ez idaig ok is lenne csakhogy a ket reszsorozatot
ket kulonallo process kellene rendezze es igy tovabb ...
Na itt vagyok megakadva... Halas lennek ha valaki ramutatna a hibara.
Koszi
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include "error.h"
#define nrelem 10
int x[nrelem];
int n;
pid_t mypid=getpid();
void rendez (int bal, int jobb)
{int aux;
if ((bal<jobb) && (x[bal] > x[jobb])) {
aux=x[bal];
x[bal]=x[jobb];
x[jobb]=aux;
}
}
void fesul (int bal, int kozep, int jobb)
{int i,j,k,l;
int y[nrelem];
i=k=bal;
j=kozep+1;
while (i<=kozep && j<=jobb)
{ if (x[i] <= x[j])
y[k++]=x[i++];
else
y[k++]=x[j++];
}
for(l=i; l<=kozep; y[k++]=x[l++]);
for(l=j; l<=jobb; y[k++]=x[l++]);
for(k=bal; k<=jobb; x[k++]=y[k]);
}
void DI (int bal, int jobb)
{ int m;
pid_t pid1, pid2, pid3;
if ((jobb-bal) <= 1)
rendez (bal,jobb);
else
{
m=(bal+jobb)/2;
if (mypid!=getpid()) ;
else if ((pid1=fork())==-1) error("fork error!\n");
if (mypid!=getpid()) ;
else if ((pid2=fork())==-1) error("fork error!\n");
if (pid1==0)
{ printf("Fiu1: %d , parent %d\n",getpid(),getppid());
DI (bal,m);
exit(0);
}
if (pid2==0)
{ printf("Fiu2: %d , parent %d\n",getpid(),getppid());
DI (m+1,jobb);
exit(0);
}
wait(0);
fesul (bal,m,jobb);
}
return;
}
void main(void)
{int i;
printf ("elemek szama: \n");
scanf ("%d",&n);
for (i=1; i<=n; i++)
{printf("x[%d]=",i);
scanf("%d",&x[i]);
}
printf("Process pid: %d\n",mypid);
DI (1,n);
printf("\na rendezett sor:\n");
for (i=1; i<=n; i++) printf("x[%d]=%d\n",i,x[i]);
}
|
sziasztok!
egy olyan gondom lenne Delphiben, hogy van sok Edit Boxom, es mikor megkapja
a focust az egyik akkor mindig
ugyanazt az eljarast kene vegrehajtani mindegyiknel.....DE:
de tudnom kene, hogy melyik is volt amelyiknel az esemeny bekovetkezett!
Most mar minden Edit box ugyanazt az eljarast hivja meg, de a SENDERbol nem
tudom kiszedni hogy
mi az edit box neve ami meghivta.....!
szoval aki tud segiteni az irja meg, hogy mondjuk a meghivo edit box textjet
atirja xxx-re.... koszonom!!
kuldje el nekem is.... )
koszi!
sTenYa
|