Sahte kod nedir?


19

Son zamanlarda, bu sitede ve diğerlerinde çok sayıda Pseudocode'dan bahsettim . Ama anlamıyorum:

  • Yalancı Kod nedir? Örneğin, aşağıdaki Wikipedia makalesi "Bir programlama dilinin yapısal kurallarını kullanır, ancak makine okuması yerine insan okuması için tasarlanmıştır" der . O anlamına mı geliyor değil aslında yapmak programlarına kullanılan?

  • Neden kullanılır?

  • Nasıl kullanılır?
  • Programlama Dili mi? (Yukarıdaki Wikipedia teklifine bakın)
  • Yaygın olarak biliniyor / kullanılıyor mu?

Dürüst olmak gerekirse, bununla nereden başlayacağımı bilmiyorum. Google'ı aradım ve konuyla ilgili Wikipedia makalesini gördüm , ancak hala ne olduğunu tam olarak anlamıyorum.


7
Lütfen Wikipedia makalesinden belirli alıntılar ve sorular sağlayın. Tüm sorularınızın edilmektedir orada cevap verdi. Kelimeleri veya kelime öbeklerini anlayamıyorsanız, lütfen açıklayabilmemiz için sorunuzda belirli bir kelime veya kelime öbeğini belirtin. Bu makalede ne kafa karıştırıcı bulduğunu bilmek zor. Bu makaleyi burada tekrarlamak yerine, sizi şaşırtan belirli şeylere başvurabilirseniz yardımcı olacaktır.
S.Lott

@SLott: Tamamlandı
Dinamik

20
while (you.doNotUnderstand(pseudocode)) { q = you.askQuestion(); a = we.answer(q); you.digestAnswer(a) }
Joachim Sauer

3
if (question.IsAnswered) then you.UnderstandPseudoCode <- true
e-MEE

1
Doğal dil ve programlama dili arasında orta bir zemindir - konuşulan dilden daha resmi, ancak gerçek bir programlama dilinden daha az resmi.
Ingo

Yanıtlar:


19

Sahte kod, adından da anlaşılacağı gibi, gerçek kod değildir, ancak kod gibi görünür. Gerçek bir dil kullanırken gerekli tüm bagajları eklemek zorunda kalmadan insanların sorunlu bir alanı veya çözümü daha iyi anlamalarına yardımcı olur.

Kısacası: sadece gösterim amacıyla kullanılır.

Sahte kod ve programlama Sahte kodun
tanımı veya sabit bir kuralı yoktur, her seferinde farklı olabilir. Bu (gerçek) bir programlama dili değildir ve hiç kimse bunu bir dil olarak kabul etmez. Gerçek bir programlama dili olarak derlenemez veya kullanılamaz: bunu yapabiliyorsanız sahte kod olmaktan çıkar. Sözde kodun deterministik olması gerekmez (bilgisayarların derlenmesi için bir gereklilik), insanlar tarafından anlaşılması gerekir. Sahte kod kullanmak için, kodu en sevdiğiniz programlama diline dönüştürmeniz gerekir. Bu dönüştürme işlemi her seferinde farklı olabilir ve bunun için hiçbir kural verilemez, çünkü yine, sözde kod serbest konuşma gibidir: herhangi bir form alabilir.

Kullanımlar
Özellikle projelerin tasarım aşamasında bir soruna belirli bir yaklaşımı anlamaya yardımcı olmak için yaygın olarak kullanılır. Ayrıca algoritma tasarımında veya öğretmenler tahtaya bir şeyler çizdiklerinde yaygın olarak kullanılır. Tüm bu durumlarda kodu derlemek gerekli değildir, sadece sorunu / çözümü anlamak istersiniz.

Sahte
kod türleri Sahte kod olabilir, ancak belirli bir türde olmak zorunda değildir, yani MSIL'i göstermek için yığın tabanlı bir sahte kodunuz olabilir, Java, C #, C ++, Python'u göstermek için zorunlu bir sahte kodunuz olabilir. F #, Haskell, SQL vb. örneklerini gösteren işlevsel bir sözde kod içerebilir.

Örnekler
Başımın üstünden, ama her şey gidiyor, çünkü sözde kod yerinde icat edilebilir:

Birden fazla p öğesine izin veren bir başlık + gövde yapısı gösteren XML sözde kodu:

<head ...
   <title ...
