Fatih Üniversitesi Eğitim Programlama C/C++ random fonksiyonuna bir örnek
kayıt ol


Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 29/11/09, 16:42 PM   #1 (permalink)
Çöm
Durum: Offline
Üyelik tarihi: Jul 2009
Konular: 1
Mesajlar: 1
Tecrübe Gücü: 0
Tecrübe Puanı: 10
ekshe is on a distinguished road
Standart random fonksiyonuna bir örnek



/*
4 basamaklı, basamakları yinelenmeyen rastgele (random) sayı üreten fonksiyon.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define SIZE 50

int rand_number(void);
int is_valid(int number);

int main(void)
{
int i, a[SIZE];

srand(time(NULL));

for (i = 0; i < SIZE; i++)
while (!is_valid(a[i] = rand_number()))
;
for (i = 0; i < SIZE; i++)
printf("%d ", a[i]);
putchar('\n');

system("pause");
return 0;
}
/*
1000 ile 9999 arasinda rasgele sayi ureten fonksiyon
*/
int rand_number(void)
{
return rand() % 9000 + 1000;
}
/*
kendisine gonderilen sayinin kosula uygun, basamaklari tekrar
etmeyen bir sayi olup olmadigini test eden fonksiyon. uygunsa 1
degilse 0 degirini uretiyor.
*/
int is_valid(int number)
{
int temp, i, j;

for (i = 0; i < 10; i++) {
j = 0;
temp = number;
while (temp > 0) {
if (temp % 10 == i)
j++;
if (j > 1)
return 0;
temp /= 10;
}
}
return 1;
}

Konu ekshe tarafından (29/11/09 Saat 16:44 PM ) değiştirilmiştir.
  Alıntı ile Cevapla
Alt 05/09/10, 14:25 PM   #2 (permalink)
Çömez
Durum: Offline
Üyelik tarihi: Aug 2010
Bulunduğu yer: İstanbul
Konular: 3
Mesajlar: 30
Tecrübe Gücü: 2
Tecrübe Puanı: 10
uueeaaa is on a distinguished road
Standart Cevap: random fonksiyonuna bir örnek



peki şöyle bir sistemi nasıl kurabiliriz;
örneğin elimde 3000 kelimelik bir veritabanı var ve ben sürekli 5 adet veriyi bu database'den çekiyorum. ancak sürekli olarak farklı 5 kelimeyi çekmem gerekecek, aynı kelimeler tekrar etmemeli. php ve mysql kullanarak düzenlediğim bir sistemde bunu session kullanarak yapmaya çalıştım ama bir çözüm üretemedim.

Nasıl bir yol izleyeceğim konusunda fikri olan?


__________________
-----------------------------------
  Alıntı ile Cevapla
Alt 06/09/10, 00:13 AM   #3 (permalink)
HiO
Fatihli
HiO - ait Kullanıcı Resmi (Avatar)
Ruh Halim:
Durum: Offline
Üyelik tarihi: Apr 2009
Yaş: 25
Konular: 1
Mesajlar: 54
Tecrübe Gücü: 4
Tecrübe Puanı: 63
HiO will become famous soon enough
HiO - İCQ üzeri Mesaj gönder HiO - MSN üzeri Mesaj gönder
Standart Cevap: random fonksiyonuna bir örnek



Alıntı:
uueeaaa Nickli Üyeden Alıntı Mesajı göster
peki şöyle bir sistemi nasıl kurabiliriz;
örneğin elimde 3000 kelimelik bir veritabanı var ve ben sürekli 5 adet veriyi bu database'den çekiyorum. ancak sürekli olarak farklı 5 kelimeyi çekmem gerekecek, aynı kelimeler tekrar etmemeli. php ve mysql kullanarak düzenlediğim bir sistemde bunu session kullanarak yapmaya çalıştım ama bir çözüm üretemedim.

Nasıl bir yol izleyeceğim konusunda fikri olan?
5 kelime çekerken beşi de farklı olacaksa her çektiğin kelimeyi bir diziye koyar, bir sonraki çektiğini ise bu dizide var mı diye kontrol edip ona göre diziye ekleme yaparsın.

Tamamen öncekilerden de farklı olacaksa bu beşli, o zaman tüm kelimeleri bir dizide tutman gerekecek ve her yeni çektiğin beşli bu dizide var mı diye kontrol edeceksin.


__________________
g3nt00
  Alıntı ile Cevapla
Alt 06/09/10, 01:06 AM   #4 (permalink)
Çömez
Durum: Offline
Üyelik tarihi: Aug 2010
Bulunduğu yer: İstanbul
Konular: 3
Mesajlar: 30
Tecrübe Gücü: 2
Tecrübe Puanı: 10
uueeaaa is on a distinguished road
Standart Cevap: random fonksiyonuna bir örnek



ama php üzerinde kurulu bi sistem olduğundan bu dizideki değerler kaybolacak. session komutlarını kullanmam gerekecek sanırım. çünkü 5 kelime kullanıcıya sunulduktan sonra, sorgu yeniden gönderilecek. ayrıca tüm veritabanını diziye aktarmam mysql'i fazla kasmayacak mıdır?


__________________
-----------------------------------
  Alıntı ile Cevapla
Alt 06/09/10, 04:33 AM   #5 (permalink)
HiO
Fatihli
HiO - ait Kullanıcı Resmi (Avatar)
Ruh Halim:
Durum: Offline
Üyelik tarihi: Apr 2009
Yaş: 25
Konular: 1
Mesajlar: 54
Tecrübe Gücü: 4
Tecrübe Puanı: 63
HiO will become famous soon enough
HiO - İCQ üzeri Mesaj gönder HiO - MSN üzeri Mesaj gönder
Standart Cevap: random fonksiyonuna bir örnek



Alıntı:
uueeaaa Nickli Üyeden Alıntı Mesajı göster
ama php üzerinde kurulu bi sistem olduğundan bu dizideki değerler kaybolacak. session komutlarını kullanmam gerekecek sanırım. çünkü 5 kelime kullanıcıya sunulduktan sonra, sorgu yeniden gönderilecek. ayrıca tüm veritabanını diziye aktarmam mysql'i fazla kasmayacak mıdır?
diziyi session olarak kullanman gerek. bir array oluşturup onu session olarak kaydedersin. fazla sorgu göndermemek için ise kelimelerin olduğu tabloyu "select *" sorgusuyla ile fetch yapıp döngü içinde fetch edilen yeni kelimenin, session'da kayıtlı array'de olup olmadığını da if ile kontrol ettirirsin.

bu da şöyle birşey olur(basitçe);

Kod:
session_start();

if (!isset($_SESSION["kelimeler"]))
   $_SESSION["kelimeler"] = array();
else
{
    $sql = "select * from kelimeler";
    $ret = mysql_query($sql);
    $i = 0;
    while($row = mysql_fetch_array($ret) || $i <= 5)
    {
        if (in_array($row["kelime"], $_SESSION["kelimeler"])
             continue;
        array_push($_SESSION["kelimeler"], $row["kelime"]);
        i++;
    }
}


__________________
g3nt00

Konu HiO tarafından (06/09/10 Saat 04:44 AM ) değiştirilmiştir.
  Alıntı ile Cevapla
Alt 06/09/10, 11:43 AM   #6 (permalink)
Çömez
Durum: Offline
Üyelik tarihi: Aug 2010
Bulunduğu yer: İstanbul
Yaş: 25
Konular: 1
Mesajlar: 16
Tecrübe Gücü: 2
Tecrübe Puanı: 10
oucel is on a distinguished road
Standart Cevap: random fonksiyonuna bir örnek



Bunu aşağıdaki sorguyla kolayca halledebilirsin:
PHP- Kodu:
<?php
$onceki_alinanlar 
'1,2,3,4,5,6';
$sql "SELECT * FROM tablename WHERE id NOT IN ($onceki_alinanlar) ORDER BY RAND() LIMIT 5";
...
?>
  Alıntı ile Cevapla
Alt 06/09/10, 19:29 PM   #7 (permalink)
Çömez
Durum: Offline
Üyelik tarihi: Aug 2010
Bulunduğu yer: İstanbul
Konular: 3
Mesajlar: 30
Tecrübe Gücü: 2
Tecrübe Puanı: 10
uueeaaa is on a distinguished road
Standart Cevap: random fonksiyonuna bir örnek



çok sağolun arkadaşlar, her iki yolla da halledilebilir.
mysql'de NOT IN olduğunu da öğrenmiş oldum (:
  Alıntı ile Cevapla
Cevapla

Bookmarks


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 10:07 AM.
Powered by vBulletin® Version 3.8.2 .
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2009, Crawlability, Inc.
Design By Htworks.Net Licenced To Fatih Üniversitesi

fatih üniversitesi, fatih üniversitesi yatay geçiş, fatih üniversitesi dikey geçiş, fatih üniversitesi ücretleri, fatih üniversitesi yüksek lisans, fatih üniversitesi hastanesi, fatih üniversitesi ankara, fatih üniversitesi tıp fakültesi, fatih üniversitesi bölümleri, fatih üniversitesi bahar şenlikleri

Sitemiz bir forum sitesi olduğu için kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir,
bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir,
yine de sitemizde yasalara aykırı unsurlar bulursanız buradan bize bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.
Report Abuse, Harassment, Scamming, Hacking, Warez, Crack, Divx, Mp3 or any Illegal Activity to here

Reklam vermek için bize buradan ulaşabilirsiniz.
Fatih Üniversitesi
Fatih Üniversitesi - Metin2 Forum - Metin2 PVP - film indir - Metin2 Türkiye - Şarkı Sözü

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171