Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Visual Basic

Cevapla
 
LinkBack Seçenekler
Eski 06/05/2007, 22:13   #1 (permalink)
Üye
 
Üyelik Tarihi: 05/2007
Mesaj: 11
Varsayılan dizilerle ilgili bir soru

Dışarıdan girilen n elemanlı bir dizide her bir elemandan kaç adet olduğunu bulan program..


Private Sub Command1_Click()
Dim dizi()
Dim n As Integer
Dim sayac As Integer
n = InputBox("Diziniz kaç elemanlı olsun?")
ReDim dizi(n)
For i = 0 To n - 1
dizi(i) = InputBox("sayılar")
Next
For i = 0 To n - 1
For j = 0 To n - 1
If dizi(i) = dizi(j) Then sayac = sayac + 1
For k = 0 To i - 1
If dizi(i) = dizi(k) Then GoTo g
Next
Next
Print sayac & " " & "tane" & " " & dizi(i) & " " & "elemanından var"
sayac = 0
g:
Next
End Sub

arkadaşlar bi yerde yanlışlık var ama çözemedim biri bana yardımcı olabilirmi?
naiad1786 hatta değil   Alıntı Yaparak Yanıtla
Eski 06/05/2007, 22:29   #2 (permalink)
Üye
 
Üyelik Tarihi: 05/2007
Mesaj: 11
Varsayılan

ya ndn kimse bişi yazmıyo yaa lütfen ödewim var daha bunun gibi bir sürü ağlıcam şimdi:'(
naiad1786 hatta değil   Alıntı Yaparak Yanıtla
Eski 06/05/2007, 22:47   #3 (permalink)
Üye
 
Üyelik Tarihi: 01/2007
Mesaj: 34
Varsayılan

Private Sub Command1_Click()

Dim dizi()
Dim n As Integer
Dim i, j, k As Integer
Dim sayac As Integer
n = InputBox("Diziniz kaç elemanlı olsun?")
ReDim dizi(n)
For i = 0 To n - 1
dizi(i) = InputBox("sayılar")
Next
For i = 0 To n - 1
For j = 0 To n - 1
If dizi(i) = dizi(j) Then sayac = sayac + 1
For k = 0 To i - 1
If dizi(i) = dizi(k) Then GoTo g
Next
Next
MsgBox(sayac & " " & "tane" & " " & dizi(i) & " " & "elemanından var")
sayac = 0
g:
Next
End Sub
erkany hatta değil   Alıntı Yaparak Yanıtla
Eski 06/05/2007, 23:06   #4 (permalink)
Üye
 
Üyelik Tarihi: 05/2007
Mesaj: 11
Varsayılan

arkadaşım çok saol bana yardım etmek istedğin için ama eğer çalıştırırsan bnmkiyle aynı hatayı veriyo yani sayılara sırasıyla 1 1 2 2 3 3 girersen 2 tane 1 3 tane2 2 tanede 3 diyo ikincisinde nie hata veriyo anlamadım
naiad1786 hatta değil   Alıntı Yaparak Yanıtla
Eski 06/05/2007, 23:45   #5 (permalink)
İptal Durumu
 
Üyelik Tarihi: 12/2006
Yer: ANKARA
Mesaj: 167
Varsayılan

pek koda bakmadım ama dizileri 0 dan başlatmanızın özel bi anlam varmı C dizileri gibi olmuş, 1 den başlatsanız bide sub sonunda bütün değişkenleri sıfırlaasanız bu arada ben de bi basic kurup koda baksam.
mr_c hatta değil   Alıntı Yaparak Yanıtla
Eski 06/05/2007, 23:47   #6 (permalink)
Üye
 
Üyelik Tarihi: 05/2007
Mesaj: 11
Varsayılan

onun pek bi önemi yok 0 veya 1 olmasının sayacı zaten sıfırlıyorumda ya bi tek dediğim şeyde hata veriyo başka değerler giriyorum bazılarında veriyo bazılarında verimyio anlamadım bnde
naiad1786 hatta değil   Alıntı Yaparak Yanıtla
Eski 07/05/2007, 00:02   #7 (permalink)
İptal Durumu
 
Üyelik Tarihi: 12/2006
Yer: ANKARA
Mesaj: 167
Varsayılan

algoritmayı değiştirsek;
birinci dizinin elemanlarını oku
ikinici dizinin tüm elemanlarını sıfırla (ikinci dizi on elemanlı 0 1 ... 9 rakamları için)
birinci dizide okuduğun sayıyı ikinci diziye index yap bir artır.

dizi2[dizi1[i]]=dizi2[dizi1[i]]+1;

tekrarla

şimdi ikinci dizide 0 dan bire kadar tüm elemanlarda toplam adetler yazacaktır.
mr_c hatta değil   Alıntı Yaparak Yanıtla
Eski 07/05/2007, 00:09   #8 (permalink)
İptal Durumu
 
Üyelik Tarihi: 12/2006
Yer: ANKARA
Mesaj: 167
Varsayılan

dim dizi1(5) as integer
dim dizi2(10) as integer

for i=0 to 5

dizi2(dizi1(i))=dizi2(dizi1(i))+1

next i

gibi bu durumda ikinci dizinin birinci elemanında toplam sıfırlar ikinci elemanında toplam birler vs toplamları oluşur. istediğin gibi yazdırırsın
mr_c hatta değil   Alıntı Yaparak Yanıtla
Eski 07/05/2007, 03:58   #9 (permalink)
Üye
 
Üyelik Tarihi: 05/2007
Mesaj: 11
Varsayılan

böle bişi ilk defa görüyom dizi içinde dizi:S
naiad1786 hatta değil   Alıntı Yaparak Yanıtla
Eski 07/05/2007, 11:11   #10 (permalink)
Eski Cevizci
 
Üyelik Tarihi: 04/2005
Mesaj: 341
Varsayılan

Soruyu kucuk parcalara bolmek icin fonksiyon kullanmayi dene. Goto lardan kacin.

Redim dizi(n)
Redim sayilan(n)

' Inputu aldiktan sonra asagidakine benzer bir seyler olabilir mesela.

For i=0 To n-1

If ElemanSayildi(dizi(i), sayilan) = 0 Then
MsgBox "Sayi " & dizi(i) & vbTab & GetCount(dizi(i), dizi) & " defa bulundu."
End if
sayilan(i) = dizi(i)

Next

End Sub

Function GetCount(sayi, dizi)

Dim count

For i=0 To UBound(dizi)-1

if dizi(i) = sayi Then Count = Count + 1

Next

GetCount = Count

End Function

Function ElemanSayildi(e, s)

For i=0 To UBound(s) - 1
If s(i) = e Then
ElemanSayildi = 1
Exit Function
End If
Next
ElemanSayildi = 0

End Function
Sabahi hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Asp ile ilgili bir soru ? turansoylu Javascript / DHTML / Ajax 3 09/01/2007 12:48
C ile ilgili bir soru mybolt C / C++ 2 11/04/2006 05:16
arkadaşlar acilen dizilerle ilgili bilgi bulmam lazım. SİNELSAN Visual Basic 1 24/05/2004 14:14
DNS ile ilgili Bir Kaç Soru...? omerfaruk GNU / Linux / UNIX / BSD / Pardus 2 05/03/2004 01:35
SQL ile ilgili bir soru aykutsaka ASP 4 28/11/2003 18:42


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 15:09.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net