</
<body ...>
   (<p>...)+
</

Birden fazla kalıtımı destekleyen dillerde elmas sorununu gösteren zorunlu sahte kod:

class A() { readFile(); }
class B() : A {}       // overrides readFile in A
class C() : A {}       // overrides readFile in A
class D() : B, C {}    // what definition of readFile should be used?

Yukarıdaki iki örnek, bazı dillere benzemektedir, ancak gerçekte bu dil değildir ve muhtemelen derlenemez. Açıklamak istediğiniz bir şeyi açıklarlar.


14
Sahte kodun herhangi bir soyutlama düzeyinde yaşayabileceğini eklemek faydalı olabilir: Bir algoritmanın belirli çalışmalarını gerçek sahte olmayan koda kolayca çevrilebilecek bir şekilde tanımlayabilir veya çok yüksek bir düzey verebilirsiniz. çok geniş tanımlanmış "yöntemler" veya "nesneler" kullanarak bazı yaklaşımlara genel bakış. Geniş bir spektrum.
Joachim Sauer

8

Yalancı Kod nedir? Örneğin, aşağıdaki Wikipedia makalesi "Bir programlama dilinin yapısal kurallarını kullanır, ancak makine okuması yerine insan okuması için tasarlanmıştır" der. Bu aslında program yapmak için kullanılmadığı anlamına mı geliyor?

Tam olarak, insan dostu bir biçimde yazılmış kod. Çalışan bir program yapmak için kullanılamaz.

Neden yapıldı / kullanıldı?

Çünkü Pseudocode hızlı yazılır ve hızlı okunur. Dile özgü bölümleri olmadığı için okunması daha açıktır. Ayrıca dilden bağımsızdır, böylece herkes okuyabilir (bu nedenle birçok ders kitabında kullanılır)

Programlama Dili mi? Yukarıdaki Wikipedia teklifine bakın.

Hayır. Bir programlama dili sadece yapıdan daha fazlasını gerektirir. Sözde kod eksik olan resmi semantik gerektirir.

Yaygın olarak biliniyor / kullanılıyor mu?

Evet. Junior seviyenin üzerindeki herkes yalancı kodu nasıl okuyacağını / yazacağını bilmelidir. Bir takımda çok fazla kitap okumak ve kod planlamak için gereklidir.


6

Wiki makalesini okuduysanız, sorularınızın çoğu açık olmalıdır. Onlara burada daha basit bir şekilde cevap vermeye çalışacağım. Bu 2 örneğe bir göz atın:

Bölüm 1 - Örnekler

Kod # 1 - Müşteri Kaydı - Proses adımlarına bir örnek:

  1. Müşteri kayıt ekranına gider
  2. Müşteri ayrıntılarını girer.
  3. Geçerli ayrıntılar girildiyse müşteri bilgilerini veritabanına kaydedin
  4. Hata mesajı 100 ile başka gösteri iletişim kutusu.

Kod # 2 - Müşteri Adını Doğrula - Programlama işlevi örneği

Function ValidateCustomerName(Name1)

If (Name1 is entered and Name2 is entered) then return 1

If (Name1 is not entered) 

   Send Error Message

   return 0

Endif

...

End Function

Bölüm 2 - Şimdi sorularınıza

Yalancı Kod nedir?

Bir algoritmanın veya sürecin adımlarını yazmanın bir yoludur.

Neden yapıldı / kullanıldı?

Belirli bir programlama diline veya özel gösterimlere bağımlı olmadan işlem veya algoritma adımlarını göstermek için kullanılır.

Programlama Dili mi?

Derlenemez ve bunun nedeni belirli bir sözdizimi olmaması ve dolayısıyla bir programlama dili olmamasıdır.

Eğer öyleyse, diyelim ki Python kadar yetenekli mi?

İstediğiniz kadar yetenekli hale getirilebilir. Şöyle ifadeler yazabilirsiniz: Yaş Geçerli ise ...

Yaygın olarak biliniyor / kullanılıyor mu?

Evet. Algoritmalar hakkında düşünürken ve iş analistlerinin spesifikasyonlar sağlaması yararlı olur.


@Jae, düzenlemeyi takdir ediyorum.
NoChance

4

