<!--cek.php -->
<!--Burada merkez bankasından sadece doları çekmek için bir dizi oluşturup o diziye foreach ile ayırdığımız dizinin ilk satırını atıp kullandık...-->
<?php
$linkdolar="http://www.tcmb.gov.tr/kurlar/today.xml";
$data = new SimpleXMLElement($linkdolar,0,true);
$dizi=array();
$dolaralis=array();
foreach ($data as $value)
{
array_push($dizi,$value->Isim);
array_push($dolaralis,$value->ForexSelling);
}
?>
--------------------------------------------------------------------------------------------------------
<!-- MerkezBankasi.php -->
<?php
function getir($key){
if(isset($_POST[$key]) && strlen($_POST[$key])>0)
return $_POST[$key];
return false;
}
$dolartl = "";
$miktar = "";
$sonuc = "";
if(count($_POST)==4)
{
$dolartl = getir("dolartl");
$miktar = getir("miktar");
$secim1 = getir("secim1");
$secim2 = getir("secim2");
if (!($dolartl && $miktar && $secim1 && $secim2)) {
$sonuc="veri girisi hatali";
}
else
{
if($secim1!=$secim2)
{
include "kur.php";
$kur = new kur($dolartl);
$tip=$secim1.$secim2;
$deger=$kur->donustur($tip,$miktar);
$sonuc=$miktar." ".$secim1."<br>";
$sonuc.=$deger." ".$secim2;
}
else
$sonuc="secimler ayni!";
}
}
?>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form method="POST">
<table border="3">
<tr>
<?php include "Cek.php"; ?>
<td>Dolar</td>
<td><input type="text" name="dolartl" value="<?php echo $dolaralis[0]; ?>"> </td>
</tr>
<tr><td colspan="2"><br></td></tr>
<tr>
<td>Miktar:</td>
<td><input type="text" name="miktar" value="<?php echo $miktar; ?>"></td>
</tr>
<tr>
<td>
Seçim-1:
</td>
<td>
<input type="radio" name="secim1" value="TL" checked>TL
<input type="radio" name="secim1" value="$">USD
</td>
</tr>
<tr>
<td>
Seçim-2:
</td>
<td>
<input type="radio" name="secim2" value="TL" checked>TL
<input type="radio" name="secim2" value="$">USD
</td>
</tr>
<?php
if (strlen($sonuc) > 0)
echo "<tr><td colspan='2' style='text-align: center; color: #ff6144;'>" . $sonuc . "</td></tr>";
?>
<tr><td colspan="2" style=text-align:center><input type="submit" value="Cevir"></td></tr>
</table>
</form>
</body>
</html>
---------------------------------------------------------------------------------------
<!-- kur.php -->
<?php
class kur
{
public $dolartl;
public function __construct($dolartl)
{
$this->dolartl=$dolartl;
}
public function donustur($tip,$miktar)
{
switch ($tip)
{
case "TL$": return $this->tl2dolar($miktar);
case "\$TL": return $this->dolar2tl($miktar);
default: return "Seçimler Uygun Değil!";
}
}
public function tl2dolar($miktar)
{
$sonuc=$miktar/$this->dolartl;
return round($sonuc,2);
}
public function dolar2tl($miktar)
{
$sonuc=$miktar*$this->dolartl;
return round($sonuc,2);
}
}
?>
MERKEZ BANKASINDAN ANLIK ALINAN DOLAR KURU İLE TL DÖNÜŞÜMÜ YAPAN PHP PROGRAMI
İŞLETİM SİSTEMLERİ-ÖNEMLİ NOTLAR -1-
ÇOK DÜZEYLİ KUYRUKLAR
1-Bellek büyüklüğü önceliği ve proses türüne göre birbirinden farklı her işlem için ayrı bir hazır kuyruğu bulunmaktadır.
2-Prosesler bu bilgilere göre kalıcı olarak bir kuyruğa atanmaktadır.
3-Her kuyruğun kendine ait bir iş sıralama algoritması bulunur.
ÇOK DÜZEYLİ GERİ BESLEMELİ KUYRUKLAR
1-Prosesler işlemci kullanımlarına kuyruklara yerleşir
2-Her işlemci kullanımında diğre kuyruğa alınır
3-Çok düzeyli kuyrukta işlemler FIFO ile dönüşümlü sıralamanın hibrit yapısı gibidir.
PETRI NETLER
1-Bilgi akışında sistemlerin kontrollerinde ve aynı anda gerçekleşen aktivitelerin olduğu sistemlerin analizinde de ölümcül kilitlenmenin sezilmesi ve giderilmesi için uygulanana yöntemdir.
ÖLÜMCÜL KİLİTLENME
1-Çok prosesli ortamlarda prosesler bellek alanı cpu kullanımı dosyalar giriş çıkış birimlerigibi sonlu sayıdaki kaynaklar için yarışırlar.Bir proses kaynak alamadığında bekleme durumuna geçer.Kaynağı elinde bulunduran diğer proseste bekleme durumunda olabilir.Bu durumda kaynağı bırakamaz ve kaynağı bekleyen proses bekleme durumunda kalır.Yani ölümcül kilitlenme kaynakları paylaşan ve haberleşen proseslerin sonsuza kadar bekleme durumunda kalıp bloke olmasıdır.
Prosesler elindeki kaynakları bırakmadan başka kaynak isterlerse ölümcül kilitlenmeye neden olabilirler.
BİR İPLİK OLUŞTURUP 1 SN SONRA SIGKILL SİNYALİNİ GÖNDERECEK C++ PROGRAMI
#include <iostream>
#include <signal.h>
using namespace std;
void *iplik_islemi( )
{
while(1)
cout<<"BEN İPLİK"<<endl;
}
int main( ){
pthread_t iplik;
pthread_create(&iplik,NULL,iplik_islemi,NULL);
sleep(1);
pthread_kill(iplik,SIGKILL);
pthread_join(iplik,NULL);
}
#include <signal.h>
using namespace std;
void *iplik_islemi( )
{
while(1)
cout<<"BEN İPLİK"<<endl;
}
int main( ){
pthread_t iplik;
pthread_create(&iplik,NULL,iplik_islemi,NULL);
sleep(1);
pthread_kill(iplik,SIGKILL);
pthread_join(iplik,NULL);
}
KENDİSİNE kill( ) SİSTEM ÇAĞRISIYLA SIGKILL KOMUTUNU GÖNDERİP SONLANAN C++ PROGRAMI
#include <iostream>
#include <signal.h>
using namespace std;
int main( ){
kill(getpid( ),SIGKILL);
cout<<"SİNYAL GÖNDERİLDİ..."<<endl;
}
#include <signal.h>
using namespace std;
int main( ){
kill(getpid( ),SIGKILL);
cout<<"SİNYAL GÖNDERİLDİ..."<<endl;
}
SIGINT İLE CTRL+C KOMUTUNU YAKALAMAK (C++,İSLETİM SİSTEMLERİ)
#include <iostream>
#include <stdlib.h>
#include <signal.h>
#include <windows.h>
using namespace std;
void Sinyal_Yakala(){
cout<<"Sinyal Yakalandi..."<<endl;
}
int main()
{
while(true){
if( signal(SIGINT,Sinyal_Yakala)==SIG_ERR)
cout<<"Sinyal Yakalanamadı..."<<endl;
}
}
#include <stdlib.h>
#include <signal.h>
#include <windows.h>
using namespace std;
void Sinyal_Yakala(){
cout<<"Sinyal Yakalandi..."<<endl;
}
int main()
{
while(true){
if( signal(SIGINT,Sinyal_Yakala)==SIG_ERR)
cout<<"Sinyal Yakalanamadı..."<<endl;
}
}
BİR İPLİK OLUŞTURAN VE BU İPLİĞİN SONLANMASINI pthread_join( ) SİSTEM ÇAĞRISIYLA BEKLEYEN İPLİK(C++,İSLETİM SİSTEMLERİ)
#include <iostream>
#include <pthread.h>
using namespace std;
void *iplik_islemi(){
Cout<<"Iplik"<<endl;
}
int main() {
pthread_t iplik;
pthread_create(&iplik,NULL,iplik_islemi,NULL);
cout<<"İpliğin sonlanmasını bekle"<<endl;
pthread_join(iplik,NULL);
cout<<"İplik Sonlandı";
}
#include <pthread.h>
using namespace std;
void *iplik_islemi(){
Cout<<"Iplik"<<endl;
}
int main() {
pthread_t iplik;
pthread_create(&iplik,NULL,iplik_islemi,NULL);
cout<<"İpliğin sonlanmasını bekle"<<endl;
pthread_join(iplik,NULL);
cout<<"İplik Sonlandı";
}
wait( ) Sistem Çağrısı İle Çocuk Prosesi Bekleme (C++,İSLETİM SİSTEMLERİ)
#include <iostream>
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;
int main( ){
pid_t pid;
int statu; //Çocuk prosesin sonlanma değeri
pid= fork( );
if(pid==0)
cout<<"Ben Cocuk Proses"<<endl;
else
{
cout<<"Ben Anne Proses Bekledim..."<<endl;
wait(&statu);
}
}
#include <sys/types.h>
#include <sys/wait.h>
using namespace std;
int main( ){
pid_t pid;
int statu; //Çocuk prosesin sonlanma değeri
pid= fork( );
if(pid==0)
cout<<"Ben Cocuk Proses"<<endl;
else
{
cout<<"Ben Anne Proses Bekledim..."<<endl;
wait(&statu);
}
}
clone( ) Çağrısı İle Yeni Proses Oluşturma (C++,İSLETİM SİSTEMLERİ,LİNUX)
#include <sched.h>
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#define STACK_SIZE 1024
int new_process (){
cout<<"My new process..."<<endl;
return 1;
}
int main( )
{
int pid;
void *stack; //Cocuk prosesin yığın işaretçisi
stack=malloc(STACK_SIZE); //Bellek alanı alma
if(stack==0){
cout<<"Bellek tahsis hatasi"<<endl;
exit(1);
}
pid=clone(&new_process,(char*) stack+STACK_SIZE,0,0);//clone-->>İle yeni proses oluşturuldu...
pid=waitpid(pid,NULL,0);//Wait a child process
cout<<"CHILD PROCESS ENDED..."<<endl;
free(stack); //Belleği Bırak
}
fork( ) Sistem Çağrısı ve Yeni İplik Oluşturma Çağrısı(C++,İŞLETİM SİSTEMLERİ)
#include <iostream>
#include <sys/types.h>
#include <unistd.h>
using namespace std;
int main(){
pid_t pid;
pid=fork();
if(pid==0)
cout<<"Merhaba ben cocuk proses"<<endl;
else
cout<<"Merhaba ben anne proses";
}
//Şimdide yukarıda oluşturduğumuz prosese bir iplik ekleyelim
#include <iostream>
#include <pthread.h>
using namespace std;
void *iplik_islemleri(void *i)
{
cout<<"İplik çalışmaya başladı..."<<i<<endl;
}
int main(){
//İplik bilgilerini saklamak için pthread_t tipinde bir değişken
pthread_t iplik;
int iplik_no,i=1;
iplik_no=pthread_create(&iplik,NULL,iplik_islemleri,(void*)i);
//iplik oluşturuldu...
//ipliğin sonlanmasını bekliyoruz...
pthread_join(iplik,NULL);
}
SQL DİSTİNCT KOMUTU
DİSTİNCT KOMUTUMUZ TEKRARLI KAYITLARIMIZIN GÖSTERİLMEMESİNİ SAĞLIYOR.
ÖRNEĞİN VERİ TABLOMUZDA AHMET ADINDAN YÜZLERCE KİŞİ VAR VE BİZ SADECE
BİR TANESİNİN GÖSTERİLMESİNİ İSTİYORUZ O ZAMAN DİSTİNCT KOMUTUNU
KULLANMAMIZ GEREKECEKTİR.
ÖRNEĞİN VERİ TABLOMUZDA AHMET ADINDAN YÜZLERCE KİŞİ VAR VE BİZ SADECE
BİR TANESİNİN GÖSTERİLMESİNİ İSTİYORUZ O ZAMAN DİSTİNCT KOMUTUNU
KULLANMAMIZ GEREKECEKTİR.
SQL DELETE (SİLME) KOMUTU
Kaydol:
Kayıtlar (Atom)
Spring Boot Uygulamasını Heroku üzerinde Deploy Etme
Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim. Önce ...
-
Bu yazımda hobi olarak ilgilendiğim bug bounty'i anlatmaya çalışacağım. Daha sonra bu konu üzerinde kendimizi geliştirmek için neler yap...
-
Flip-Flop doğruluk tabloları girişlerin durumuna bağlı olarak çıkışların ne olması gerektiğini anlatan tablolardır. Kısaca bir doğruluk tabl...