#include<iostream>
using namespace std;
int saycevir(string sayi)
{
int sonuc=0;
int basamaksay=1;
int uz=sayi.length();
char sayilar[10]={'0','1','2','3','4','5','6','7','8','9'};
double sayim[10]={0,1,2,3,4,5,6,7,8,9};
for(int i=0;i<sayi.length();i++)
{
   for(int j=0;j<10;j++)
      if(sayilar[j]==sayi[i])
      {
        for(int k=uz;k>1;k--)
        {
            basamaksay*=10;

        }
           if(uz==1)
           {
           sonuc=sonuc+sayim[j];
           }
           else
          sonuc=sonuc+(sayim[j]*basamaksay);
          basamaksay=1;
            uz--;
      }
}
return sonuc;}

int main()
{
string s="";
cout<<"Sayiyi giriniz=";
cin>>s;
cout<<endl;
int sayi=saycevir(s);
//ÖRNEK
cout<<"sayi ile 15 in toplamı="<<15+sayi;

return 0;}

 

#include<iostream>
#include<sys/syscall.h>
#include<pthread.h>
#include<unistd.h>
#include<cstdlib>
using namespace std;

void * tasal(void *sayi)
{
int sayac=0;
int sayim=(int)sayi;
if(sayim==0)
{  cout<<"0"<<" "<<"asal değildir"<<endl;
return 0;

}
if(sayim==1)
{  cout<<"1"<<" "<<"asal değildir"<<endl;
return 0;

}
   for(int j=2;j<=sayim/2;j++)
      if(sayim%j==0)
          {
            sayac++;
            break;
          }
 if(sayac==0)
  cout<<sayim<<" "<<"asaldır"<<endl;
  else
  cout<<sayim<<" "<<"asaldegildir"<<endl;

 }
void * tfibonacci(void*sayi)
{ int * a=(int*)sayi;
int sayim=*a;
int s1=0;
int s2=1;
int s3=0;


while(s3<sayim)
{s3=s2+s1;
s1=s2;
s2=s3;
if(s3==sayim)
   {
     break;

   }
}
if(s3==sayim)
cout<<sayim<<" "<<"Fibonacci sayısıdır"<<endl;
else
cout<<sayim<<" "<<"Fibonacci sayısı değildir"<<endl;

}
int main()
{
int dizi[5]={5,13,2,8,6};
int boyut=sizeof(dizi)/sizeof(int);
pthread_t iplik[boyut], iplik2[boyut];


for(int i=0;i<boyut;i++)
{
pthread_create(&iplik[i],NULL,tfibonacci,&dizi[i]);
pthread_create(&iplik2[i],NULL,tasal,(void*)dizi[i]);

}

for(int i=0;i<boyut;i++)   //ipliklerin bitmesini bekle ondan sonra sonlan
{
pthread_join(iplik[i],NULL);
pthread_join(iplik2[i],NULL);
}




return 0;}

 

#include<iostream>
#include<pthread.h>
using namespace std;
void *iplik(void*a)
{
cout<<"İPLİK ÇALISIYOR"<<endl;

}

int main()
{
 //İplikler bir prosesin icinde birden fazla islem yapmaya yarar.
pthread_t i;//iplik bilgilerini tutan degiskenler
pthread_create(&i,NULL,iplik,NULL);//İplik olusturuluyor


pthread_join(i,NULL);// Burda Prosese sen iplik sonlandıktan sonra sonlanacaksın diyoruz

return 0;}

 

#include<iostream>
#include<unistd.h>
#include<signal.h>
#include<sys/wait.h>
using namespace std;
int main()
{
pid_t pid;
pid=fork();
if(pid==0)
{execl("/usr/bin/firefox","firefox",NULL,NULL);
}
else
 {  waitpid(pid,0,0); // Cocugun sonlanmasını bekle
cout<<"İŞLEM TAMAM"<<endl;
}
return 0;}

 

#include<iostream>
#include<unistd.h>
#include<sys/wait.h>
using namespace std;
int main()
{
pid_t pid;

pid=fork();

if(pid==0)
{
cout<<"klonlanmıs proces=="<<getpid()<<endl;
sleep(10);

cout<<"isim bitti"<<endl;

}
else{

cout<<"ana proces=="<<getpid()<<endl;
cout<<"cocuk beklesin"<<endl;
waitpid(pid,0,0);//Anne proses cocuk prosesin sonlanmasını bekliyor
cout<<"bende öldüm";


}

return 0;}

 

#include<iostream>
#include<unistd.h>//Bu kütüphane  ise getpid() ve fork() fonksiyonlarını buraya dahil etmek yani bu fonkları kullanmak icin 
using namespace std;
int main()
{
pid_t pid;

pid=fork();//Burdan itibaren Ana prosesin bir kopyası olusur.Yani burdan sonraki kodlar Ana proses ve Cocuk proses işler ve fork() fonksiyonunu Ana proses calıstırdıgı icin Ana prosesdeki pid degeri cocugunun pid degeridir
//cocuk prosesdeki pid degeri ise cocugun cocugu olamadıgı icin 0 dır. 

if(pid==0)
{ 
   cout<<"Ben cocuk Proses PID="<<getpid();
  //getpid() fonksiyonu calıstıran prosesin degerini döndürür. 
}
else
{
cout<<"Ben Anne proses PID="<<getpid();
}

return 0;}