Okul çocukları için OOP. - sayfa 3

 
Koldun Zloy :

Az sayıda puanla bile bunun açık olduğunu düşündüm. Binlerce varsa ve onlardan daha karmaşık rakamlar oluşacaksa, avantaj daha da büyük olacaktır.

Veri yazmanın ve onunla çalışmanın "sözdizimsel tekniğini" gösterdiniz. Bunlar teknikler, OOP kavramı değil. Basit görevlerde, neden çözüme sıkıştırıldıkları açık olmayan her yapı ve sınıftan varlıkları çitle çevirmektense dizilerle çalışmak daha uygundur.

Şöyle bir şey var: Mekanizmanın etkinliği.

Basit görevlerde OOP, verimliliği ve okunabilirliği azaltır. Çivileri çakmak için bir çekiçe ihtiyacınız vardır ve darbe sayacı ve kuvvet göstergesi olan bir ekrana sahip olup olmadığı önemli değildir.

[Silindi]  
Реter Konow :

Veri yazmanın ve onunla çalışmanın "sözdizimsel tekniğini" gösterdiniz. Bunlar teknikler, OOP kavramı değil. Basit görevlerde, neden çözüme sıkıştırıldıkları açık olmayan her yapı ve sınıftan varlıkları çitle çevirmektense dizilerle çalışmak daha uygundur.

Şöyle bir şey var: Mekanizmanın etkinliği.

Basit görevlerde OOP, verimliliği ve okunabilirliği azaltır. Çivileri çakmak için bir çekiçe ihtiyacınız vardır ve darbe sayacı ve kuvvet göstergesi olan bir ekranı olup olmadığı önemli değildir.

Örneğimde, okunabilirlik çok daha yüksek ve verimlilik daha kötü değil.

"OOP kavramının" ne olduğunu bilmiyorum.

Ben bir programcıyım, filozof değil.

 
Koldun Zloy :

Örneğimde, okunabilirlik çok daha yüksek ve verimlilik daha kötü değil.

"OOP kavramının" ne olduğunu bilmiyorum.

Ben bir programcıyım, filozof değil.

OOP sözdizimsel tekniklerini küçük görevlere aktarmak, çözümde gereksiz varlıklar yaratır.

Öncelikle minimum sözdizimi ve "nesnellik" ile etkili çözümler yapmayı öğrenmelisiniz. Renkle çalışan algoritmalara bakın. Gereksiz bir şey yok. Çıplak mekanizmalar. Yani çekiçler ve çiviler. Ve görevler daha karmaşık hale geldikçe, "Nesne", "Sınıf" kavramına geçin ...

yapardım. Ancak sizi rahatsız etmeyeceğim.

[Silindi]  
Реter Konow :

OOP sözdizimsel tekniklerini küçük görevlere aktarmak, çözümde gereksiz varlıklar yaratır.

Öncelikle minimum sözdizimi ve "nesnellik" ile etkili çözümler yapmayı öğrenmelisiniz. Renkle çalışan algoritmalara bakın. Gereksiz bir şey yok. Çıplak mekanizmalar. Yani çekiçler ve çiviler. Ve görevler daha karmaşık hale geldikçe, "Nesne", "Sınıf" kavramına geçin ...

yapardım. Ancak sizi rahatsız etmeyeceğim.

Bu konuda soyut akıl yürütme değil, somut örnekler istiyorum. POINT yapısından sizi alıkoyan ne oldu?

Ve beni rahatsız etmiyorsun. Bu konu da sizler için.

 
Koldun Zloy :

Bu bir şeyi değiştirir mi?

Sözdizimi değişiyor.

nesne.değer=1; veya obj.val(1);

ve tersi:

x=nesne.val; veya x=obj.val();

[Silindi]  
Dmitry Fedoseev :

Sözdizimi değişiyor.

nesne.değer=1; veya obj.val(1);

ve tersi:

x=nesne.val; veya x=obj.val();

Kaba olmamayı bilenlerle iletişim kurarım.

Ve dışarı çıktın.

 
Koldun Zloy :

Kaba olmamayı bilenlerle iletişim kurarım.

Ve dışarı çıktın.

Sahili kandırdın mı?

Evet... kulüp üyeleri kendi hayallerine kapılmaktan gerçekten hoşlanmazlar.


TheXpert :
esasen hayır.

Ve şimdi: birbirlerini yalamayı da seviyorlar.

--

Ve şimdi herkes, bir alıcı ve bir pasör hakkında böyle bir saçmalık yayınladığımı hayal etsin.

--

Koldun Zloy, konuyu "Bir okul çocuğundan okul çocukları için OOO" olarak yeniden adlandırın.

 
Koldun Zloy :

Bu konuda soyut akıl yürütme değil, somut örnekler istiyorum. POINT yapısından sizi alıkoyan ne oldu?

Ve beni rahatsız etmiyorsun. Bu konu da sizler için.

Tamam, koda geçelim.

Görev neydi? - Noktaların koordinatlarını saklamak uygundur. Ne için? - Hızlı erişim için.

POINT yapısı ve örnekleri , görev yalnızca hızlı veri erişimindeyse , çözümde gereksiz varlıklardır. Matris aracılığıyla erişmenin ne kadar kolay olduğunu görün:

 int Points[ 2 ][ 10 ]; //Объявляем в глобальной области.
//---------------------
//цикл по точкам для вычесления расстояний между ними:
//---------------------
for ( int i = 0 ; i < 9 ; i++)
  {  
   int x_dist = Points[ 0 ][i + 1 ] - Points[ 0 ][i];
   int y_dist = Points[ 1 ][i + 1 ] - Points[ 1 ][i];
  }
//--------------------------

Filozof olmadığınızı, ancak "yapı"nın felsefi bir kavram olduğunu ve çözümdeki varlığının gerekçelendirilmesi gerektiğini söylüyorsunuz .

 
Реter Konow :

Tamam, koda geçelim.

Görev neydi? - Noktaların koordinatlarını saklamak uygundur. Ne için? - Hızlı erişim için.

POINT yapısı ve örnekleri , görev yalnızca hızlı veri erişimindeyse , çözümde gereksiz varlıklardır. Matris aracılığıyla erişmenin ne kadar kolay olduğunu görün:

Filozof olmadığınızı, ancak "yapı"nın felsefi bir kavram olduğunu ve çözümdeki varlığının gerekçelendirilmesi gerektiğini söylüyorsunuz .

Sadece uygunsuz - hangi elementte x ve hangi y'yi bilmeniz gerekir. Yapıyı kullanırken her şey açıktır ve bu hatayı ortadan kaldırır, kod miktarını azaltır.

 
Dmitry Fedoseev :


Ve şimdi herkes, bir alıcı ve bir pasör hakkında böyle bir saçmalık yayınladığımı hayal etsin.

saçmalık nedir? Alıcıların tanımını açın ve şunu okuyun:

erişimi doğrudan kısıtlanmış olan verileri almanızı sağlayan özel bir yöntem

Ancak özel verileri alabileceğiniz mekanizma farklı olabilir. C#'da bu bir yoldur, C++ ve MQL'de bu başkadır. Ancak bu yöntemlerden "alıcı" tanımını kaybetmeyin.