Snimit ću mobitelom debugiranje i stavit na YouTube.Vidjet će te 100% Javim se kad postavim.
C# 3.0 kompajler ne valja 100%!!!
Zaključano
Zakačeno
?
A problem je?
A problem je?
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Nemogu snimit nevidi se ništa na kameri mobitela.Uglavnom u jednoj for petlji evo djela koda
Code:
for ( int j = 0; j < letters.Count; j++ )
{
if ( letters [ j ].ToString () == "!" )
{
inSidebracket += sign [ a ].ToString ();
a++;
}
else
{
for ( int i = 0; i < extractLetters.Count; i++ )
{
if ( letters [ j ] == extractLetters [ i ] )// u jednom trenutku iz neobjašnjivih razloga kad obe varijable imaju vrijednost 97 'a' program preskoči i ode...
{
if ( int.Parse ( powers [ j ].ToString () ) > int.Parse ( extractPowers [ i ].ToString () ) )
{
int p = ( int.Parse ( powers [ j ].ToString () ) - int.Parse ( extractPowers [ i ].ToString () ) );
inSidebracket += letters [ j ] + "^" + p.ToString ();
}
else
{
x++;
}
}
if ( x == extractLetters.Count )// ovdje, ali samo jednom
{
inSidebracket += "1";
x = 0;
}
}
}
for ( int j = 0; j < letters.Count; j++ )
{
if ( letters [ j ].ToString () == "!" )
{
inSidebracket += sign [ a ].ToString ();
a++;
}
else
{
for ( int i = 0; i < extractLetters.Count; i++ )
{
if ( letters [ j ] == extractLetters [ i ] )// u jednom trenutku iz neobjašnjivih razloga kad obe varijable imaju vrijednost 97 'a' program preskoči i ode...
{
if ( int.Parse ( powers [ j ].ToString () ) > int.Parse ( extractPowers [ i ].ToString () ) )
{
int p = ( int.Parse ( powers [ j ].ToString () ) - int.Parse ( extractPowers [ i ].ToString () ) );
inSidebracket += letters [ j ] + "^" + p.ToString ();
}
else
{
x++;
}
}
if ( x == extractLetters.Count )// ovdje, ali samo jednom
{
inSidebracket += "1";
x = 0;
}
}
}
Evo cijelog koda asp.net web site 1 button id = "Reduce" texbox1 i label1
Default.aspx.cs
ClassReduce.cs
Default.aspx.cs
Code:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Reduce_Click ( object sender, EventArgs e )
{
Label1.Text = "";
ClassReduce obj = new ClassReduce ( TextBox1.Text );
string a;
a = obj.Calculate ();
Label1.Text = a;
}
}
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Reduce_Click ( object sender, EventArgs e )
{
Label1.Text = "";
ClassReduce obj = new ClassReduce ( TextBox1.Text );
string a;
a = obj.Calculate ();
Label1.Text = a;
}
}
ClassReduce.cs
Code:
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections;
using System.Text.RegularExpressions;
public class ClassReduce
{
private string input;
public ClassReduce( string input)
{
Input = input;
}
public string Input
{
get
{
return input;
}
set
{
input = value;
}
}
public string Calculate ()
{
ArrayList parts = new ArrayList ();
ArrayList sign = new ArrayList ();
Regex regSign = new Regex ( @"(\+)|(-)" );
MatchCollection matSign = regSign.Matches ( input );
foreach ( Match obj in matSign )
sign.Add ( obj.ToString() );
if ( matSign [ 0 ].Index == 0 )
{
parts = this.SubstringParts ( input, matSign, parts );
}
else
{
string part = input.Substring ( 0, matSign [ 0 ].Index );
parts.Add ( part );
parts = this.SubstringParts ( input, matSign, parts );
}
ArrayList numbers = new ArrayList ();
Regex regNumbers = new Regex ( "^[0-9]+" );
Match matNumbers;
foreach ( string obj in parts )
{
matNumbers = regNumbers.Match ( obj );
if ( matNumbers.Success)
{
numbers.Add ( matNumbers.ToString () );
}
else
{
numbers.Add ( "1".ToString () );
}
}
ArrayList lettersAndPowers = new ArrayList ();
Regex regLetAndPow = new Regex ( @"([a-z]\^[0-9]+)|([a-z])" );
MatchCollection matLetAndPow;
foreach ( string obj in parts )
{
matLetAndPow = regLetAndPow.Matches ( obj );
if ( matLetAndPow.Count > 0 )
{
foreach ( Match mObj in matLetAndPow )
{
lettersAndPowers.Add ( mObj.ToString() );
}
lettersAndPowers.Add ( "!" );
}
}
lettersAndPowers.RemoveAt ( lettersAndPowers.Count - 1 );
ArrayList powers = new ArrayList ();
ArrayList letters = new ArrayList ();
Regex regPowers = new Regex ( "[0-9]+" );
Match matPowers;
foreach ( string obj in lettersAndPowers )
{
if ( obj == "!" )
{
letters.Add ( obj );
powers.Add ( obj );
}
else
{
letters.Add ( obj [ 0 ] );
matPowers = regPowers.Match ( obj );
if ( matPowers.Success )
powers.Add ( matPowers.ToString () );
else
powers.Add ( "1" );
}
}
ArrayList extractLetters = new ArrayList ();
ArrayList extractPowers = new ArrayList ();
for ( int i = 0; i < letters.Count; i++ )
{
if ( !extractLetters.Contains ( letters [ i ] ) )
{
if ( letters [ i ].ToString() != "!" )
{
extractLetters.Add ( letters [ i ] );
extractPowers.Add ( powers [ i ] );
}
}
else
{
int index = extractLetters.IndexOf ( letters [ i ] );
if ( int.Parse ( powers [ i ].ToString() ) < int.Parse ( extractPowers [ index ].ToString() ) )
{
extractPowers [ index ] = powers [ i ];
}
}
}
string inSidebracket = "";
int a = 0;
if ( parts.Count == sign.Count )
{
inSidebracket += sign[a].ToString();
a++;
}
int x = 0;
for ( int j = 0; j < letters.Count; j++ )
{
if ( letters [ j ].ToString () == "!" )
{
inSidebracket += sign [ a ].ToString ();
a++;
}
else
{
for ( int i = 0; i < extractLetters.Count; i++ )
{
if ( letters [ j ] == extractLetters [ i ] )
{
if ( int.Parse ( powers [ j ].ToString () ) > int.Parse ( extractPowers [ i ].ToString () ) )
{
int p = ( int.Parse ( powers [ j ].ToString () ) - int.Parse ( extractPowers [ i ].ToString () ) );
inSidebracket += letters [ j ] + "^" + p.ToString ();
}
else
{
x++;
}
}
if ( x == extractLetters.Count )
{
inSidebracket += "1";
x = 0;
}
}
}
}
ArrayList adrange = new ArrayList ();
adrange.AddRange ( extractLetters );
adrange.AddRange ( extractPowers );
return inSidebracket;
}
public ArrayList SubstringParts ( string input, MatchCollection matSign, ArrayList parts )
{
int i = 0;
string part;
while ( i < matSign.Count )
{
if ( ( i + 1 ) == matSign.Count )
{
part = input.Substring ( matSign [ i ].Index + 1, ( input.Length - ( matSign [ i ].Index + 1 ) ) );
parts.Add ( part );
break;
}
part = input.Substring ( matSign [ i ].Index + 1, matSign [ i + 1 ].Index - ( matSign [ i ].Index + 1 ) );
parts.Add ( part );
i++;
}
return parts;
}
}
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections;
using System.Text.RegularExpressions;
public class ClassReduce
{
private string input;
public ClassReduce( string input)
{
Input = input;
}
public string Input
{
get
{
return input;
}
set
{
input = value;
}
}
public string Calculate ()
{
ArrayList parts = new ArrayList ();
ArrayList sign = new ArrayList ();
Regex regSign = new Regex ( @"(\+)|(-)" );
MatchCollection matSign = regSign.Matches ( input );
foreach ( Match obj in matSign )
sign.Add ( obj.ToString() );
if ( matSign [ 0 ].Index == 0 )
{
parts = this.SubstringParts ( input, matSign, parts );
}
else
{
string part = input.Substring ( 0, matSign [ 0 ].Index );
parts.Add ( part );
parts = this.SubstringParts ( input, matSign, parts );
}
ArrayList numbers = new ArrayList ();
Regex regNumbers = new Regex ( "^[0-9]+" );
Match matNumbers;
foreach ( string obj in parts )
{
matNumbers = regNumbers.Match ( obj );
if ( matNumbers.Success)
{
numbers.Add ( matNumbers.ToString () );
}
else
{
numbers.Add ( "1".ToString () );
}
}
ArrayList lettersAndPowers = new ArrayList ();
Regex regLetAndPow = new Regex ( @"([a-z]\^[0-9]+)|([a-z])" );
MatchCollection matLetAndPow;
foreach ( string obj in parts )
{
matLetAndPow = regLetAndPow.Matches ( obj );
if ( matLetAndPow.Count > 0 )
{
foreach ( Match mObj in matLetAndPow )
{
lettersAndPowers.Add ( mObj.ToString() );
}
lettersAndPowers.Add ( "!" );
}
}
lettersAndPowers.RemoveAt ( lettersAndPowers.Count - 1 );
ArrayList powers = new ArrayList ();
ArrayList letters = new ArrayList ();
Regex regPowers = new Regex ( "[0-9]+" );
Match matPowers;
foreach ( string obj in lettersAndPowers )
{
if ( obj == "!" )
{
letters.Add ( obj );
powers.Add ( obj );
}
else
{
letters.Add ( obj [ 0 ] );
matPowers = regPowers.Match ( obj );
if ( matPowers.Success )
powers.Add ( matPowers.ToString () );
else
powers.Add ( "1" );
}
}
ArrayList extractLetters = new ArrayList ();
ArrayList extractPowers = new ArrayList ();
for ( int i = 0; i < letters.Count; i++ )
{
if ( !extractLetters.Contains ( letters [ i ] ) )
{
if ( letters [ i ].ToString() != "!" )
{
extractLetters.Add ( letters [ i ] );
extractPowers.Add ( powers [ i ] );
}
}
else
{
int index = extractLetters.IndexOf ( letters [ i ] );
if ( int.Parse ( powers [ i ].ToString() ) < int.Parse ( extractPowers [ index ].ToString() ) )
{
extractPowers [ index ] = powers [ i ];
}
}
}
string inSidebracket = "";
int a = 0;
if ( parts.Count == sign.Count )
{
inSidebracket += sign[a].ToString();
a++;
}
int x = 0;
for ( int j = 0; j < letters.Count; j++ )
{
if ( letters [ j ].ToString () == "!" )
{
inSidebracket += sign [ a ].ToString ();
a++;
}
else
{
for ( int i = 0; i < extractLetters.Count; i++ )
{
if ( letters [ j ] == extractLetters [ i ] )
{
if ( int.Parse ( powers [ j ].ToString () ) > int.Parse ( extractPowers [ i ].ToString () ) )
{
int p = ( int.Parse ( powers [ j ].ToString () ) - int.Parse ( extractPowers [ i ].ToString () ) );
inSidebracket += letters [ j ] + "^" + p.ToString ();
}
else
{
x++;
}
}
if ( x == extractLetters.Count )
{
inSidebracket += "1";
x = 0;
}
}
}
}
ArrayList adrange = new ArrayList ();
adrange.AddRange ( extractLetters );
adrange.AddRange ( extractPowers );
return inSidebracket;
}
public ArrayList SubstringParts ( string input, MatchCollection matSign, ArrayList parts )
{
int i = 0;
string part;
while ( i < matSign.Count )
{
if ( ( i + 1 ) == matSign.Count )
{
part = input.Substring ( matSign [ i ].Index + 1, ( input.Length - ( matSign [ i ].Index + 1 ) ) );
parts.Add ( part );
break;
}
part = input.Substring ( matSign [ i ].Index + 1, matSign [ i + 1 ].Index - ( matSign [ i ].Index + 1 ) );
parts.Add ( part );
i++;
}
return parts;
}
}
Bravo , upravo si otkrio veliki bug. :)
Probaj sa equals() umjesto sa == porediti. ;)
Probaj sa equals() umjesto sa == porediti. ;)
Code:
if ( letters[j].Equals(extractLetters[i]) )
if ( letters[j].Equals(extractLetters[i]) )
Potpis
Free advice is seldom cheap.
Jebe* stavija sam obe varijable .toString() i onda je normalno radia.Ali čudno samo jednom je preskočio if blok :)
Sa operatorom == se porede reference a ne objekte!
Potpis
Free advice is seldom cheap.
Ne mora da znaci, kad se porede stringovi == operator je overloadovan da poredi po sadrzaju, ne po referenci. Ako ne uhvatite bu, probacu ja sutra, sad sam u guzvi za ovu vrstu gimnastike.
Al mozda je tu i problem, ArrayList drzi object tipove, samim tim verovatno ne koristi stringov overloadovani operater vec samo poredi po referenci. Probaj da umesto ArrayList koristis List<string> generic, onda ce List<string>[] item koristiti stringov ==
Al mozda je tu i problem, ArrayList drzi object tipove, samim tim verovatno ne koristi stringov overloadovani operater vec samo poredi po referenci. Probaj da umesto ArrayList koristis List<string> generic, onda ce List<string>[] item koristiti stringov ==
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić