Hala algoritmik bir temsili olarak kabul kodunu yazıyor?

oy
2

Hala algoritmik bir temsili olarak kabul kodunu yazıyor bir C bir A'dan gözüme benim vizesinden algoritmanın dışarı yerine kod yazdığı için ben sadece bir testte benim cevabın% 50'sini kaybetti?

Wikipedia: Algoritma Temsil (programlama tarzı olduğundan hemen hemen uzlaşmaya dayalı)

DÜZENLEME: Ok, bu nedenle Birkaç noktayı açıklığa kavuşturalım:

  1. biz gerçekten sınıfında tanımlanan asla sözde kodu girmeniz testi; Biz sadece bizim algoritmalar için İngilizce yazdım.

  2. Bu bir Java sınıfı, ve yorumlarla birlikte bir Java yönteminde tüm çözüm yazdı. Bütün bunlar elle yazılmış idi ve sözde kod daha dışarı yazmak için uzun sürdü. Ben daha net olacağını düşündüm.

  3. Normalde bu tür şeyleri bir sorun yapmazdım, ancak bir A ve bir C arasında bir fark var, ve benim sınavları burs binme var.

  4. Son olarak, iki nedenden dolayı bu yazı yapıyorum:

    4.1 Ben modern programlama topluluk sözde kodu ve algoritmik gösterimi hakkında ne düşündüğünü göstermek istiyorum.

    4.2 Ben gerçek dünya kabul edilebilir ne olduğunu bilmek istiyorum; Bir süredir programlama oldum, ama yakında projeleri kaynak açmak katkıda edebilmek istiyorum, ve kimsenin ayağına basmak istemiyorum. (Bu konu gerçek dünyada geliyor şansı çok az olduğundan eminim rağmen).

Yine, herhangi bir yardım / tavsiye için teşekkürler.

Oluştur 05/11/2008 saat 00:12
kaynak kullanıcı
Diğer dillerde...                            


8 cevaplar

oy
0

Tek bildiğim bir algorithim sahip sonrasına kadar herhangi bir kod yazmak gerekir olduğunu.

Cevap 05/11/2008 saat 00:15
kaynak kullanıcı

oy
5

Bir örnek vermek isteyebilirsiniz. kodunuzu algoritmanın bir parçası olmayan dil özelliklerini üzerinde çok fazla duruluyor, o Anlaşılır, yanlış bir sonuç yol açacak şekilde algoritma ile karışık olmayan bir algoritma vardı söylenebilir.

Ben akıl için, öğrenmenin bütün mesele değil Eğil ve tüm doğru kutuları kene, kavramını göstermektir hissedin.

Bir bilgisayar üniversite geçmesine öğretilebilir, ama bir bilgisayar henüz aslında kendisi için düşünmek ve bilgiyi uygulamak için öğretilmelidir olamaz.

Ye ve Mezun neden hiç zihniyettir kusar.


En son yorumun ile ilgili olarak, onun önemli yalancı kod tanımsız gerçekleştirmek. Genellikle Orada o terimler yeniden, ama onun değil sıkı dil ingilizce dışında herhangi fazlasıdır edilmektedir (aksi takdirde olurdu olmak kelimesi kelimesine ayrıştırılır ve infaz edilmesi bir programlama dili)

Önemi pseudocode eti dışarı olan mantık 'mantıklı' ötesinde sözdizimi hakkında aşırı endişelenmenize gerek sisteminin bir parçası olup

Genellikle bu pseudocode hem daha yapabilir veciz ve daha anlaşılır.

Sözdekod da bunu işleme amacıyla dilinde 'sihirli sözdizimi' bir anlayış olan okuyucuya dayanmaz, onlar anlamak için gereken tüm kullanılan terimler olduğunu.

Eğer Ortalama bir kişinin örneğin perl'de bir algoritma vermek olsaydı onlar hat gürültüsünün şap geçmiş görmüyorum, çünkü çoğu insan sadece korku ölebilirler.

Süre:

sub foo { 
   my @args = @_ ; 
   my( $a, $b )=(@args[0],@args[1]); 
   for( @{ $a } ){
       $b .= $_ ; 
       s/id//g; 
   }
   return [$b,$a];
}

Bütün bunlar olsun ortalama kod okuyucuya, perl'de usta birisine bazı tutarlı sense yapabilir, bir "cehennem az önce ne dedin" yanıttır. belgelemek ya çok yardımcı olmuyor.

| there is a subroute foo which can take a list of strings, and a default string, 
\-  which then iterates all items in  that list, 
| \-  and for each item in that list 
|     1. appends the contents of that item to the end of the default string
|     2. removes all instances of the string "id" in that item
| 
 \ and returns a list, which contains 
    1. the concatentated default string 
    2. the modified input list 

Aniden az muğlak hale gelir ve halkların daha yüksek bir yüzdeyle bunu anlayabilir.

Yani muhtemelen, algoritma yazma ile yarım egzersiz hayati olduğunu "Sadece sen bunu anlamak kanıtlamak için var, ayrıca sorunun hiçbir şey bilmiyor başkalarına akıl açıklayabilir kanıtlamak zorunda" bir egzersizdir yetenek ihtiyacınız. Eğer yaptıklarını iletişim kuramazsa, kimse bunu kullanabilirsiniz.

Orada bir algoritma var olmayan koduyla bu pis küçük sorun, aynı zamanda, ve bu kod olabilir olduğunu bakmak doğru, ama ne yapamazsınız düşünmek öyle ve doğru yapmak ve olmazsa don 't, fark kod ters mühendislik okurken insanlar bunu bozmak ve kopyalar kırık algoritma. iyi değil. Daha iyi insan şeklinde algoritma 'Bu ben yapacağım istediğim şey' çevirir

Cevap 05/11/2008 saat 00:20
kaynak kullanıcı

oy
3

Bu durumda, profesöre ertelemek zorundayız.

Cevap 05/11/2008 saat 00:23
kaynak kullanıcı

oy
0

pseudocode yerine kod kullanarak sorunu teorik olarak konuşursak, kimse kod değil, yalancı kod olduğunu varsayalım olabilir, olmasıdır. Neyse, öğretmen notları size yanıt değil, sizin bilginiz için - Eğer öğretmen sever açısından istendi neyi yanıtlayan daha iyi olurdu. Evet, hepimiz biliyoruz, sen daha iyi bilirsin. Ama başka bir kişinin yolunu mantığa denemek için kötü bir egzersiz asla, biliyorsun. Ve en azından benim ülkemde öğretmen serbestçe seni değerlendirmesi hakkına sahiptir, bu yüzden ... onunla birlikte olsun!

Cevap 05/11/2008 saat 00:29
kaynak kullanıcı

oy
2

Sen daha fazla bilgi vermeleri gerekmektedir. Bir algoritma istedi ancak kod verildi. Eğer kodu yorum mü? Ne kadar? (Ben soruyu ve cevabını görmek istiyorum, ama belki de çok fazla talep ediyor).

Bu yüzden kendi deneyimlerine dayanarak cevap olacak. Ben bir algoritma için soruyorum, o zaman sorunu çözmek ve / veya söz konusu gereksinimlerini karşılamak için nasıl, iyi İngilizce açıklıyor şey istiyorum. Diyagramlar da iyi (bazen daha iyi) vardır. Sadece açık, kısa ve doğru olmalıdır - her ne Paragraf, nokta formu.

kod bana temin ederse yukarıdaki duruma tam not yapar. Eğer "dil" saf ve oldukça şifreli bir kod kaynağı Ancak, daha sonra işaretleri kaybolur - daha fazla veya daha az kod aslında ne kadar şifreli bağlı. Hatta kodla, sadece kavramların tam bir anlayış göstermek, hem de bir diyagram görmek istiyorum.

programlama öğretim zaman yüz zor şeylerden biri öğrenci DAHA, az olmamak yazmaya almakla olduğunu. Bazen bir atama (veya sınav) "En şaşırtma kod yarışmasında" bir giriş olmadığını hatırlatmak zorunda kalmıştır. ;-)

Alkış,

-R

Cevap 05/11/2008 saat 00:49
kaynak kullanıcı

oy
0

Sadece Profesörüne konuşmak ve yanlış soru var neden ona sorun. Bir doğru cevap ne olacağını sor ve ne temel fark, ikisi arasında olduğunu.

o yazdığın algoritma doğru olmadığını olabilir mi?

Cevap 05/11/2008 saat 01:56
kaynak kullanıcı

oy
0

Kod bir makine çalıştırmak, böylece yazılmış bir algoritmadır. Bir insan anlamak için o da yazmıyor söylüyor tanımında bir şey yok. Java yazma senin algoritma gizleyebilir mi? Bu senin öğretmen ile mutabık olup olmadığını belirleyecek.

Cevap 05/11/2008 saat 02:22
kaynak kullanıcı

oy
2

Gelişmiş bir algoritmalar kursu için bir greyder gibi, ben ederim her zaman basitçe kodlanmış bir çözüm olup olmadığını noktaları çıkar.

Bazı şeyler basitçe ikna edici kodda İngilizce olarak olabildiğince ifade edilemez. Sözde kod sıkı derleyici sözdizimi kurtulmak ve bazı etkileyiciliğini izin vermek bir girişimdir. Bu her zaman olmasa da yeterince, anlaşılabilirlik doğru yönde atılmış bir adım.

Özellikle bir algoritma sınıfında, bu doğruluk bir kanıt sunmak her zaman önemlidir, hem de algoritmanın uzay ve zaman karmaşıklığı için büyük-O notasyonu (indüksiyon, çelişki, vb olsun).

Cevap 13/11/2008 saat 21:04
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more