Autoit çözemediğim bir soru? - Çözüldü

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Autoit çözemediğim bir soru? - Çözüldü

Mesaj gönderen anxious »

Arkadaşlar,benim 6 arkadaşım var Bunlar : ahmet,mehmet,mustafa,şenay,şakir,yusuf
Arkadaşlarım sırayla meyvelerin tadına bakacak meyvelerin tadı manavdaki meyve ise ahmet Hangi meyve olduğunu yazacak ve sıra mehmete geçecek mehmet de sırayla bakacak sıra mustafaya...

Yapmaya çalıştım ama beceremedim :roll:

Kod: Tümünü seç

#include <array.au3>

$Manav = "Muz"

Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Şenay", "şakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

For $i = 0 To UBound($Meyveler) - 1
	ConsoleWrite($Isimler[$i] & "&" & $Meyveler[$i] & @CRLF)
	ConsoleWrite("" & @CRLF)
	If $Meyveler[$i] = $Manav Then
		ConsoleWrite("Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
		ContinueLoop
	Else
		ContinueLoop
;~ 	ConsoleWrite($Isimler[$i] & "&" & $Meyveler[$i] & @CRLF)
	EndIf
Next
Normalde console çıktısı şöyle olması gerekir
Ahmet&Elma

Ahmet&Armut

Ahmet&Muz
Ahmet --> Bulunan Meyve : Muz

Mehmet&Elma

Mehmet&Armut

Mehmet&Muz
Mehmet --> Bulunan Meyve : Muz
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 270
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 25 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife »

@anxious

Yanlış anlamadıysam düzeltme aşağıda. İncelersin, kolay gelsin...

Kod: Tümünü seç

#include <array.au3>

$Manav = "Muz"

Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Şenay", "şakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

For $X = 0 to UBound($Isimler) - 1
	For $i = 0 To UBound($Meyveler) - 1
		ConsoleWrite($Isimler[$X] & "&" & $Meyveler[$i] & @CRLF)

		If $Meyveler[$i] = $Manav Then
			ConsoleWrite("Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
			ExitLoop ;Bunu silersen diğer meyveleride console yazdırır
		EndIf
	Next
	ConsoleWrite("-----------------" & @CRLF)
Next
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious »

Evet doğru anlamışsınız teşekkür ederim.
Ufak bir soru daha sorabilirmiyim?
Eğer muzu bulan kişi hangisi ise hangi ilde bulmuş bulunduysa diğer ile geçmesi için nasıl bir kod olması gerekir?

Kod: Tümünü seç

#include <array.au3>

$Manav = "Muz"

Local $iller[4] = ["malatya", "adiyaman", "rize", "istanbul"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

For $m = 0 To UBound($iller) - 1
	For $X = 0 To UBound($Isimler) - 1
		For $i = 0 To UBound($Meyveler) - 1
			ConsoleWrite($iller[$m] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
			If $Meyveler[$i] = $Manav And $iller[$i] Then
				ConsoleWrite("Bulunan il : " & $iller[$m] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
				ExitLoop
			EndIf

		Next
		ConsoleWrite("-----------------" & @CRLF)
	Next
	ConsoleWrite("-----------------" & @CRLF)
Next
İstediğim çıktı şu olmalı

malatya & Ahmet & Elma
malatya & Ahmet & Armut
malatya & Ahmet & Muz
Bulunan il : malatya Bulan Kiþi : Ahmet Bulunan Meyve : Muz
-----------------
adiyaman & Ahmet & Elma
adiyaman & Ahmet & Armut
adiyaman & Ahmet & Muz
Bulunan il : adiyaman Bulan Kiþi : Ahmet Bulunan Meyve : Muz
-----------------
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen darendeli »

istedigin Söyle Birsey Ekledim Ama Cıkısta Sürekli Değiştirme işlemi Yaptıgı için Error Veriyor Sehir Bitince Durması Gerek :D

Kod: Tümünü seç

#include <array.au3>

$Manav = "Muz"

Local $iller[4] = ["malatya", "adiyaman", "rize", "istanbul"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

For $m = 0 To UBound($iller)- 1
	For $X = 0 To UBound($Isimler) - 1
		For $i = 0 To UBound($Meyveler) - 1
			ConsoleWrite($iller[$m] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
			If $Meyveler[$i] = $Manav = $iller[$m] Then
				ConsoleWrite("Bulunan il : " & $iller[$m] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
				$m +=  1
				ExitLoop
				EndIf
		Next
		ConsoleWrite("-----------------" & @CRLF)
	Next
	ConsoleWrite("-----------------" & @CRLF)
Next
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious »

Seninkisi bu sefer $Isimler ExitLoop tan çıkıp başa dönmüyor,Aslında If IsArray($iller) Then ile hatanın önüne geçilebilir fakat ben beceremedim :)

Yeni demek istediğim şu örneğin ben $isim değişkenine = "Ahmet" Yazarsam senin döngü Ahmeti bulamaz ve döngü biter :roll:

Kod: Tümünü seç

#include <array.au3>
$Manav = "Muz"
$isim = "Ahmet"

Local $iller[4] = ["malatya", "adiyaman", "rize", "istanbul"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 270
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 25 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife »

@anxious

Geç yanıt verdiysem kusura bakma. Foruma yeni girdim. Bu şekilde bir işlem yaparken çoklu dizler daha avantajlıdır.
Aşağıdaki örneği incelersin...

Kod: Tümünü seç

#include <array.au3>

$Manav = "Muz"
Local $Meyveler[6] = [5,"Elma", "Armut", "Muz", "Cilek", "Uzum"]

Local $Isimler[7][2] = [[6]] ; İsim Sayısı
$Isimler[1][0] = "Ahmet"
$Isimler[1][1] = "Malatya"

$Isimler[2][0] = "Mehmet"
$Isimler[2][1] = "Adiyaman"

$Isimler[3][0] = "Mustafa"
$Isimler[3][1] = "Rize"

$Isimler[4][0] = "Senay"
$Isimler[4][1] = "istanbul"

$Isimler[5][0] = "Sakir"
$Isimler[5][1] = "Giresun"

$Isimler[6][0] = "Yusuf"
$Isimler[6][1] = "Bolu"
;~ _ArrayDisplay($Isimler)

For $X = 1 to $Isimler[0][0]
	For $i = 1 To $Meyveler[0]
		ConsoleWrite($Isimler[$X][1] & " & " & $Isimler[$X][0] & " & " & $Meyveler[$i] & @CRLF)

		If $Meyveler[$i] = $Manav Then
			ConsoleWrite("Bulunan il : " &$Isimler[$X][1] & " Bulan Kisi : " & $Isimler[$X][0] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
			ExitLoop ;Bunu silersen diğer meyveleride console yazdırır
		EndIf
	Next
	ConsoleWrite("-----------------" & @CRLF)
Next
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious »

Bluelife Yok bu değil benim istediğim
Aslında istediğim tam olarak şu fakat iller bitince hata veriyor

Kod: Tümünü seç

#include <array.au3>

$Manav = "Muz"

Local $iller[4] = ["malatya", "adiyaman", "rize", "istanbul"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

For $m = 0 To UBound($iller)- 1
	For $X = 0 To UBound($Isimler) - 1
		For $i = 0 To UBound($Meyveler) - 1

			If $Meyveler[$i] = $Manav = $iller[$m] Then
				ConsoleWrite($iller[$m] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
				ConsoleWrite("Bulunan il : " & $iller[$m] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
				$m +=  1
				$X -=  1
				ExitLoop
				EndIf
		Next
		ConsoleWrite("-----------------" & @CRLF)
	Next
	ConsoleWrite("-----------------" & @CRLF)
Next
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 270
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 25 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife »

@anxious

Nasıl bir şey yapmak isteğini malesef anlamadım. Illeri neye göre belirliyorsun? Yani bir isim farklı illerden olacak şekilde türetmemi yapacaksın.
Yoksa her isim bir şehirden mi olacak. Her isime karşılık bir il şeklinde çalışmak istersen iller ile isimler aynı sayıda olmalı.

Kod: Tümünü seç

#include <array.au3>

Local  $Manav = "Muz"

Local $iller[6] = ["malatya", "adiyaman", "rize", "istanbul","Giresun","Antalya"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

For $X = 0 To UBound($Isimler) - 1
	For $i = 0 To UBound($Meyveler) - 1
		If $Meyveler[$i] = $Manav Then
			ConsoleWrite($iller[$X] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
			ConsoleWrite("Bulunan il : " & $iller[$X] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
			ExitLoop
		EndIf
	Next
	ConsoleWrite("-----------------" & @CRLF)
Next
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious »

Şu durumda

Kod: Tümünü seç

#include <array.au3>

Local $Manav = "Muz"
Local $isim = "Yusuf"

Local $iller[6] = ["malatya", "adiyaman", "rize", "istanbul","Giresun","Antalya"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

For $X = 0 To UBound($Isimler) - 1
	For $i = 0 To UBound($Meyveler) - 1
		If $Meyveler[$i] = $Manav Or $Isimler[$X] = $isim Then
			ConsoleWrite($iller[$X] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
			ConsoleWrite("Bulunan il : " & $iller[$X] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
			ExitLoop
		EndIf
	Next
	ConsoleWrite("-----------------" & @CRLF)
Next
Console çıktı şöyle olmalı
malatya & Yusuf & Muz
Bulunan il : malatya Bulan Kiþi : Yusuf Bulunan Meyve : Muz
-----------------
adiyaman & Yusuf & Muz
Bulunan il : adiyaman Bulan Kiþi : Yusuf Bulunan Meyve : Muz
-----------------
rize & Yusuf & Muz
Bulunan il : rize Bulan Kiþi : Yusuf Bulunan Meyve : Muz
-----------------
istanbul & Yusuf & Muz
Bulunan il : istanbul Bulan Kiþi : Yusuf Bulunan Meyve : Muz
-----------------
Giresun & Yusuf & Muz
Bulunan il : Giresun Bulan Kiþi : Yusuf Bulunan Meyve : Muz
-----------------
Antalya & Yusuf & Elma
Bulunan il : Antalya Bulan Kiþi : Yusuf Bulunan Meyve : Elma

ve şunların sayısı belli değil değişebilir
Local $iller
Local $Isimler
Local $Meyveler
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 270
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 25 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife »

@anxious

Incelersin, umarım bu sefer seni doğru anlamışımdır :roll:

Kod: Tümünü seç

#include <array.au3>

Local  $Manav = "Muz"

Local $iller[5] = ["malatya", "adiyaman", "rize", "istanbul","Giresun"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]


For $X = 0 To UBound($Isimler) - 1
	For $i = 0 To UBound($Meyveler) - 1
		If $Meyveler[$i] = $Manav Then
			For $m = 0 To UBound($iller)- 1

				ConsoleWrite($iller[$m] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
				ConsoleWrite("Bulunan il : " & $iller[$m] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
				ConsoleWrite("-----------------" & @CRLF)
			Next
			ExitLoop
		EndIf
	Next
Next
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious »

Resim
iller bitince isim döngüsü devam ediyor.
Benim istediğim iller bitince işlemin sonlanması
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 270
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 25 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife »

@anxious
ExitLoop ile döngüden çık :)

Kod: Tümünü seç

#include <array.au3>

Local  $Manav = "Muz"

Local $iller[5] = ["malatya", "adiyaman", "rize", "istanbul","Giresun"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]


For $X = 0 To UBound($Isimler) - 1
	For $i = 0 To UBound($Meyveler) - 1
		If $Meyveler[$i] = $Manav Then
			For $m = 0 To UBound($iller)- 1

				ConsoleWrite($iller[$m] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
				ConsoleWrite("Bulunan il : " & $iller[$m] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
				ConsoleWrite("-----------------" & @CRLF)
			Next
			ExitLoop
		EndIf
	Next
	ExitLoop
Next
Tabi bir değişken ile kontrolde yapabilrisin.

Kod: Tümünü seç

#include <array.au3>

Local  $Manav = "Muz"

Local $iller[5] = ["malatya", "adiyaman", "rize", "istanbul","Giresun"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]


Local $Bulundu = 0
For $X = 0 To UBound($Isimler) - 1
	For $i = 0 To UBound($Meyveler) - 1
		If $Meyveler[$i] = $Manav Then
			For $m = 0 To UBound($iller)- 1

				ConsoleWrite($iller[$m] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
				ConsoleWrite("Bulunan il : " & $iller[$m] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
				ConsoleWrite("-----------------" & @CRLF)
				$Bulundu = 1
			Next
			ExitLoop
		EndIf
	Next
	If $Bulundu = 1 Then ExitLoop
Next
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious »

Teşekkürler
Peki hocam ben $isim diye bir değişken oluşturursam nasıl olacak böyle yaptım ama doğrumu yaptım bilmiyorum fakat istediğim sunuc doğru.
Birde aramayı durdurup tekrar başlattığımda aynı yerden devam ettirilebilirmi?

Kod: Tümünü seç

#include <array.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Local $Manav = "Elma"
Local $isim = "Mustafa"

Local $iller[5] = ["malatya", "adiyaman", "rize", "istanbul", "Giresun"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

$Form1 = GUICreate("Form1", 375, 145)
$ButtonSearchAndStop = GUICtrlCreateButton("Aramayı Başlat/ Veya Durdur", 32, 104, 299, 25)
$Label1 = GUICtrlCreateLabel("Label1", 8, 64, 332, 17)
GUISetState(@SW_SHOW)
Local $Bulundu = 0
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $ButtonSearchAndStop
			For $X = 0 To UBound($Isimler) - 1
				For $i = 0 To UBound($Meyveler) - 1
					If $Meyveler[$i] = $Manav And $Isimler[$X] = $isim Then
						For $m = 0 To UBound($iller) - 1
							ConsoleWrite($iller[$m] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
							ConsoleWrite("Bulunan il : " & $iller[$m] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
							ConsoleWrite("-----------------" & @CRLF)
							$Bulundu = 1
						Next
						ExitLoop
					EndIf
				Next
				If $Bulundu = 1 Then ExitLoop
			Next
	EndSwitch
WEnd

Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 270
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 25 kez

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife »

@anxious

Evet doğru sayılır. Tabi programın gereksiz işlem yapmaması ve daha hızlı çalışması için bu kontrolü daha önce yapmalısın.
Diğer kısmı tam anlamadım ama aramayı tekrar başlatmak için $Bulundu değişkenini aramaya başlamadan tekrar 0 değerini verebilirsin.
İncelersin...

Kod: Tümünü seç

#include <array.au3>

Local $Manav = "Elma"
Local $isim = "Mustafa"

Local $iller[5] = ["malatya", "adiyaman", "rize", "istanbul", "Giresun"]
Local $Isimler[6] = ["Ahmet", "Mehmet", "Mustafa", "Senay", "sakir", "Yusuf"]
Local $Meyveler[5] = ["Elma", "Armut", "Muz", "Cilek", "Uzum"]

$Form1 = GUICreate("Form1", 375, 145)
$ButtonSearchAndStop = GUICtrlCreateButton("Aramayı Başlat/ Veya Durdur", 32, 104, 299, 25)
$Label1 = GUICtrlCreateLabel("Label1", 8, 64, 332, 17)
GUISetState(@SW_SHOW)
Local $Bulundu = 0
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit
		Case $ButtonSearchAndStop
			$Bulundu = 0
			
			For $X = 0 To UBound($Isimler) - 1
				If $Isimler[$X] <> $isim Then ContinueLoop
				For $i = 0 To UBound($Meyveler) - 1
					If $Meyveler[$i] = $Manav Then ContinueLoop
					For $m = 0 To UBound($iller) - 1
						ConsoleWrite($iller[$m] & " & " & $Isimler[$X] & " & " & $Meyveler[$i] & @CRLF)
						ConsoleWrite("Bulunan il : " & $iller[$m] & " Bulan Kişi : " & $Isimler[$X] & " Bulunan Meyve : " & $Meyveler[$i] & @CRLF)
						ConsoleWrite("-----------------" & @CRLF)
						$Bulundu = 1
					Next
					ExitLoop
				Next
				If $Bulundu = 1 Then ExitLoop
			Next
	EndSwitch
WEnd
Cevapla