“Devlet” in tanımı


15

Durum değişkeni veya durum makinesinde olduğu gibi "durum" u yeni (önceden olmayan) bir programlayıcıya tanımlamanın iyi bir yolu nedir? Bu kavramın yazılım yazmak için neden yararlı olduğunu açıklamanın iyi yolları nelerdir? Devlet kavramı, dersleri veya kitapları yaygın olarak programlamaya başlarken açıkça öğretiliyor mu?

Yanıtlar:


5

Bir şeyi hatırlamanız gerektiğinde "durum" gereklidir. İşlevler ("yöntemler" veya herhangi bir şekilde değil) ideal olarak yalnızca girdilerine bağlıdır. Cevabın zaman içinde nerede değişebileceği sorusunu sorarsanız, girişler aynı olsa bile, cevaptaki farkı hatırlamak için bir şeye ihtiyacınız var, doğru mu? Aksi takdirde, başka bir faktör değişmediği için farklı bir cevap veremezsiniz (yanıtın doğrudan zamana bağlı olmadığını varsayalım).

Hatırlamanız gereken bu "şey / bilgi" ye "durum" denir.

(bu "durumun" zamanla değişmesi zorunlu değildir, temelde "bir şeyi hatırlamak / bilmek" demek için bir yöntemdir)


1
Programcı olmayan biri için anlaşılır olduğu düşünülürse, bunun en iyi cevap olduğunu düşünüyorum. De ki: tüm faaliyetler şeyleri ve / veya bilgileri ele alır. Bu üç şekilde olur: 1) herhangi bir faaliyet bir şeyi alabilir veya kullanabilir veya okuyabilir : girdisi ; 2) bir şey üretebilir veya yazabilir : çıktısı ; 3) devam ederken bir şeyi tutabilir , tutabilir , ezberleyebilir , depolayabilir : durumu. Çoğu bilgisayar programı için, tüm girdi, çıktı ve durum bilgileri içerirken, diğer faaliyet türleri (örneğin pişirme) için fiziksel nesneler de genellikle dahil edilir.
reinierpost

8

Gönderen Vikipedi :

Devlet, genel olarak bir sistemin veya varlığın mevcut durumunu ifade eder ...

Bilgi işlem bağlamında bunun anlamı hemen hemen budur: bazı nesnelerin veya sistemlerin durumunu tanımlayan veriler.

“Devlet” in anlamı programlamaya özgü değildir. Baktığınız her yerde 'devlet'in örnekleri var. Televizyon kapalı. Kahve sıcak. Spor ayakkabılar a) mavidir; b) koklamak; c) ertelememek; d) oldukça yıpranmış. Programlama anlamında 'durum', programlama dışı anlamda 'durum' ile aynıdır, ancak onu ele aldığımız nesnelere uygularız: değişkenler, nesneler, iş parçacıkları, veritabanları, dosya sistemleri vb. açıklamak, tanıdık terimlerle açıklamak - yabancı, teknik bir kavram haline getirmeye gerek yoktur.

Saat, bazı durumları olan basit bir sisteme iyi bir örnektir: bir saat çalışıyor olabilir veya çalışmıyor olabilir ve günün gerçek zamanına karşılık gelebilecek veya gelmeyebilecek bir saati gösterir. Bu şeylerin değişkenlere nasıl benzediğini ve saatin durumunu değiştirmenin diğer şeyleri nasıl etkileyebileceğini görmek oldukça kolaydır.

Bunu, bir ifade gibi vatansız bir şeyle karşılaştırın: "Kapı kırmızı." İfadenin kendisinin durumu yoktur. Kapının kırmızı olduğu doğru olabilir veya olmayabilir, ancak ifadenin kendisi herhangi bir durum içermez. Kapıyı boyamak ifadenin gerçekliğini değiştirebilir, ancak ifadenin kendisi asla değişmez. Benzer şekilde, 42 gibi bir sayı herhangi bir duruma sahip değildir: 42 42'dir ve bu konuda değiştirebileceğiniz hiçbir şey yoktur.

