Yazar |
|
cguzel
Kayıt: 11.02.2010 |
|
cokomastik yazdi | //Bir yanlışlık gördüğünüzde söylerseniz sevinirim
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
typedef struct bolum //islem yapılan bölümler için
{
int urun; //içerisinde urun varsa numarasını tutar, yoksa -1
int sure; //urunun bölüme giriş anını tutar
}bolum;
//fonksiyonları kolay yazmak için bütün değişkenleri global yaptım
int zaman=0,bas=0,son=0,cikson=0;
//zamanx10 dakika şeklinde düşünün her döngüde zaman 1 artıyor
//yani 10 dakikalık adımlarla işleyişler gerçekleşiyor
//bas ve son deiskenleri liste ve stack yapıları için
int urunler[5]={-1,-1,-1,-1,-1}; //önişlem sırası bekleyen ürünleri tutmak için
int cikanlar[72]; //çıkan ürünleri tutmak için
bolum onbol,birbol,ikibol,arabol; //bölümler
void urunyarat ()
{
urunler[son]=rand()%100;
son=(son+1)%5;
}
void onislem()
{
if(onbol.urun==-1) //bölüm boş ise yeni ürün alıcak urunler listesinden
{
if (urunler[bas]!=-1) //ürünler listesinde yeni ürün varsa alabilir sadece
{
onbol.urun=urunler[bas];
onbol.sure=zaman;
urunler[bas]=-1;
bas=(bas+1)%5;
}
}
else if ((zaman-onbol.sure)>=1 && birbol.urun==-1) //ürün işlem ömrünü doldurduysa ve sonraki bölüm boş ise göndericek
{
birbol.urun=onbol.urun;
birbol.sure=zaman;
onbol.urun=-1;
}
}
void birislem() //birinci bölümde ürün varsa ve işlem ömrü dolduysa arabölüme gönderiyor
{
if(birbol.urun!=-1 && (zaman-birbol.sure)>=2)
{
arabol.urun=birbol.urun;
arabol.sure=zaman;
birbol.urun=-1;
}
}
void ara()
{
if(arabol.urun!=-1 && (zaman-arabol.sure)>=1)
{
ikibol.urun=arabol.urun;
ikibol.sure=zaman;
arabol.urun=-1;
}
}
void ikiislem()
{
if(ikibol.urun!=-1 && (zaman-ikibol.sure)>=3) //
{
cikanlar[cikson]=ikibol.urun;
arabol.urun=-1;
cikson++;
}
}
int main()
{
srand(time(NULL));
onbol.urun=-1; birbol.urun=-1; ikibol.urun=-1; arabol.urun=-1;
while (zaman<72) //her 10 dakika 1 zamana eşittir
{
if ((rand()%100<50)) //%50 ihtimalle ürün yaratılır.
{
urunyarat();
} //islemlerin tersten olmasının nedeni bir işlem ürünü çıkarttığında diğer işlemin hemen alabilmesi için
ikiislem();
ara();
birislem();
onislem();
zaman++;
}
} |
arkadaşlar bu kodda struct aşamaları tutuyor. her bir aşamayı nesne olarak tanımlamış.
ben ise her bir ürünü nesne olarak düşündüm. benim gibi düşünen var mı?
|
|
Yazar |
|
cokomastik
Kayıt: 14.09.2008 |
|
ben aynı soruyu sordum hoca çok derin düşünmeyin soruda sorulanı yapsın yeter demiş sınavda
|
|
Yazar |
|
abuzer
istanbul
Kayıt: 15.10.2007 |
|
cguzel yazdi | cokomastik yazdi [quote]//Bir yanlışlık gördüğünüzde söylerseniz sevinirim
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
typedef struct bolum //islem yapılan bölümler için
{
int urun; //içerisinde urun varsa numarasını tutar, yoksa -1
int sure; //urunun bölüme giriş anını tutar
}bolum;
//fonksiyonları kolay yazmak için bütün değişkenleri global yaptım
int zaman=0,bas=0,son=0,cikson=0;
//zamanx10 dakika şeklinde düşünün her döngüde zaman 1 artıyor
//yani 10 dakikalık adımlarla işleyişler gerçekleşiyor
//bas ve son deiskenleri liste ve stack yapıları için
int urunler[5]={-1,-1,-1,-1,-1}; //önişlem sırası bekleyen ürünleri tutmak için
int cikanlar[72]; //çıkan ürünleri tutmak için
bolum onbol,birbol,ikibol,arabol; //bölümler
void urunyarat ()
{
urunler[son]=rand()%100;
son=(son+1)%5;
}
void onislem()
{
if(onbol.urun==-1) //bölüm boş ise yeni ürün alıcak urunler listesinden
{
if (urunler[bas]!=-1) //ürünler listesinde yeni ürün varsa alabilir sadece
{
onbol.urun=urunler[bas];
onbol.sure=zaman;
urunler[bas]=-1;
bas=(bas+1)%5;
}
}
else if ((zaman-onbol.sure)>=1 && birbol.urun==-1) //ürün işlem ömrünü doldurduysa ve sonraki bölüm boş ise göndericek
{
birbol.urun=onbol.urun;
birbol.sure=zaman;
onbol.urun=-1;
}
}
void birislem() //birinci bölümde ürün varsa ve işlem ömrü dolduysa arabölüme gönderiyor
{
if(birbol.urun!=-1 && (zaman-birbol.sure)>=2)
{
arabol.urun=birbol.urun;
arabol.sure=zaman;
birbol.urun=-1;
}
}
void ara()
{
if(arabol.urun!=-1 && (zaman-arabol.sure)>=1)
{
ikibol.urun=arabol.urun;
ikibol.sure=zaman;
arabol.urun=-1;
}
}
void ikiislem()
{
if(ikibol.urun!=-1 && (zaman-ikibol.sure)>=3) //
{
cikanlar[cikson]=ikibol.urun;
arabol.urun=-1;
cikson++;
}
}
int main()
{
srand(time(NULL));
onbol.urun=-1; birbol.urun=-1; ikibol.urun=-1; arabol.urun=-1;
while (zaman<72) //her 10 dakika 1 zamana eşittir
{
if ((rand()%100<50)) //%50 ihtimalle ürün yaratılır.
{
urunyarat();
} //islemlerin tersten olmasının nedeni bir işlem ürünü çıkarttığında diğer işlemin hemen alabilmesi için
ikiislem();
ara();
birislem();
onislem();
zaman++;
}
} |
Güzel düşünmüşsün ama ürünü oluşturduktan sonra ürünü bölümler arasında ilişkilendirecek parametreleri fonksiyonlara eklememişsin
|
|
Yazar |
|
cokomastik
Kayıt: 14.09.2008 |
|
neden yahu bolum.urun o bolumda hangi ürün olduunu gösteriyor.
-1 ise boş o bölüm.
|
|
Yazar |
|
cguzel
Kayıt: 11.02.2010 |
|
abuzer yazdi |
Güzel düşünmüşsün ama ürünü oluşturduktan sonra ürünü bölümler arasında ilişkilendirecek parametreleri fonksiyonlara eklememişsin
|
o kod benim değil ama o diğer arkadaşın
|
|
Yazar |
|
brkygt
Kayıt: 29.06.2010 |
|
Hüseyin, bu fonksiyonlardaki zaman-onbol.sure, zaman-birbol.sure filan onun mantığı nedir? Bir de zaman<72 demişsin. Genel olarak mantığı doğru buldum ama bu zamanla ilgili olanları nasıl düşündün pek anlamadım.
|
|
Yazar |
|
idontcare
istanbul
Kayıt: 22.01.2009 |
|
arkadaslar bence bu sorulara derin düsünmeyelim yinede mantıgını ezberleyip yazarız yarın
benim endişem yarın hoca sınavda enteresan bi graf sorusu daha sorabilir buna hazırlıklı olmamız gerektiğini düşünüyorum
i dont care
|
|
Yazar |
|
cokomastik
Kayıt: 14.09.2008 |
|
zamanı açıkladım aslında her while döngüsü sonunda zaman 1 artıyor.
yani her döngüde saat 10 dakika ilerliyor diye düşünün. İş sürecini 10 dakikalık bölümlere ayrılmış gibi. 72 olmasının nedeni de 1 günde 12 saat çalışır diye düşündüm.
ayrıca süre de ürünün bölüme giriş saatini tutuyor.
yani 0 anı saat 8.00 ise ürün 5 anında girdiğinde saat 9.00da girmiş oluyor ve 6 anında 9.10 oluyor zaman. yani ürün önbölümden çıkmaya hazır. 6da 1. bölüme giriyor hemen. 1. bölüme giriş saati 9.10. zaman 8 olduğunda yani saat 9.30 olduğunda 1. bölümden çıkıyor vs vs.
ayrıca ters çevrilmiş dosya yapısı ne oluyor bilen var mı?
|
|
Yazar |
|
ysfyzl
Kayıt: 04.12.2006 |
|
cokomastik yazdi |
ayrıca ters çevrilmiş dosya yapısı ne oluyor bilen var mı? |
indexe girmiyor mu bu konu?
İndexe giriyorsa,index sorulmayacak denmişti.
|
|
Yazar |
|
derinyesil
MardiN
Kayıt: 16.02.2010 |
|
Merhaba arkadaşlar dosyadan okuma ve sıralama ve başka dosyaya yazma ile ilgili biraz acele bir kod yazdım.Çok ayrıntılı yazmadım en azından bir fikir veririr.
#include<stdio.h>
struct den{ // ara bilgiyi tuttan yapımızın tipi.
int no;
char ad[10];
};
typedef struct den Den;
int main()
{
Den a[3]; // 3 adet yapı elamanına sahip dizi
Den temp; // ara yapıyı tuttan değişken
FILE *fptr,*yptr;
fptr=fopen("deneme.txt","r");
if(fptr==NULL)
printf("dosya a.ılmadı");
yptr=fopen("yaz.txt","w");
if(yptr==NULL)
printf("dosya acılmadı");
while(!feof(fptr))
{
for(int i=0;i<3;i++) // dongude dosyadan veriyi okuyum elemanı yapı olan diziye atıyor.
fscanf(fptr,"%d %s ",&a[i].no,&a[i].ad);
for(int i=0; i<=2;i++)//burda no ya gore karşılaştıryor ve elemanı yapı olan diziyi
// no ya gore sıralıyor.
{
for(int j=i+1;j<=3;j++)
{
if(a[i].no > a[j].no)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
for(int i=0;i <3;i++)//burda da dizinin elemanlarını dosyaya yazıyor.
{
fprintf(yptr,"%d %s ",a[i].no,a[i].ad);
}
fclose(fptr);
return 0;
}
deneme.txt
23 ali
9 can
14 ayse
gibi bilgi icerdiğini farzediyoruz.Tabi istediğimiz kadar veriyi koyabiliyoruz.
Bugün MUTLU OLMAYI seç...!
www.javrasya.com
|
|
Yazar |
|
ysfyzl
Kayıt: 04.12.2006 |
|
Bu seneki notlarda 3 limanı olan bi rıhtım simülasyonunun ödev olarak verildiğini gördüm,
yapan varsa paylaşabilir mi?
|
|
Yazar |
|
ysfyzl
Kayıt: 04.12.2006 |
|
Eksiğiyle gediğiyle 4.soruyu yapmaya çalıştım.
#include<stdlib.h>
#include<stdio.h>
typedef struct kuyruk{
int no;
int zaman=0;
struct kuyruk *sonraki;
}kuyruk;
kuyruk *ilk = NULL;
kuyruk *son = NULL;
kuyruk *onislem(kuyruk *);
kuyruk *birincisslem(kuyruk *);
void ikinciislem(kuyruk *);
kuyruk *ara(kuyruk *);
void eklekuyruk(int);
kuyruk *sil(void);
int main()
{
int i;
int k;
kuyruk *gecici1,*gecici2,*gecici3,*gecici4;
for (i = 1; i <= 20; ++i)
{
eklekuyruk(i);
}
while (ilk){
if (ilk != NULL){
gecici1=sil();
gecici2=onislem(gecici1);
gecici3= birinciislem(gecici2);
gecici4=ara(gecici3);
ikinciislem(gecici4);
}
system("PAUSE");
return 0;
}
void eklekuyruk(int i)
{
kuyruk *yeni;
yeni = (kuyruk*)malloc(sizeof(kuyruk));
yeni->sonraki = NULL;
yeni->no = i;
if (ilk == NULL){
ilk = yeni;
son = yeni;
}
else {
son->sonraki = yeni;
son = yeni;
}
}
kuyruk *sil(void)
{
kuyruk *p;
int data;
p = ilk;
data = p->no;
if (ilk == NULL)
printf("liste bos
");
else {
ilk = ilk->sonraki;
if (ilk == NULL)
son = NULL;
}
free(p);
return ilk;
}
kuyruk *onislem(kuyruk *tempPtr)
{
tempPtr->zaman+=10;
printf("%d. ürün ön islemde,bu işlemle birlikte toplam işlem süresi %d dakika oldu
",tempPtr->no,tempPtr->zaman);
return tempPtr;
}
kuyruk *birinciislem(kuyruk *tempPtr)
{
tempPtr->zaman+=20;
printf("%d. ürün birinci islemde,bu işlemle birlikte toplam işlem süresi %d dakika oldu
",tempPtr->no,tempPtr->zaman);
return tempPtr;
}
kuyruk *ara(kuyruk *tempPtr)
{
tempPtr->zaman+=10;
printf("%d. ürün ara da bekliyor,bu işlemle birlikte toplam işlem süresi %d dakika oldu
",tempPtr->no,tempPtr->zaman);
return tempPtr;
}
void ikinciislem(kuyruk *tempPtr)
{
tempPtr->zaman+=30;
printf("%d. ürün ikinci islemdebu işlemle birlikte toplam işlem süresi %d dakika oldu
",tempPtr->no,tempPtr->zaman);
}
|
|
Yazar |
|
mrcan321
Mersin
Kayıt: 27.07.2007 |
|
bugünkü büt sorularını koyabilecek olan var mı?
|
|
Yazar |
|
mperk
Kayıt: 18.11.2008 |
|
mrcan321 yazdi | bugünkü büt sorularını koyabilecek olan var mı? |
http://i54.tinypic.com/2639afo.jpg
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | |