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

Programlama dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
anxious
Byte2
Byte2
Mesajlar: 67
Kayıt: 11 Mar 2015, 07:56

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

Mesaj gönderen anxious » 27 Oca 2018, 04:53

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
Byte3
Byte3
Mesajlar: 143
Kayıt: 29 Ağu 2014, 20:42

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife » 27 Oca 2018, 11:17

@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
Byte2
Byte2
Mesajlar: 67
Kayıt: 11 Mar 2015, 07:56

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious » 27 Oca 2018, 17:10

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
Byte3
Byte3
Mesajlar: 142
Kayıt: 06 Haz 2016, 16:55

Re: Autoit çözemediğim bir soru?

Mesaj gönderen darendeli » 28 Oca 2018, 02:12

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
Program Yazmanın En Güzel Yanı Birilerinin Bu Programlardan Faydalandığını Görmektir..

anxious
Byte2
Byte2
Mesajlar: 67
Kayıt: 11 Mar 2015, 07:56

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious » 28 Oca 2018, 04:39

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
Byte3
Byte3
Mesajlar: 143
Kayıt: 29 Ağu 2014, 20:42

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife » 28 Oca 2018, 12:16

@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
Byte2
Byte2
Mesajlar: 67
Kayıt: 11 Mar 2015, 07:56

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious » 28 Oca 2018, 14:01

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
Byte3
Byte3
Mesajlar: 143
Kayıt: 29 Ağu 2014, 20:42

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife » 28 Oca 2018, 15:32

@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
Byte2
Byte2
Mesajlar: 67
Kayıt: 11 Mar 2015, 07:56

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious » 28 Oca 2018, 17:39

Ş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
Byte3
Byte3
Mesajlar: 143
Kayıt: 29 Ağu 2014, 20:42

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife » 28 Oca 2018, 20:32

@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
Byte2
Byte2
Mesajlar: 67
Kayıt: 11 Mar 2015, 07:56

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious » 28 Oca 2018, 21:31

Resim
iller bitince isim döngüsü devam ediyor.
Benim istediğim iller bitince işlemin sonlanması

Kullanıcı avatarı
BlueLife
Byte3
Byte3
Mesajlar: 143
Kayıt: 29 Ağu 2014, 20:42

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife » 28 Oca 2018, 22:54

@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
Byte2
Byte2
Mesajlar: 67
Kayıt: 11 Mar 2015, 07:56

Re: Autoit çözemediğim bir soru?

Mesaj gönderen anxious » 05 Şub 2018, 04:32

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
Byte3
Byte3
Mesajlar: 143
Kayıt: 29 Ağu 2014, 20:42

Re: Autoit çözemediğim bir soru?

Mesaj gönderen BlueLife » 05 Şub 2018, 11:46

@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