Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Dodawanie Liczb Do 1000,2000(...) I 10,000


Rekomendowane odpowiedzi

Opublikowano

oto ci chodzilo ?

 

#include <ButtonConstants.au3>

#include <EditConstants.au3>

#include <GUIConstantsEx.au3>

#include <StaticConstants.au3>

#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=

$Form1 = GUICreate("Form1", 131, 444, 192, 124)

$Label1 = GUICtrlCreateLabel("1", 0, 0, 10, 17)

$Label2 = GUICtrlCreateLabel("2", 0, 32, 10, 17)

$Label3 = GUICtrlCreateLabel("3", 0, 64, 10, 17)

$Label4 = GUICtrlCreateLabel("4", 0, 96, 10, 17)

$Label5 = GUICtrlCreateLabel("5", 0, 128, 10, 17)

$Label6 = GUICtrlCreateLabel("6", 0, 160, 10, 17)

$Label7 = GUICtrlCreateLabel("7", 0, 192, 10, 17)

$Label8 = GUICtrlCreateLabel("8", 0, 224, 10, 17)

$Label9 = GUICtrlCreateLabel("9", 0, 256, 10, 17)

$Label10 = GUICtrlCreateLabel("10", 0, 288, 16, 17)

$Input1 = GUICtrlCreateInput("", 16, 0, 41, 21)

$Input2 = GUICtrlCreateInput("", 16, 32, 41, 21)

$Input3 = GUICtrlCreateInput("", 16, 64, 41, 21)

$Input4 = GUICtrlCreateInput("", 16, 96, 41, 21)

$Input5 = GUICtrlCreateInput("", 16, 128, 41, 21)

$Input6 = GUICtrlCreateInput("", 16, 160, 41, 21)

$Input7 = GUICtrlCreateInput("", 16, 192, 41, 21)

$Input8 = GUICtrlCreateInput("", 16, 224, 41, 21)

$Input9 = GUICtrlCreateInput("", 16, 256, 41, 21)

$Input10 = GUICtrlCreateInput("", 16, 280, 41, 21)

$Button1 = GUICtrlCreateButton("Suma", 0, 312, 121, 57, $WS_GROUP)

GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

Func suma()

$wynik = GUICtrlRead($Input1)+GUICtrlRead($Input2)+GUICtrlRead($Input3)+GUICtrlRead($Input4)+GUICtrlRead($Input5)+GUICtrlRead($Input6)+GUICtrlRead($Input7)+GUICtrlRead($Input8)+GUICtrlRead($Input9)+GUICtrlRead($Input10)

Ceiling ($wynik)

MsgBox(0,"Wynik","wynik to: " & $wynik)

EndFunc

While 1

$nMsg = GUIGetMsg()

Switch $nMsg

Case $GUI_EVENT_CLOSE

Exit

Case $Button1

suma()

EndSwitch

WEnd

 

 

musisz complie script zrobic xD

Opublikowano

twój skrypt tylko dodaje do siebie

chodzi mi o takie coś co losowo dodaje liczby do siebie i zatrzymuje się gdy natknie się na liczbe 1000,2000,3000itp.

nie przydało mi się ale za chęci ci dam +

Opublikowano

Tutaj masz taki na szybko robiony program:

 

 

HotKeySet("{F5}", "start")
Global $x, $y, $z
While 1
Sleep(100)
WEnd

func start()
$x = 0
$n = 1
While 1
	$n = $n+1
$i = random(0, 10000)
$y = Ceiling($i)
$z = $x
$x = $x + $y
If mod($x, 1000) = 0 Then
	MsgBox(0+64, "Udało się!", "Udało mi się znalesć 2"&@CRLF&"liczby które po dodaniu dają"&@CRLF&"liczbę podzielna przez 1000 bez"&@CRLF&"reszty!!!"&@CRLF&@CRLF&"Te liczby to: "&@CRLF&$z&@CRLF&$y&@CRLF&"Udało się to po "&$n &" próbach")
$n = 0
       EndIf
WEnd
EndFunc

 

 

Jeśli o to ci chodziło. Jak program znajdzie takie 2 liczby to wyskoczy okienko że znalazł i tam będą te liczby :)

Pisze też po ilu próbach mu się to udało :)

 

Jak chcesz, żeby liczby się cały czas nie dodawały tylko cały czas od nowa 2 nowe liczby to tu masz kod:

 

HotKeySet("{F5}", "start")
Global $x, $y, $z
While 1
       Sleep(100)
WEnd