Pseudocode'un en iyi örneği Pascal'da programlama yaparken FORTRAN programcısıyla bir ofis paylaştığım zamandı. Her zaman Pseudocode'da yazmak zorunda kaldık. FORTRAN'ı bilmiyordum, bu yüzden sözdizimini doğru şekilde almamın bir yolu yok (özellikle tüm girintiler belirli işaretler için gerekli konumlar). Asla noktalı virgülle yazmak zorunda kalmadı. Beyaz tahtada, sözdizimi kurallarına uyulmadan anlaşılabilmesi için bir Pseudocode yazdık.

Sözde kod için kesin bir yapı yoktur. Eğer yazar, bir if ifadesinden sonra "{" kullanan bir dil biliyorsa, tahtaya koyar, eğer python biliyorlarsa bilmezler. Amaç, kesinlikle doğru kodu değil, problemin temel yaklaşımını hızlı bir şekilde çizmektir.

Öğretmenler bunu doğru cevabı vermeden bir öğrenciye rehberlik etmek için kullanabilirler. Bir dilden daha fazlasını öğrendikten sonra, Pseudocode kod parçalarını çizerken kullanmak doğal olmalıdır.


2

Sahte kod bir dil değil, bir kural değildir. Her ders kitabı veya makale, sahte kodun kendi sürümünü kullanır. Diğer birçok gayri resmi matematiksel "dilde" olduğu gibi, en iyi durumda makalenin kendisinde gayri resmi olarak açıklanacaktır, en kötü durumda yazarlar bunun yeterince "açık" olmasını beklerlerdi.


En iyi durumda herhangi bir resmi veya gayri resmi açıklama gerektirmeyecek kadar açıktır;).
Abel

@Abel, "bariz" biçimcilik diye bir şey yok. Ondalık aritmetik kadar "açık" bir şey bile düzgün bir şekilde tanıtılmalıdır. Aksi takdirde karışıklık kaçınılmazdır maalesef. En azından bazı resmi tanıtımlar olmadan açık bir sahte kod görmedim.
SK-logic

Bu konu pseudocode ile ilgilidir. Biçimciliğin bununla hiçbir ilgisi yoktur. Ama benim yorum "pun amaçlı";) oldu.
Abel

@Abel, soyut bir dil de biçimciliktir (en azından az ya da çok bilimsel bir makalede kullanıldığında).
SK-logic

2

Sahte kod nedir?

Sahte kod temel olarak bir programın bir işlemi tamamlamak için ne yapması gerektiğine dair yazılı talimatlardır. Sahte kod konuşma dilinizde yazılmıştır. Siz veya bir başkasının onu okumasını ve gerçek bir programlama diline dönüştürmesini kolaylaştırmak için bir algoritmanın veya prosedürün adımlarını yazmanız yeterlidir.

Neden yapıldı / kullanıldı?

Bir programlama dili kullanmadan bir prosedür, işlem veya algoritma adımlarını belirtmenize yardımcı olmak için yapılmıştır. Olası bir alternatif de akış şemaları kullanmaktır.

Programlama Dili mi?

Hayır, resmi bir kural olmadığı için bir programlama dili değildir.

Yaygın olarak biliniyor / kullanılıyor mu?

Şahsen, algoritmalar veya karmaşık prosedürler yazarken her zaman sahte kod kullanmaya çalışırım.


0

Sahte kodumun kişisel tanımı "kod tasarlarken bir kağıda düz İngilizce yazdığım şeyler"

Bir sahte kod "tasarım" kodlamadan önce, sahte kodumu yorum olarak ekleyeceğim. Sonra bu yorumlar üzerinden çalışarak açıklanan görevi gerçekleştirir "gerçek" kod ekleyebilirsiniz.

Bu kodlama yöntemi için farkında olmadığım resmi bir isim olabilir ve bunu sadece yeni / karmaşık bir şey yaparken kullanıyorum.


-4

Programlama öğretim elemanımın dediği gibi:

Sözde kod, herhangi bir programlama dilinin İngilizce sürümüdür.


2
-1 Yararlı değil. Alıntı sadece sözde kod açıklaması (bu cevapta eksik) arasında anlamlıdır. Aksi takdirde, oldukça yanıltıcı olabilir. Bir acemi merak edebilir: Peki, C # 'ın yöntemleri tüm İngilizce, yani kullandığım C # Pseudocode, yani ...? Almanya'da C # kullanırken buna ne diyorlar?
doppelgreener
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.