Değişkenlerin durumu vardır, değerler yoktur.


1
@ hotpaw2 'Durum'un anlamı programlamaya özgü değildir. Gördüğünüz her yerde ' devlet'in örnekleri var . Televizyon kapalı. Kahve sıcak. Spor ayakkabılar a) mavidir; b) koklamak; c) ertelememek; d) oldukça yıpranmış. Programlama anlamında 'durum', programlama dışı anlamda 'durum' ile aynıdır, ancak onu ele aldığımız nesnelere uygularız: değişkenler, nesneler, iş parçacıkları, veritabanları, dosya sistemleri vb.
Caleb

1
Yani bunu bir programlama öğrencisine somut örnekler kullanarak açıklar mıydınız? İyi bir fikir gibi görünüyor. Programlarındaki durumu anlamalarına etkili bir şekilde aktarılacak mı?
hotpaw2

2
@ hotpaw2 Yorumumu yanıta taşıdı ve biraz genişletti. Anlamaya gelince, bence yeni başlayanlarla soyutta 'devlet'e çok fazla odaklanmamak en iyisidir. Çoğu insan, daha genel bir modeli gerçekten tanımadan önce bir şeyin somut örneklerine ihtiyaç duyar.
Caleb

1
Neden “kahve sıcak” durumunun açık olduğu, ancak “kapı kırmızı” durumunun vatansız olduğu açık değil mi? Buna karşılık, bu "kahve siyahtır" vatansız ve "kapı sıcak" anlamına gelir mi?
Adam Hughes

1
@AdamHughes Alıntıları kullandığım yere bakın - özellikle, kahve hakkında konuşmak için kullanmadım çünkü kahve hakkında ifadelere değil, gerçek kahveye atıfta bulunuyordum. Mesele, değişkenler ve değerler arasındaki farkı açıklamaktır. Evimdeki gerçek kapının durumu vardır: açık veya kapalı, kırmızı veya mavi veya yeşil, sıcak veya soğuk, vb. Olabilir. Kapı hakkında bir ifade bu durumu gösterebilir, ancak ifadenin kendisi değişmez bir şeydir.
Caleb

1

Durum, programınızın bazı görevleri yerine getirmek için işlediği bilgidir. Bir programın çalışma süresi boyunca değiştirilen veya değiştirilen veriler veya bilgilerdir. Belirli bir zamanda bir programın "durumu", programın yürütülmekte olduğu bir sonraki adıma geçmek için o anda baktığı veya analiz ettiği tüm verilerin anlık görüntüsünü ifade eder.

Üniversitem Scheme ile başladı, bu yüzden devletsiz bir modelle programlamaya başladık. Daha sonra C'ye geçtik ve devletin ne olduğu, neden yararlı olduğu ve işleri neden potansiyel olarak çok karmaşık hale getirdiği konusunda çok açık olduk. Bu yüzden bazı üniversiteler kesinlikle devlet hakkında konuşuyor, ancak hepsi değil


1

Üç durumdan birinde olabilen bir trafik ışığı benzetmesini kullanabilirsiniz: [YEŞİL], [SARI] veya [KIRMIZI]. Her seferinde yalnızca bir durumda olmalıdır. Trafik ışığı modellenen gerçek durum makinesidir. Normalde durumunu [YEŞİL'den SARI], sonra [SARI - KIRMIZI], sonra [KIRMIZI - YEŞİL] arasında geçiş yapar.

resim açıklamasını buraya girin

Alternatif bir devlet geçişinin (İngiltere gibi bazı ülkelerde yürürlükte olan), [KIRMIZI - YEŞİL] geçişinin yerine iki geçişi vardır (KIRMIZI - SARI, sonra SARI - YEŞİL].

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.