func start()
       $x = 0
       $n = 1
       While 1
		$n = $n+1
		$u = random(0, 10000)
		$i = random(0, 10000)
		$y = Ceiling($i)
                       $x = Ceiling($u)
		$z = $x
		$x = $x + $y
		If mod($x, 1000) = 0 Then
			MsgBox(0+64, "Udało się!", "Udało mi się znalesć 2"&@CRLF&"liczby które po dodaniu dają"&@CRLF&"liczbę podzielna przez 1000 bez"&@CRLF&"reszty!!!"&@CRLF&@CRLF&"Te liczby to: "&@CRLF&$z&@CRLF&$y&@CRLF&"Udało się to po "&$n &" próbach")
			$n = 0
		EndIf
       WEnd
EndFunc

 

Opublikowano

Powinno działać (nie sprawdzałem):

 

HotKeySet("{F3}", "start")

Global $liczba[10]
Global $ile = 0

$liczba[0] = 10
$liczba[1] = 100
$liczba[2] = 1000
$liczba[3] = 10000
$liczba[4] = 100000
$liczba[5] = 200000
$liczba[6] = 20000
$liczba[7] = 2000
$liczba[8] = 200
$liczba[9] = 20

While 1
sleep(100)
WEnd

Func start()
$ile = Ceiling(Random(1, 10))
MsgBox(0, "Liczby", "Losowa liczba spomiędzy ... to: " & $liczba[$ile])
EndFunc

 

Opublikowano

A co konkretnie chcesz zrobić? :P

Z tego artykułu wywnioskowałem, że chcesz sprawdzić jakie jest prawdopodobieństwo na to, że trafisz akurat na kwoty o łącznej wartości 1000, 2000, 3000...10000

Ten 1 kod wypisuje Ci jakie to liczby i po ilu próbach do nich doszedł.

 

Jeśli nie o to Ci chodziło to sorry :P

Napisz co ma robić kod to Ci go mogę napisać :)

Opublikowano

Coś napisałem...

Nie wiem czy dobrze, bo nic w Twoich liczbach nie wykrywa :/

Może tam faktycznie nie ma takich liczb, a może coś źle w programie :P

Tu masz kod:

 

#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Dim $liczba[11]
Dim $rand[11]
$ile=UBound($liczba, 1)
Global $i = 0, $wynik = 0

$liczba[0] = 156
$liczba[1] = 520
$liczba[2] = 1235
$liczba[3] = 1612
$liczba[4] = 1794
$liczba[5] = 1950
$liczba[6] = 2015
$liczba[7] = 2145
$liczba[8] = 2652
$liczba[9] = 2873
$liczba[10] = 3081

While 1
Do
	IniDelete("\liczby.ini", "Liczby")
	$wynik = 0
	$rnd = Ceiling(random(0, 10))
	$x = 0
	Do
		$rand[$x] = Ceiling(random(0, 10))
		$x = $x + 1
	Until $x = $rnd
	For $i = 0 to $rnd Step +1
		$wynik = $wynik + $liczba[$rand[$i]]
		IniWrite("liczby.ini", "Liczby", $i, $liczba[$rand[$i]])
	Next
Until Mod($wynik, 1000) = 0 ;And $wynik <= 10000

$msg = "Te liczby to"
For $i = 0 to $rnd Step +1
	$rd = IniRead("liczby.ini", "Liczby", $i, "Not Found")
	$msg = $msg & $rd & ", "
Next
MsgBox(0, "Liczby", $msg& " a wynik = "&$wynik)
IniDelete("\liczby.ini", "Liczby")
WEnd

 

 

Od razu piszę, że mi się chce spać więc to jest taki byle jaki kod :P

 

Pozdrawiam i dobrej nocy ;)

Opublikowano

Pisałem już że kod jest byle jaki :P

Spać mi się chciało więc wstawiłem i poszedłem spać :P

 

W twoim programie wyszukuje też sumy powyżej 10000, a w konkursie pisało, że do 10000 :P

Taki mały błąd

Admin Cienia
Opublikowano

A dało by radę dopisać aby można było wpisać nieograniczoną liczbę "liczb" ?

Astra G 2.0 Turbo 247KM 351NM

Opublikowano

@UP

if $wynik > 10000 then
//szuka dalej
else
msgbox(0, "Wynik", "Te liczby to...")
endif

 

@2UP

Można to zrobić tak:

 

#include <GUIConstants.au3>

Dim $input[100] ; w [] wpisujesz ile najwięcej moze być tych inputow
Global $x = 0, $y = 10, $ile = 0
$wys = 300

;teraz robi GUI
GUICreate("Program", 200, $wys)
$dodaj = GUICtrlCreateButton("Dodaj Input", 0 ,0)
GUISetState(@SW_SHOW)

While 1
$msg = GUIGetMsg()
Switch $msg
Case $dodaj
	add()
