Bir diziden bir eleman nasıl kaldırılır (tek boyutlu iki boyutlu)? - sayfa 3

 
Tam olarak değil. Ancak iki boyutlu diziler için en iyi seçenek bir yapı kullanmaktır. Ve sonra içindeki dizilerle çalışmak daha kolay hale geliyor.
 struct SA
{
     int i[], j[];
} A[];
 
Alexey Viktorov :
Şimdiye kadar, doğrudan forum web sitesinde bir derleyici yapmayı düşünmediler.

Derleyiciyi açıp denemek, sitede henüz icat edilmemiş bir şey hakkında yazı yazmaktan daha hızlıdır. Her ne kadar sorunun özünü anlamadan cevap verdiğiniz açık ve şimdi sadece konudan çıkmak istiyorsunuz.

 
Ilya Malev :

Derleyiciyi açıp denemek, sitede henüz icat edilmemiş bir şey hakkında yazı yazmaktan daha hızlıdır. Her ne kadar sorunun özünü anlamadan cevap verdiğiniz açık ve şimdi sadece konudan çıkmak istiyorsunuz.

Evet, aklınıza ne geleceğini bir düşünün. Bayrak senin elinde.

 
Konstantin Nikitin :
Tam olarak değil. Ancak iki boyutlu diziler için en iyi seçenek bir yapı kullanmaktır. Ve sonra içindeki dizilerle çalışmak daha kolay hale geliyor.

Ya dizi dört boyutluysa?

 
Torunumla matematik yaptığımda, dikkatini problem çözmeye ve hatta onları çözmek için algoritmalara değil, bu problemlerin ortaya çıktığı öze odaklarım.
 
Алексей Тарабанов :

Ya dizi dört boyutluysa?

Evet, en az 20. Her şey yapı sayısına bağlı
İşte kodumun çalışan bir örneği.

 struct SIndicator
{
     int   id;
     char array[];
};
//+------------------------------------------------------------------+
struct SPositions
{
     double               price;
     ENUM_ORDER_TYPE      type_positiot;
     SIndicator          indicators[];
};
 
int a[][2]={1,2,11,12,21,22};
ArrayCopy(a,a,2,4);// работаем как с одномерным
ArrayResize(a,ArrayRange(a,0)-1);  
 
Konstantin Nikitin :

Evet, en az 20. Her şey yapı sayısına bağlı
İşte kodumun çalışan bir örneği.

OOP dillerinde programlama yapmıyorum. Aslında hiç program yapmıyorum, o yüzden oyun oynuyorum.

Aynı zamanda, MT'de herhangi bir sayıda boyuta sahip bir dizi öğesini silme görevi, PL/1 dilinde, MT'nin olmadığı ve zaten dört bellek yönetim modu olduğu 35 yıl önce zaten çözülebiliyordu. PL/1.

İpucu: MT'deki diziler statiktir.

 

Dmitry Fedoseev :

 // работаем как с одномерным

"Tek boyutlu olarak çalışıyoruz" ifadesinin yöntem imzaları için geçerli olmaması üzücü, aksi takdirde her şey gerçekten basit olurdu.

 
Ilya Malev :

"Tek boyutlu olarak çalışıyoruz" ifadesinin yöntem imzaları için geçerli olmaması üzücü, aksi takdirde her şey gerçekten basit olurdu.

Hangi yöntemler? İmzalar neler?

ArrayCopy() yapılarla çalışmaz. Ve burada işaretçiler ile... denemek gerekiyor.