PAGE 60,80 STSG SEGMENT PARA STACK 'STACK' DW 12 DUP(0) STSG ENDS DATASG SEGMENT PARA 'DATA' ILK DW 1 IKI DW 1 UC DW ? BULUNCAK DW 10 DATASG ENDS CODESG SEGMENT PARA 'CODE' ASSUME CS:CODESG,SS:STSG,DS:DATASG MAIN PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATASG MOV DS,AX MOV AX,ILK MOV BX,IKI MOV CX,BULUNCAK SUB CX,2;dongumuz 3'ten sayiya eşit olana kadar döner L1: MOV UC,AX ADD UC,BX MOV AX,BX MOV BX,UC LOOP L1 MOV AX,UC RETF MAIN ENDP CODESG ENDS END MAIN
LST Çıktısı :
Microsoft (R) Macro Assembler Version 5.00 11/17/13 04:51:25
Page 1-1
PAGE 60,80
0000 STSG SEGMENT PARA STACK 'STACK'
0000 000C[ DW 12 DUP(0)
0000
]
0018 STSG ENDS
0000 DATASG SEGMENT PARA 'DATA'
0000 0001 ILK DW 1
0002 0001 IKI DW 1
0004 ???? UC DW ?
0006 000A BULUNCAK DW 10
0008 DATASG ENDS
0000 CODESG SEGMENT PARA 'CODE'
ASSUME CS:CODESG,SS:STSG,DS:DATASG
0000 MAIN PROC FAR
0000 1E PUSH DS
0001 33 C0 XOR AX,AX
0003 50 PUSH AX
0004 B8 ---- R MOV AX,DATASG
0007 8E D8 MOV DS,AX
0009 A1 0000 R MOV AX,ILK
000C 8B 1E 0002 R MOV BX,IKI
0010 8B 0E 0006 R MOV CX,BULUNCAK
0014 83 E9 02 SUB CX,2
0017 L1:
0017 A3 0004 R MOV UC,AX
001A 01 1E 0004 R ADD UC,BX
001E 8B C3 MOV AX,BX
0020 8B 1E 0004 R MOV BX,UC
0024 E2 F1 LOOP L1
0026 A1 0004 R MOV AX,UC
0029 CB RETF
002A MAIN ENDP
002A CODESG ENDS
END MAIN
Microsoft (R) Macro Assembler Version 5.00 11/17/13 04:51:25
Symbols-1
Segments and Groups:
N a m e Length Align Combine Class
CODESG . . . . . . . . . . . . . 002A PARA NONE 'CODE'
DATASG . . . . . . . . . . . . . 0008 PARA NONE 'DATA'
STSG . . . . . . . . . . . . . . 0018 PARA STACK 'STACK'
Symbols:
N a m e Type Value Attr
BULUNCAK . . . . . . . . . . . . L WORD 0006 DATASG
IKI . . . . . . . . . . . . . . L WORD 0002 DATASG
ILK . . . . . . . . . . . . . . L WORD 0000 DATASG
L1 . . . . . . . . . . . . . . . L NEAR 0017 CODESG
MAIN . . . . . . . . . . . . . . F PROC 0000 CODESG Length = 002A
UC . . . . . . . . . . . . . . . L WORD 0004 DATASG
@FILENAME . . . . . . . . . . . TEXT DEM
33 Source Lines
33 Total Lines
14 Symbols
51062 + 461290 Bytes symbol space free
0 Warning Errors
0 Severe Errors
16 Kasım 2013 Cumartesi
Assemblyde fibonacci
Assembly 80x86 dizi içindeki en büyük eleman
PAGE 60,80
TITLE ENBUYUK
STACKSG SEGMENT PARA STACK 'STACK'
DW 32 DUP(0)
STACKSG ENDS
DATASG SEGMENT PARA 'DATA'
ADIZI DW 13,81,11,22 ;Dizi Elemanlari
SZ DW 4 ;Dizinin Sizeini tutar
ENBUYUK DW (0) ;En buyuk sayi
DATASG ENDS
CODESG SEGMENT PARA 'CODE'
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
MAIN PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATASG
MOV DS,AX
MOV AX,ENBUYUK ;AX e en buyuk sayisi atanır
MOV CX,SZ ; CX e size atanır
LEA SI,ADIZI; ADIZI degiskeninin adresi SI ya atanır
L1:
MOV DI,[SI] ;DI ya adresteki değişken atanır ve büyük,küçük kontrol edilir.
CMP DI,AX
JA BUYUKMUS
JMP EXIT
BUYUKMUS:
MOV AX,DI;buyukse AX registerina DI daki değer atanır
MOV ENBUYUK,AX
EXIT:
ADD SI,2;DW olduğundan dolayı dizi elemanlarımız 2 2 artmaktadır
LOOP L1;CX(SZ değerinde) 0 olana kadar döner
RETF
MAIN ENDP
CODESG ENDS
END MAIN
27 Eylül 2013 Cuma
StringSearch
Bir string içindeki bir kelimenin kaç kere bulunduğunu döndürür.
static void Main(string[] args) { string aranacak = "Buralar Eskiden Hep Otlakmis"; string aranan = "Ot"; int sayi = StringSearch(aranacak, aranan); Console.WriteLine(sayi.ToString()); Console.ReadKey(); } static int StringSearch(string aranacak, string aranan) { int toplam = 0; int a = 0; aranan = aranan.ToLower(); aranacak = aranacak.ToLower(); for (int i = 0; i < aranacak.Length; i++) { if (aranacak[i] == aranan[a]) { if (a == aranan.Length - 1) { a = 0; toplam += 1; } else a++; } else a = 0; } return toplam; }
Stringdeki katsayıları ayırıp çarpmak
bir stringdeki bütün sayıları birbiriyle çarpan basit bir algoritma :)
Aldığım sonuçlar :
1) 87e5x34t = 87 * 5 * 34 =14790
2) 74582ex0e5 = 74582*0*5 = 0
3)74582ex05e5 = 1864550 (05 in yazımı hatalı)
4)12ex420k5i7 = 72*420*5*7 = 176400
1) 87e5x34t = 87 * 5 * 34 =14790
2) 74582ex0e5 = 74582*0*5 = 0
3)74582ex05e5 = 1864550 (05 in yazımı hatalı)
4)12ex420k5i7 = 72*420*5*7 = 176400
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace paralel1 { class Program { static void Main(string[] args) { string asd = "87e5x34t"; Listlist = new List (); Console.WriteLine("Sonuc : {0}", StringKatsayi(asd,list)); for (int i = 0; i < list.Count; i++) { Console.WriteLine(String.Format("{0} .ci deger : {1}", i + 1, list[i])); } Console.ReadKey(); } static int StringKatsayi(string yazi,List liste) { int anatoplam = 1; int toplam = 0; int katsayi = 1; int tmp = 1; char cr; bool gordumu = false; for (int i = yazi.Length - 1; i >= 0; i--) { cr = yazi[i]; if (cr > 47 && cr < 58) { tmp = cr - 48; toplam += katsayi * tmp; katsayi *= 10; gordumu = true; } else { if (gordumu == true) { liste.Add(toplam); katsayi = 1; toplam = 0; gordumu = false; } } } if (gordumu == true) liste.Add(toplam); for (int i = 0; i < liste.Count; i++) { anatoplam *= liste[i]; } return anatoplam; } } }
18 Eylül 2013 Çarşamba
c#ta infix notasyonu prefixe çevirmek
Prefix ve postfix hesap makinalarında,derleyicilerde kullanılan 4 işlem tekniklerinden birisidir .Bizim bildiğimiz matematiksel denklemleri, fonksiyonları parantez kullanmadan yazmamızı sağlayan bir tekniktir. Polish notation olarak da geçer .Alttaki linkler genel fikri verecektir
http://itviewson.files.wordpress.com/2012/06/infixprefixpostfix.pdf
http://www.cs.man.ac.uk/~pjj/cs2121/fix.html
http://www.cs.man.ac.uk/~pjj/cs2121/fix.html
class Notations { string fnk; char[] oparray = { '+', '-', '/', '*', '^' }; public Notations(string infix) { this.fnk = infix; } bool operandmi(char cr) { int i = 0; while (i<5) { if (cr == oparray[i]) return true; } return false; } public string prefix() { string asd = fnk; StackOpStack = new Stack (); Stack PrefixStack = new Stack (); int i = asd.Length-1; while (i>=0) { char cr = asd[i]; if (cr > 47 && cr < 58) { PrefixStack.Push(cr); PrefixStack.Push(','); i--; } else { int j = 0; while ( j<5 && cr!=oparray[j] ) { j++; } if (j != 5) { OpStack.Push(cr); i--; } else { if (cr == ')') { OpStack.Push(')'); i--; } else { if (cr == '(') { char cr2; do { cr2=OpStack.Pop(); if (cr2 != ')') PrefixStack.Push(cr2); } while (cr2==')'); OpStack.Pop(); i--; } } } } } while (OpStack.Count!=0) { PrefixStack.Push(OpStack.Pop()); } StringBuilder bl = new StringBuilder(); while (PrefixStack.Count!=0) { bl.Append(PrefixStack.Pop()); } return bl.ToString(); } }
3 Temmuz 2013 Çarşamba
Windows store appslarda Kontrol Bulma
Windows store appslarda Kontrol Bulma
private DependencyObject FindChildControl(DependencyObject control, string ctrlName) { int childNumber = VisualTreeHelper.GetChildrenCount(control); for (int i = 0; i < childNumber; i++) { DependencyObject child = VisualTreeHelper.GetChild(control, i); FrameworkElement fe = child as FrameworkElement; if (fe == null) return null; if (child is T && fe.Name == ctrlName) { return child; } else { DependencyObject nextLevel = FindChildControl (child, ctrlName); if (nextLevel != null) return nextLevel; } } return null; }
Kaydol:
Kayıtlar (Atom)