Case $gui_event_close
	Exit
EndSwitch
WEnd


Func add()
$x = $x + 25
If $x + 45> $wys then
	$x = 25
	$y = $y + 50
EndIf
$ile = $ile + 1
$input[$ile] = GUICtrlCreateInput("", 10 + $y, 10 + $x, 40, 20)
EndFunc

 

 

Identyfikatorami tych zmiennych będą: $input[1], $input[2] itd.

Dorobiłem jeszcze żeby jak dojedzie do samego dołu okienka robił od góry następne Inputy ;)

Opublikowano

Mój skrypt jak już pisałeś nie działa, albo działa źle :P

Chcesz to mogę to połączyć z twoim skryptem, tylko wyślij go tu albo na PW ;)

Opublikowano

? to twój skrypt ja tylko gui dodałem

 

 

#include <ButtonConstants.au3>

#include <EditConstants.au3>

#include <GUIConstantsEx.au3>

#include <WindowsConstants.au3>

#include <StaticConstants.au3>

#Region ### START Koda GUI section ### Form=

$Form1 = GUICreate("Form1", 262, 250, 192, 124)

$input1 = GUICtrlCreateInput("", 8, 8, 121, 21)

$input2 = GUICtrlCreateInput("", 8, 32, 121, 21)

$input3 = GUICtrlCreateInput("", 8, 56, 121, 21)

$input4 = GUICtrlCreateInput("", 8, 80, 121, 21)

$input5 = GUICtrlCreateInput("", 8, 104, 121, 21)

$input6 = GUICtrlCreateInput("", 136, 104, 121, 21)

$input7 = GUICtrlCreateInput("", 136, 80, 121, 21)

$input8 = GUICtrlCreateInput("", 136, 56, 121, 21)

$input9 = GUICtrlCreateInput("", 136, 32, 121, 21)

$input10 = GUICtrlCreateInput("", 136, 8, 121, 21)

$input11 = GUICtrlCreateInput("", 136, 128, 121, 21)

$Szukaj = GUICtrlCreateButton("Szukaj", 8, 150, 251, 25, $WS_GROUP)

GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

 

Dim $liczba[11]

Dim $rand[11]

$ile=UBound($liczba, 1)

Global $i = 0, $wynik = 0

 

While 1

$nMsg = GUIGetMsg()

Switch $nMsg

Case $GUI_EVENT_CLOSE

Exit

Case $Szukaj

$liczba[0] = GUICtrlRead($input1)

$liczba[1] = GUICtrlRead($input2)

$liczba[2] = GUICtrlRead($input3)

$liczba[3] = GUICtrlRead($input4)

$liczba[4] = GUICtrlRead($input5)

$liczba[5] = GUICtrlRead($input6)

$liczba[6] = GUICtrlRead($input7)

$liczba[7] = GUICtrlRead($input8)

$liczba[8] = GUICtrlRead($input9)

$liczba[9] = GUICtrlRead($input10)

$liczba[10] = GUICtrlRead($input11)

while 1

Do

IniDelete("\liczby.ini", "Liczby")

$wynik = 0

$rnd = Ceiling(random(0, 10))

$x = 0

Do

$rand[$x] = Ceiling(random(0, 10))

$x = $x + 1

Until $x = $rnd

For $i = 0 to $rnd Step +1

$wynik = $wynik + $liczba[$rand[$i]]

IniWrite("liczby.ini", "Liczby", $i, $liczba[$rand[$i]])

Next

Until Mod($wynik, 1000) = 0 ;And $wynik <= 10000

 

$msg = "Te liczby to"

For $i = 0 to $rnd Step +1

$rd = IniRead("liczby.ini", "Liczby", $i, "Not Found")

$msg = $msg & $rd & ", "

Next

MsgBox(0, "Liczby", $msg& " a wynik = "&$wynik)

IniDelete("\liczby.ini", "Liczby")

WEnd

EndSwitch

WEnd

 

 

Opublikowano

Myślałem, że nowy zrobiłeś :P

Oto gotowy skrypt:

 


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
$Form1 = GUICreate("Form1", 262, 250, 192, 124)
$input1 = GUICtrlCreateInput("", 8, 8, 121, 21)
$input2 = GUICtrlCreateInput("", 8, 32, 121, 21)
$input3 = GUICtrlCreateInput("", 8, 56, 121, 21)
$input4 = GUICtrlCreateInput("", 8, 80, 121, 21)
$input5 = GUICtrlCreateInput("", 8, 104, 121, 21)
$input6 = GUICtrlCreateInput("", 136, 104, 121, 21)
$input7 = GUICtrlCreateInput("", 136, 80, 121, 21)
$input8 = GUICtrlCreateInput("", 136, 56, 121, 21)
$input9 = GUICtrlCreateInput("", 136, 32, 121, 21)
$input10 = GUICtrlCreateInput("", 136, 8, 121, 21)
$input11 = GUICtrlCreateInput("", 136, 128, 121, 21)
$Szukaj = GUICtrlCreateButton("Szukaj", 8, 150, 251, 25, $WS_GROUP)
GUISetState(@SW_SHOW)

Dim $liczba[11]
Dim $rand[11]
$ile=UBound($liczba, 1)
Global $i = 0, $wynik = 0

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Szukaj
$liczba[0] = GUICtrlRead($input1)
$liczba[1] = GUICtrlRead($input2)
$liczba[2] = GUICtrlRead($input3)
$liczba[3] = GUICtrlRead($input4)
$liczba[4] = GUICtrlRead($input5)
$liczba[5] = GUICtrlRead($input6)
$liczba[6] = GUICtrlRead($input7)
$liczba[7] = GUICtrlRead($input8)
$liczba[8] = GUICtrlRead($input9)
$liczba[9] = GUICtrlRead($input10)
$liczba[10] = GUICtrlRead($input11)
while 1
Do
IniDelete("\liczby.ini", "Liczby")
$wynik = 0
$rnd = Ceiling(random(0, 10))
$x = 0
Do
$rand[$x] = Ceiling(random(0, 10))
$x = $x + 1
Until $x = $rnd
For $i = 0 to $rnd Step +1
$wynik = $wynik + $liczba[$rand[$i]]
IniWrite("liczby.ini", "Liczby", $i, $liczba[$rand[$i]])
Next
Until Mod($wynik, 1000) = 0 ;And $wynik <= 10000
If $wynik <=10000 Then
$msg = "Te liczby to"
For $i = 0 to $rnd Step +1
$rd = IniRead("liczby.ini", "Liczby", $i, "Not Found")
$msg = $msg & $rd & ", "
Next
MsgBox(0, "Liczby", $msg& " a wynik = "&$wynik)
IniDelete("\liczby.ini", "Liczby")
EndIf
WEnd
EndSwitch
WEnd

 

 

Powinno działać :P

Opublikowano

Proszę :)

 

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


Dim $input[66]
Dim $liczba[66]
Dim $rand[66]
$ile=UBound($liczba, 1)
Global $i = 0, $wynik = 0, $wys = 400, $q = -25, $w = 10, $e= 0

$form = GUICreate("Form1", 270, $wys)
$szukaj = GUICtrlCreateButton("Szukaj", 8, 370, 251, 25, $WS_GROUP)
$dodaj = GUICtrlCreateButton("Dodaj input", 8, 345, 251, 25, $WS_GROUP)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $dodaj
		add()
	Case $szukaj
		For $r = 0 to $e step + 1
		$liczba[$r] = GUICtrlRead($input[$r])
		Next
		while 1
			Do
				IniDelete("\liczby.ini", "Liczby")
				$wynik = 0
				$rnd = Ceiling(random(0, 10))
				$x = 0
				Do
					$rand[$x] = Ceiling(random(0, 10))
					$x = $x + 1
				Until $x = $rnd
				For $i = 0 to $rnd Step +1
					$wynik = $wynik + $liczba[$rand[$i]]
					IniWrite("liczby.ini", "Liczby", $i, $liczba[$rand[$i]])
				Next
			Until Mod($wynik, 1000) = 0 ;And $wynik <= 10000
			If $wynik <=10000 Then
				$msg = "Te liczby to"
				For $i = 0 to $rnd Step +1
					$rd = IniRead("liczby.ini", "Liczby", $i, "Not Found")
					$msg = $msg & $rd & ", "
				Next
				MsgBox(0, "Liczby", $msg& " a wynik = "&$wynik)
				IniDelete("\liczby.ini", "Liczby")
			EndIf
		WEnd
EndSwitch
WEnd

Func add()
If $e >64 Then
	MsgBox(0, "ERROR", "Za duzo Inputów")
Else
$q = $q + 25
       If $q + 100> $wys then
               $q = 0
               $w = $w + 50
       EndIf
       $e = $e + 1
       $input[$e] = GUICtrlCreateInput("", 10 + $w, 10 + $q, 40, 20)
EndIf
EndFunc

 

 

Trochę pozmieniałem :P, ale działa :)

Inputów nie może być więcej niż 65, jeśli chcesz to zmienić to wystarczy, że zmienisz w Dim $input[66] , $liczba i $rand oraz w If'ie w funkcji add() na ile chcesz ;)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...