internet pencereler Android
Genişletmek

1C 8.3 Öğeleri bir diziye nasıl yerleştirilir. Sabit bir dizi nasıl oluşturulur

Masif 1C basit bir değer kümesidir. 1C bir dizide, farklı türlerin değerlerini ekleyebilirsiniz. Bir dizi 1c'deki varlığı ekledikten sonra, yerleşik aramayı kontrol edebilirsiniz.

Masif 1C genellikle kullanılır:
A) Seçimler için
B) Daha fazla kullanmak için değerlerin listesini kaydetmek için, örneğin, işlev / prosedüre parametre olarak aktarın.

1C masiflerle çalışmak

2 değerden 1C dizisi oluşturun:
Dizi \u003d yeni dizi (); // sabit sayıda değer olmadan dizisi

Bir dizi. Addly (gsh.stundixed (0, 1000));
Bir dizi. Addly (gsh.stundixed (0, 1000));

// masif 1c'nin her değerinin geçişinin döngüsü, ne kadar olursa olsun

RAPOR (SCH);
Endcycle;

10 değerden 1C'lik bir dizi oluşturun:
Dizi \u003d yeni dizi (10); // Sabit Değer Sayısı ile Dizi
GPG \u003d yeni jeneratörsüz (); // Rastgele sayıları dolduracağız

// Dizi endeksi sıfırla başlar ve birinden değil
// 10 PCS - 0 - 9 arasında
SCH \u003d 0 ila 9 döngü için
// array namemassiva [index] için itiraz
Masif [sc] \u003d gsh.stundix (0, 1000); // 0 ila 1000 arasında rastgele sayı
Endcycle;

// Dizinin her değerinin geçişi, ne kadar olursa olsun
Döngü dizisinden her znch için
RAPOR (SCH);
Endcycle;

// Not - 10 Massif Değerleri, varsayılan 10 adet tarafından oldukları anlamına gelir ve her değer bir başkasını kurana kadar belirsizdir.
// Bu, Namemassiva'yı kullanarak başka bir değer, 11e ekleyemeyeceğimiz anlamına gelmez. Eklemek ();

Çok boyutlu dizi

Çok boyutlu bir 1C 2x2 dizisi oluşturun. Çok boyutlu dizi 1C, bu, bir dizinin her bir hücresinin her bir hücre değeri içermez, aynı zamanda 1C de bir diziyi içerir.

Çok boyutlu masif 1c sabit olmak zorunda değildir. Sabit bir değer sayısını belirlemeden çok boyutlu bir 1C 2x2 dizisini yapıyoruz:

Sıfırdan bir dizi 1c oluşturma

Veri - Zaman ve Kaynak Süresi ve Kaynakları Prosedürü. Bu nedenle, elde edilen verilerle istenirse, tekrarlanan tekrarlanır - daha önce elde edilen ve kaydedilmiş verilerle daha fazla çalışmak için bir kez elde etmek ve 1C dizisinde tutulması mantıklıdır.

Örneğin, program sürümü satırı "11.0.9.5" - nokta ile ayrılmış dört sayı aşağıdaki gibidir. Sürümü "Bilgisayar" formatına aktarabiliriz - dört sayısal değer dizisi. O zaman versiyonları birbirleriyle karşılaştırabiliriz:

Bitmiş bir masif 1C veri ile almak

SPSIS yöntemini kullanan değerler listesinden bir dizi 1C elde edilebilir. İndirme () ve değer tablosundan TTablian yöntemini kullanarak.

Aşağıdaki örnekte, bir istek yapıyoruz - veritabanından tüm bağlantıları seçin.

  • Sonuç kaynağı \u003d sorgu. Doldur () // Talep
  • fatura \u003d sonuç işe alımı. İndir () // Sonucu değerler tablosundaki boşaltın
  • mmassyl kaldırıcılar \u003d fatura. Maglip-şekillendirme ("Namecontami") // Bir dizideki bir tablonun sütununu kaldırın

Diğer nesnelerden bir dizi 1C elde etmek ve istekteki bir seçim olarak kullanmak

Bir belgenin listesi (veya değerler tablosu) formda bulunduğunda - Kullanıcı bir imleçle bir satır seçebilir. Aynı anda birkaç satır tahsis etmesine de izin verebilirsiniz. Birkaç satırı vurgulamak için (form izin verilmezse) tutmanız gerekir. ctrl tuşu veya vardiya.

Kalın bir istemciye bir değer tablosu ekleyin ve yazdığı gibi belge listesini seçin. Özelliklerinde, seçim modunu seçin - çoklu.

Seçilen satırların bir listesini programlı olarak yapabiliriz:

Eğer kullanıyorsanız yönetilen FormÖnce formun isteğini dinamik liste türüyle eklemelisiniz ve özelliklerinde, ana tabloyu - istediğiniz belge seçin. Formdaki sahneleri sürükleyin. Form öğesinin özelliklerinde (!) Seçim modunu seçin - çoklu (bu kadar varsayılan yüklü).

Dizi 1C'ye hitap eden çizgiler gibi görünüyor:
Elements. EquateVisInforms. Tahsis edilen tercih

Bu makale nedir

Bu makale, "1C geliştirmedeki ilk adımlar" makalelerinin döngüsünü sürdürmektedir. Evrensel koleksiyonlarla çalışma ilkelerini ele almaktadır. Makaleyi okuduktan sonra öğreneceksiniz:

  • Evrensel koleksiyonlar ne zaman ve hangi durumlarda kullanılmaları gerekir?
  • Tüm evrensel koleksiyonlar için ortak olan nedir? Hepsi ile çalışmak için hangi teknikler kullanılabilir?
  • Bir dizi nedir, nasıl ve ne zaman kullanılır? Hangi yöntemleri var?
  • Neden yapıyı kullanıyorsun? Masiften farkı nedir?
  • Hangi durumlarda değerlerin listesini kullanır? Formda nasıl görüntülenir?
  • Uyumluluk - Nedir ve ne zaman kullanılır? Yapıya ilişkin avantajlar nelerdir?
  • Değerlerin Tablosu Nedir? Yapısını nasıl tarif eder? Hatları nasıl eklenir / silmek için? Forma nasıl getirilir?
  • Değerler Ağacı - Ne için kullanılır? Nasıl doldurulur ve çıktı? Onunla nasıl çalışılır?

Uygulanabilirlik

Makale, 1C platformu ele alır: Acil Sürümün Kurumsal 8.3'ü.

Evrensel koleksiyonlarla birlikte 1C'de olduğu gibi

Değerler kümesi, herhangi bir sayıda öğenin genellikle içerebileceği belirli bir kaptır. Bu durumda, veri türündeki sert kısıtlamalar genellikle üst üste gelmez.

Evrensel koleksiyonda değerler ekleyebilirsiniz. Koleksiyondaki tüm değerler çevrilebilir. Bu koleksiyonlar esas olarak algoritmalarda herhangi bir işlem için kullanılır. Şunlar. Bu, algoritmanın çalışması sırasında mevcut olan bazı dinamik yapılardır.

Koleksiyonların veritabanında saklanmadığını anlamak önemlidir (hemen hemen her tür veri kaydedilebileceği değerlerin veri depolanması hakkında).

Çeşitli evrensel koleksiyon türleri vardır: bir dizi, yapı, uygunluk, sabit dizi, değerler tablosu, Masa parçaları vb. Ancak tüm koleksiyonlar benzer davranışa sahiptir.

Koleksiyon, herhangi bir fonksiyonun bir fonksiyonunun bir sonucu olarak oluşturulabilir (işlev, evrensel koleksiyonu değer olarak döndürür).

Yapıcı ile iletişim kurarak ve sınıfın bir örneğini oluşturarak elle yeni bir koleksiyon elde edebilirsiniz.

Örneğin: Bizim masif \u003d yeni dizimiz;

Evrensel koleksiyon için tasarımcılar parametrelendirilir.

Yani, tasarımcı için İlgili ölçümlerdeki öğelerin sayısını belirleyebilirsiniz. Şunlar. hemen çok boyutlu ilan edebilir .

İlgili tasarımcı açıklaması sözdizimi asistanıdır.

Bu nedenle, yapıcının parametrelerini kullanarak, bu nesnenin istenen davranışını hemen ayarlayabilirsiniz.

Ancak parametreler isteğe bağlıdır, geliştirici onları belirtemez ve dizinin davranışını gerekli göründüğü gibi belirlemeye devam edebilir.

Neredeyse herhangi bir evrensel koleksiyon, bir yapıcı kullanılarak oluşturulabilir (istisna, yapılandırma nesneleri olarak hareket eden tablo parçalarıdır).

Evrensel koleksiyonlar için, bir dizin ve sayı olarak ortak kavramlar vardır. Koleksiyonun her bir elemanı bir dizin vardır. Bu durumda, endeks çizikle başlar.

Elemana başvurmak için NashimassivHaketi indekse kullanabilirsiniz, için bu indeks köşeli parantez içinde belirtilir.

Örneğin, Nashimassiv. Not, bu durumda, sistem bir dizin 3 olan bir dizi öğesi döndürür ve sırayla bu, dizinin dördüncü elemanıdır.

Bazı koleksiyonlar için aynı zamanda satır numarası kavramı da vardır. Satır numarası bir birimle başlar. Örneğin, tablo kısmı için satır numarası olarak bir özellik vardır. Hat numarasını biliyorsak ve dizinle iletişim kurmak istiyorsak, daha sonra dizin olarak, birim daha küçük satır numarasının bir değeri kullanmanız gerektiğini unutmayın.

Çizgi numarası kavramı tüm koleksiyonlardan uzaktır, ancak esas olarak kullanıcı arayüzünde görüntülenebilecek olanlarda.

Tüm koleksiyonlar için, koleksiyonun elemanlarını atlamak kullanılır. Baypas iki şekilde mümkündür: çevirmek ve her biri için döngü.

Çoğu evrensel koleksiyon için, yöntemler uygulanabilir: miktar, dizin, ekleme, ekleme, sil ve bulun.

Miktar, koleksiyonun elemanlarının sayısını döndüren bir fonksiyondur. Döngüden önce kullanılabilir İçinŞekilde sunulduğu gibi.

Endeks yöntemi, tüm koleksiyonlarda değil, ancak yalnızca unsurları açıklayabileceklerdir. Örnek olarak, getirebilirsiniz Tablolar Sahipleri.

Tablolar- Bu, belirli bir satır koleksiyonudur, çizgiler farklı değer türlerine sahip farklı sütunlar içerebilir.

Her satır bağımsız bir varlıktır. Bu satırda, bu satırdaki hoparlörlerin değerlerine erişebilirsiniz.

Endeks yöntemi, hangi endeksi bu dizgiye (yani, tablodaki hattın geçerli konumu) karşılık geldiğini belirlemenizi sağlar. Dizin değerleri sıfırla başlar.

Bu koleksiyona yeni değerler ekleme yöntemleri, pratik olarak herhangi bir evrensel koleksiyondan var. Şekil, diziyi 0 ila 10 arasındaki değerlerle doldurulacağını gösterir.

Bir diziye bir öğe eklemek için yöntemi kullanabiliriz. Ekle, Parantez içine katma değeri belirtin. Değer, listenin sonuna eklenecektir, yani. Dizi son pozisyon nedeniyle sürekli olarak artacaktır.

Koleksiyona değer eklemenizi sağlayan başka bir yöntem - yöntem Eklemek. Yöntemden farklı Ekleeklenen öğeyi eklemek için hangi yeri belirtebilirsiniz.

Sözdizimi: Eklemek (,)

İlk parametre, yeni değerin ekleneceği dizini gösterir. Şunlar. Örneğin, her bir değerin listenin başlangıcına (yukarıdaki şekilde ikinci yöntem) eklenmesi gerektiğini belirleyebiliriz.

Elemanları koleksiyondan çıkarmak için, yöntem kullanılır Silmek. Sil yönteminde, indeksle, hangi öğeyi sileceğiz gösterilir.

Sözdizimi: Kaldırmak ()
Kullanım Örneği: Nashmassiv. Sil (5);

Çizgilerin bağımsız bir varlığı temsil ettiği koleksiyonlar için (örneğin, Tablolar), Bu dizeyi silmek için dizin yöntemini de kullanabiliriz.

Neredeyse tüm koleksiyonların değerinin değerinin değeri var - Bulmak. Yöntem bulmak istediğimiz değere iletilir. Bazı koleksiyonlarda herhangi bir kısıtlama koyabilirsiniz.

Örneğin, içinde Masa zaviewybu satırları, aramak istediğiniz sütunları belirleyebilirsiniz.

Değer bulunursa, bu yöntem bir dizin veya belirli bir dize döndürür. Değer bulunmazsa, türün değeri iade edilir. Tanımsız. Dizi iadelerine uygulanır İndeksveya değer Tanımsız.

Kullanım Örneği: Tek toprak \u003d nashimassiv.night (8);

Evrensel koleksiyonlar çok hızlı bir şekilde temizlenebilir, yani. Kesinlikle tüm öğeleri silin. Bu kullanım yöntemi Açık ()hangi dizinin unsurlarını kaldırır, dizeleri Tablolarveya diğer koleksiyonlar verileri.

Dizi için ek yöntemler

Yöntem Vurban Eksi bir öğenin sayısını döndürür. Şunlar. Döngüyü kullanırsak İçin, yöntem yerine, yöntemi hemen kullanabiliriz Sınır().

Özellikle, masif sayısının değişkeni, aksi takdirde belirlenebilir:

Miktar masif \u003d nashimassiv.v.vgrai ();
Ardından, döngünün kendisini tarif ederken, bu değişkenden bir tane alınmamalıdır.

Yöntem Kurulumu, dizindeki bir diziye bir değer atamanızı sağlar.

Sözdizimi: (,) Kurmak

Misal: Nashmassiv.shorestall (2.8);

Alternatif seçenek: Nashmassiv \u003d 8;

Dizinin yöntemi kullanabilirsiniz Teslim almakKare parantez kullanımına atıfta bulunmadan endeksin değerini okumak için.

Sözdizimi: Teslim almak()

Misal: Tek intmisted \u003d nashimassiv. Dökün (2);

Alternatif seçenek: Tek intmisted \u003d devre dışı;

Evrensel Koleksiyon Yapısı

Yapı, bir dizinin yanı sıra sınırsız sayıda öğeye sahip olabilir, ancak elemanın içeriği dizisinden farklıdır.

Yapı, her bir değerinden oluşan bir çiftten oluşan bir koleksiyondur. Çiftin ilk unsuru denir Anahtarı. Çiftin ikinci elemanı - Değer vermek.

Anahtarı- Bu, değeri tanımlayan kesinlikle bir dize veri türüdür. Örneğin, Anahtarı"Kod", 113 değerine karşılık gelebilir; Anahtarı"Adı" değeri "Vasya". Veri türü kısıtlamasının değeri üst üste gelmez.

Yapı, belirli bir parametre listesi oluşturmak istiyorsak kullanmak için çok uygundur. Eğer bu Yapıaranan Outframe, sonra iki değerine dönelim: aşağıdaki gibi olacağız: Outstaffing. Kod ve olağanüstü.

Böyle bir çekicilik, tüm parametrelerin dizide belirlenmesi ve endeks üzerinde döndüğünden çok daha uygundur.

Yapı, program kodunu okunabilir hale getirir (anlaşılabilir). Yapı, bir diziden çok daha sık kullanılıyor.

Tüm algoritmalarda genellikle yeterince büyük bir miktar olduğu bazı parametreleri tanımlamak için kullanılır.

Ek olarak, prosedür ve işlev çok sayıda iletilen parametre içeriyorsa, yapı uygulanır.

Sonra, yapıda tüm parametreleri kaydetmek çok daha uygundur ve budur ve onu iletir. Şunlar. Prosedürlerin ve fonksiyonların "paketleme" parametreleri oluşur.

Ayrı olarak, şu şekilde belirtilmelidir. Anahtarıyapıda kesinlikle herhangi bir dize olmayabilir. Belirli sınırlamalar yapıldı.

Anahtarıtanımlayıcı olarak hareket etmelidir. Bu demek ki Anahtarıboşluk olmamalı ve sayılarla başlayamaz.

İzin verilebilir Anahtarı Mektup veya alt çizgi ile. Böylece, Anahtarıtanımlayıcı oluşturma gereksinimlerini karşılamalıdır.

Not, daha fazla işlemeli dizinden farklıdır. Yapıda bir yöntem var EklemekDizide ekleme için iki yöntem vardır: Eklemek(belirli bir pozisyonda) ve Ekle(listenin sonunda). Dizide, tüm unsurlar sipariş edilir.

Yapı bir tür düzensiz settir. Bu nedenle, yalnızca yerleştirme yöntemi olan yapı içindir.

Değer belirli bir konumda değil, belirtilen kümeye eklenir. Yapı için, diğer evrensel koleksiyonlar için bir endeks çekiciliği kabul edilemez.

Yapısal elemanlar ayrıca adlandırılan anahtar tarafından da adlandırılır. Bununla birlikte, her bir işin ve yapı için döngü, ancak yapısal elemanların sırasına güvenilmemelidir.

Yapı, veri tipi yapısını belirten, yeni tasarımcıyı kullanarak diğer evrensel koleksiyonlarla aynı şekilde oluşturulur.

Bir dizi gibi, yapı yapıcısı parametreleri olabilir. Şunlar. Yapının yapısını yapıcıyı kullanarak yapısını tanımlamak mümkündür.

Tüm boyutlar için öğelerin sayısını belirleyebileceğiniz bir dizinin aksine, yapıda içeriğin kendisini ayarlamak mümkündür.

Örneğin: Olağanüstü \u003d yeni yapı ("kod, isim", 133, "Vasya");

Virgülün üzerinde, önce anahtarların isimleri listelenmiştir ve daha sonra, aynı parametre sırasına göre.

Yeni değerin yapısına eklemek için bir yöntem var Eklemekyeni bir çift ekler (anahtar ve değer).

Örneğin: Outstaffing. Tutmak ("Üyelik", 3);

Yapı için, başka bir yöntem, oldukça sık kullanılan başka bir yöntemdir. Bu bir yöntemdir Emlak.

Bu yöntemle, bu yapıda, anahtarın böyle bir ada sahip olduğu bu yapıda böyle bir öğenin olup olmadığını anlayabilirsiniz.

Böyle bir unsur varsa, sistem gerçeğin değerini döndürür, aksi halde - bir yalan.

Örneğin, ifade Outstaffing. Yazılım ("Üyelik") Gerçeğin değerine eşit olacaktır. Bu yöntem, yapıyı analiz ederken oldukça sık kullanılır.

Herhangi bir evrensel koleksiyona gelince, yapının özelliklerine dizinle temyiz edilemez. Ancak yapı için dizin bir dize değeridir.

Örneğin: Bildirin (olağanüstü ["üye görünümü"]);

Bununla birlikte, yapının sipariş edilen bir nesne kümesi olmadığını unutmamalısınız, bu yüzden 0, 1, 2 indeksine yapılan itiraz kabul edilemez.

Evrensel Koleksiyon Değerleri Listesi

Kayma listesiher tür veri tipinin doğrusal bir listesidir.

Her bir eleman birkaç değerden oluşur. Şematik olarak, değerlerin listesi dört sütunla bir liste olarak gösterilebilir.

İlk sütun - işaret. Boolean veri türüne sahiptir ve kullanıcıya izin verir veya onay kutularını yerleştirir veya vurur.

Başka bir sütun, bir şekilde görsel olarak gösterebilecek bir resimdir. bu öğe. Bu satıra herhangi bir resme uyun.

Üçüncü sütun, kendi kendine kaydedilmiş değerin kendisidir, yani. Bu, herhangi bir veri türüdür ve farklı satırlarda farklı olabilir.

Dördüncü sütun bir temsildir, yani. Bu, bu değerin belirli bir dize açıklamasıdır. Bu öğeyi göreceğinizde görünüm görüntülenecektir. Aynı zamanda, temsil belirtilmemişse, sistem bu konumda bulunan öğe için sunum yapmaya çalışacaktır.

Kayma listesi- Bu, kullanıcının görsel olarak çalışabileceği nesnedir. Şunlar. Kayma listesigörüntülenebilir.

Kullanıcı bununla bir işlem yapabilir. Dışında, Kayma listesiyöntemleri kullanarak bağımsız olarak çıktı olabilir, yani Ekranda, algoritmanın bir dalında (sunucu kodu hariç) göster, böylece kullanıcı bir tür satır seçer veya herhangi bir onay kutusu seçer.

Bulmak Kayma listesisaintax Assistant'ta. Kurucu Kaydetmekparametrelenmemiş (bazı varsayılan değerler belirleyemezsiniz).

Gibi yöntemler var:

  • Eklemek (,);
  • Ekle ();
  • Numara();
  • İndeks ().

Örneğin, özel yöntemler vardır. Boşaltma (). Bu, değerlerin listesini kopyalayan bir dizi oluşturur. Örneğin:

Massivelements \u003d Listattzen. Video bilgileri ();

Ayrıca ters bir yöntem var:
Pipovets.alipputs (Massive Element);

Arama yöntemleri var:
İçerik (); NOKTA TAKİTİ ().

Bir kopyalama yöntemi var:
Kopyalama Scripture \u003d Listtipovence .copy ();
Bu method Bir kopyada bir tür değişiklik yapmak için tasarlanmıştır.

Yöntemler var:
Sıralama ();
Sortpopserts ().

Yöntemler Öğeyi seçin (,)ve Karışımlar ()kullanıcı bu pencereyi kapatıncaya kadar algoritmanın yürütülmesini durduran bir modal iletişim kutusu arayın.

Bu yöntemleri yapılandırma özelliklerinde kullanmak için Değişiklik Kullanımı Modu değere ayarlanmalı Kullanmak.

Kontrollü uygulama modülünden çağrılan bir kod örneği:

Kullanıcı modunda (modal iletişim kutusu) bu kodu görüntüler.

Altında Kayma listesiformun detayları için uygun bir veri türü olarak kullanılır. Oluşum formu için yeni bir sahne oluşturun, bunun için türünü belirleriz. Kayma listesive formda görüntüler.

Yeni bir takım oluştur Windowspodarks, Forma transfer ediyoruz ve bunun için eylem işleyicisini belirliyoruz.

Kullanıcı modunda, bir düğmeyi işleme biçimini tıklattığınızda, hediyeleri doldurun, tamamlanan liste görünecektir.

İsterseniz, listeyi düzenleyebilirsiniz: Bazı öğeler ekleyin, bazıları - Sil.

Evrensel Koleksiyon Uyumluluğu

Bu koleksiyon çok benzer Yapı. Ayrıca, yapı gibi, yazışma bir anahtar ve çok anlamdan oluşan değerler kümeleridir.

Ana fark, herhangi bir veri türünün, değere göre bir anahtar olarak gösterilebileceğidir. Bu özel olarak, uygunluk değerinin dizinle atıfta bulunması gerekir, anahtarın değeri indeksin değeri olarak belirtilir.

Bir anahtar olarak, dizgeden farklı bir veri türü olabilir. Özellikler ve yazışma ile çalışma yöntemleri pratik olarak yapısıyla aynıdır.

Uygunluk yapıcısı, yapının aksine, parametreleri belirleme yeteneğini içermez.

Kullanım Örneği:

Uyumluluk, herhangi bir iki yapıyı ilişkilendirmeniz gerektiğinde elverişli bir şekilde kullanılır. Örneğin, her bir çizelge parçasının her satırı, değer tablosundan bir dize haritalandırılmalıdır.
Bu durumda, tablo parçasının bir dizi, uygun bir anahtar olarak kullanılır ve karşılık gelen değer belirtilir.

Yönteme ek olarak koleksiyona elemanları eklerken Eklemek (,) Değeri eklemenin başka bir yolu var - bu, geleneksel bir ödev operatörünün kullanımıdır.

Örneğin: Yazışma sorunları \u003d yeni uyum;
Uyumluluk \u003d 999;

Şunlar. Koleksiyondaki eleman mevcut değilse, atama ifadesi kullanılarak eklenecektir ve varsa, güncellenecektir.

Bu yapının farkıdır.

Evrensel Koleksiyon Masası Değerleri

Tablolarkeyfi satır sayısı ve keyfi sayıda sütun olan bir tablodır. Kavşakta, herhangi bir veri türünün değerleri saklanabilir. Gerekirse, sütun yazılabilir, yani hangi sütunda hangi sütunun saklandığını belirleyin.

Hoparlörleri inepitten ayrılabilir, daha sonra farklı çizgilerdeki bir sütunda farklı tipte değerler depolanabilir.

Fark Tablolarİki boyutlu bir diziden:

  • kullanıcının çalışabileceği bu nesne (değerler tablosu görüntülenebilir, kullanıcı gelecekte onu doldurabilir, girilen veriler okunabilir);
  • hızlı arama için indeks inşaatı;
  • klonlama, tüm sütunun belirli bir değerini doldurmak, tüm sütunları bir diziye boşaltın.

Tablolarbelirli bir depolama tamponu olarak kullanılır. Tablolarbirçok sistem yöntemiyle bir parametre olarak geri döner ve kabul edilir. Değerler tablosuna bir sorgu oluşturmak mümkündür.

Yani, Tablolarbir dizi satır ve bir set sütunundan oluşur. Hem satır hem de sütunlar koleksiyonlardır.

Şunlar. Koleksiyonun içinde Tablolarİki koleksiyon daha var. Sözdizimi Asistanı'na bakın ve bulun Tablolar Sahipleri.

Desteklenen veri türleri: kendisi Tablolarhangi satırlardan oluşur. Her satır veri türü ile temsil edilir. Strfotableskendi özellikleri ve yöntemleri olan. Mevcut Koleksiyon Kolo Tablolarıayrıca belirli özelliklere sahiptir.

Önemli an! Oluşan prosedür Tablolar Sahipleri, Komple olmalı ve naster olmalı.

İle çalışmaya başlamadan önce Tabakaİçinde hangi sütunların bulunacağını belirlemek gerekir (yani, bunları oluşturun). Sözdizimi:

Ekle ()
(isteğe bağlı)
Tip: satır.
(isteğe bağlı)
Tip: Açıklama
(isteğe bağlı)
Tip: satır.
(isteğe bağlı)
Numara giriniz.

Örneğin:

Bu prosedürü aramak için komutu kullanacağız.

Açıklama Tablolarkoleksiyonun unsurları olarak, Riptablitsy.

Sadece özelliklerden oluşan sütunların aksine (isim, tür, başlık, genişlik), içinde Demirsizliksizlikher iki özellik (sütunun adına göre temas) ve yöntemler vardır (mal sahibi ile çalışmak için değeri alıp ayarlayabilirsiniz).

Eklemek yeni dize Masanın yöntemi kullanması gerekir veya Ekle ()ya Eklemek (). İkinci durumda, istediğiniz dizeyi ayarlamanız gereken hangi konumu belirtmelisiniz.

Sütunun değerini atamak için, açıdan sütunun adıyla veya indeksle (kare parantez kullanarak) temyiz ediyoruz.

Doldurmak için Tablolaraşağıdaki yöntemler kullanılabilir:

Açık () - Tüm satırları çıkarmak için Tablolar.

Doldurarak (,) - Tüm sütunları veya seçilen sütunları bir değerle doldurmanızı sağlar.
Zagocolonka (,) - Sütunu diziden yükler.
Boşaltma () - Sütunu dizideki kaldırın.

Son iki yöntem, sütunu bir değer tablosundan diğerine aktarmanız gerektiğinde kullanımı uygundur.

Kopyala (,) - temelinde izin verir mevcut tablo Yeni oluşturmak Tablolar SahipleriAynı zamanda, tüm satırları ve tüm hoparlörleri değil, yalnızca bazılarını belirtin. Geri dönüş değeri - Tablolar.

Yapıyı kopyalayabilirsin Tablolar. Bunun için karşılık gelen bir yöntem var. Kopyalama Koleksiyonları (). Boş alacağız Tablolar Sahipleri gerekli yapı ile.

İÇİNDE Masa zaviewybir yöntem var Sonuç (). Sayısal değerlerin toplandığı sütunu belirleyebilirsiniz. Skor tahtasında daha önce gösterilen kodla ilgili olarak, değeri hesaplayabilirsiniz: Tz.itog ("tutarı").

İÇİNDE Masa zaviewysayısal değerleri gruplamak için bir fırsat var (çöktü) aynı değerler Yöntemi kullanarak belirli sütunlar Çöküş (,).

Skor tahtasında daha önce gösterilen kodla ilgili olarak, değeri hesaplayabilirsiniz: TZ. Anahtar ("Drinkned", "Summ").

Tablolar Sahiplerikullanıcı ekranında gösterebilir, böylece herhangi bir işlem yapılabilir. Ama aksine Kaydetmekprogram kodundan ekrandaki tabloyu aramak imkansızdır.

Göstermek Tablolar Sahipleriekranda, bir form sahne oluşturun ve bir veri türünü atayın Tablolar.

Bundan sonra, ortaya çıkan masa görüntülenmelidir.

Daha önce oluşan algoritmanın sonundaki formun modülünde (sözleşmeleri oluşturma prosedüründe) eklenmelidir:
Anlamsızephors (TK, masa);

Evrensel Koleksiyon Ağaç Değerleri

evrensel Koleksiyon, çok benzer Tablolar Sahipleri. Tablodaki fark, ağaç dizelerinin birbirine bağlı olabileceğidir, yani. Belirli bir hiyerarşi oluşabilir.

Ayrıca ekrana da yansıtılabilir. Değerler ağacı açıkça bir satır ve sütun koleksiyonu koleksiyonundan oluşur. Ağaçta, dizeler ve sütunlar gibi iki özellik vardır.

Çizgiler birbirine tabi tutulabildiğinden, ebeveyn her satır için olduğu kadar darbeler için de belirtilebilir.

Uygun ağaç komutunu ve işleme prosedürünü oluşturun.

Oluşturmak hangi bir ebeveyn satırı ve iki ast.

Formun şartlarını oluşturun Drennen(Veri türü - eşya).

Bu detaylar için, yıl ve ay sütunları oluşturun.

İlgili maddeyi hareket ettirin Drennenformda.

Sonunda Prosedürler WoodersServer () Ekledim:

Anlamsızephors (kaba, drend);

Kullanıcı modunda ne olduğunu kontrol edin.

Düğmeyi kullanın Ekleyeni çizgiler ekleyebilirsiniz. Ayrıca bir hiyerarşi oluşturabilirler.

Değer ağacının tüm unsurlarını dolaşmak için, özyinelemeyi kullanmamız gerekecek, yani. Prosedürün kendisine meydan okuyun. Örneğin, değerlerin ağaç işlenmesi şöyle görünebilir:

Bu konuda, ilk tanıdıklarımızı evrensel koleksiyonlarıyla tamamlıyoruz.

Bir sonraki makalede, geliştiricinin hangi önemli mekanizmanın program kodundan dizine referansı basitleştirebileceğini kullanmayı düşünüyoruz.

"Dizi" kavramı uzun zamandır programlamada ve çoğu zaman, altında bir element dizisinden oluşan hafızadaki bazı yapıları anlamaktadır. 1C'deki bir dizi, evrensel değerlerin en basit olanıdır. Array K'ye ek olarak. evrensel Koleksiyonlar ilgili olmak:

  1. Değerlerin listesi (listeden gelen değerler için dizinin aksine bir görünüm, koleksiyonun sıralama ve arayüz sunumu olasılığı uygulanır);
  2. Değerler Tablosu - Değerin uzun bir açıklaması için sütunlara sahip bir koleksiyon, böyle bir yapı, bir istek gerçekleştirilerek elde edilebilir;
  3. Ağaç, bir tabloya çok benzer, takviye edilmiş bir alt yapı;
  4. Yapı - Dinamik Değişkenler Adları ve Değerleri;
  5. Uyum, yapıya benzer, sadece değişkenler dizgi temsillerine değil, birbirleriyle eşleştirilir.

Büyük Yöntemler

Bir dizi örneğinin yazılımı oluşturulması, yeni () operatörünün yardımı ile gerçekleşir (Şekil 1).

Yukarıdaki örnekten görülebileceği gibi, diziler sabit miktarda eleman olarak ve bu sınırlama olmadan oluşturulabilir.

Bir diziyle çalışma yöntemlerini tartışmaya devam etmeden önce, iki kavramla karar verelim:

  • Eleman endeksi - tek bir değerin sırası numarası olarak gösterilebilir;
  • Elemanların sayısı, koleksiyondaki unsurların sayısıdır, tanımı miktar yöntemi () kullanılarak kullanılabilir.

Bilmek önemlidir: 1C'de herhangi bir koleksiyonun değerlerinin sayısının sayılması 1 ile başlar ve indeksler C 0, yani dizi içindeki ilk eleman bir indeks bulunur. Bir yineleyici 0 ile başlamalı ve eksi elemanların sayısı 1 ile bitmelidir, aksi takdirde, pencerenin yardımı olan sistem (Şekil 2) istisnai bir durumun oluşumunu bildirecektir.

İncir. 2

Herhangi bir yapılandırma nesnesinin iş için kendi yöntemleri vardır, bir dizi istisna değildir, bunları bazı kod çözme ile listeleyin:

  • Vurban () - alabileceğiniz yöntemi kullanarak maksimum Endeks Boş bir dizinin elemanı (-1) 'e iade edilecektir;
  • Ekle () - Bu yöntemde iki parametreye sahiptir: Dizin ve Değer, Dizin bir diziyi nereye yerleştirileceğini gösterir. yeni elementdeğere eklenen boş olabilir;
  • Eklenti () - Bu ekleme yöntemi, elemanın yerleştirilmesinin yeri geçerli olmadığında, yardımıyla, yeni veriler mevcut dizinin sonunda kaydedilecektir;
  • Bul () - başarılı bir şekilde yürütülmesi durumunda, parantez içinde belirtilen değerin indeksini döndürür, aksi takdirde "tanımlanmamış" döndürür;
  • Clear () bir koleksiyondur;
  • GET () - Belirtilen dizinde dizide bulunan verileri okur, kare parantezler ile değiştirilebilir;
  • Sil () - öğeyi belirtilen dizinle kaldırır;
  • Kurulum () - Belirtilen dizi hücresindeki verilerin yerini alır.

Tek Boyutlu ve Çok Boyutlu Diziler

En basit durumda, tek boyutlu bir dizi değerler içerebilir farklı şekiller (Şekil 3)

Şekil 3.

Yukarıdaki kodun sonucu Şekil 4'te gösterilmektedir.

Şekil 4

Böylece, bir dize değerinden oluşan tek boyutlu bir dizi aldık, referans kitabına ve tarihlere bağlantılar. Aynı zamanda, öğeler eklerken, iki tane kullandık. Çeşitli metodlar Ekle () ve ekle (), ekleme yöntemini () kullandığımız tarihi eklerken, sonucumuzun biraz farklı bir görünüme sahip olması durumunda ekleyin.

Lise notlarında, iki boyutlu bir matris kavramı hakkında bir fikir verilir. Bu, her bir elemanın iki indeksine sahip (en basit durumda, seri numarası dikey ve yatay olarak) sahip olan bu kadar bir veri kümesidir. Hepsinin en iyisidir.

Benzer bir matris oluşturma, kullanılacak satır ve sütun sayısını belirleyebilirsiniz.

Diyelim ki, iki çalışanın soyadını, adından, adından bir dizisi oluşturma görevini kolaylaştırıyoruz. Kod kullanma (Şek. 5), sabit sayıda sütun ve satır içeren uygun bir dizi oluştururuz.

İncir.5

Bypass için, iki döngüye ihtiyacımız olacak, ilk döngüde bir satır dizisini atlarız, ikincide, satırı eşyalara analiz edeceğiz. Bu, her biri için "döngüsünü kullanarak yapılabilir. Dan "(Şekil 6)

Şekil 6.

Ya bir yineleyici "için ..." ile bir döngü kullanarak (Şekil 7)

Şekil 7.

Prensip olarak, belirli bir dizinin ölçümlerinin sayısı, durumunda, başka bir şey olabilir. Çok sayıda Detay seviyelerinin bir veri okuyucu oluşturmak oldukça zordur.

Dizinin kullanımı

1C'deki masiflar en sık kullanılır:

  1. İstekler ve diğer değer koleksiyonları ile çalışırken kullanılan çeşitli seçimler oluşturma;
  2. Prosedürler ve işlevler arasında parametre olarak listelerin transferi;
  3. COM teknolojisi kullanılarak bağlı harici bileşenlerle veri alışverişi.

Tabii ki, bu "dizi" nesnesinin ne kullanılabileceğinin eksiksiz bir listesidir.

1C'deki dizilerin kullanımı, işte kullanılan elemanları kolaylaştırmaya yardımcı olur.

Bu bir yazılım kümesidir. İçin hizmet vermektedir:

  • Değerlerin seçimi.
  • Sıralama. Dizideki her pozisyon bir dizin atanır. Aramayı kolaylaştırır. Ve numarasını yazarak nesneye başvurabilirsiniz.
  • Kayıtları birleştir ve kaydet.
  • Grupların ayrılması, bir alt tabaka oluşturma.
  • Bir dizi nesnenin kendisidir. Bir değişken buna bağlı olacaktır. Bireysel parçalara başvurabilir veya tamamen prosedürlerde kullanabilirsiniz. Örneğin, "N'nin çalışanlarının çalışanlarını" değer grubunu birleştirebilir ve işçilerin isimlerini ve isimlerini yapabilirsiniz.

Hadi bir analoji çizelim. Bir kitaplık hayal edin. İçindeki kitaplar farklı "hücreler" üzerine yerleştirilir. Muhasebeyi saklarsanız, her nesnenin nerede olduğunu bileceksiniz. Ve onsuz alacaksın. Ancak, eğer kitaplar, dergiler ve gazeteler masaya rastgele dağılmışsa, istenen şey arayışı gecikecektir. Buna rağmen, benzersiz koleksiyonların tüm olanaklarını yansıtmaz.

Yaratık

1C dizilerle çalışmak, yaratılışlarıyla başlar. Bir "sahneye" ihtiyacınız var - kodu gireceğiniz alan.

  1. Yapılandırıcıyı açın ("yapılandırma").
  2. "İşleme" öğesine sağ tıklayın.
  3. "Ekle" seçeneğini seçin.
  4. "İşleme1" alt menüsü görünecektir. Vurgulayın. Bu konuda bilgi çalışma alanında gösterilecektir.
  5. "Ana" sekmesinde, "adını" girin. "TestMissive" diyelim.
  6. "Formlar" bölümünü açın.
  7. Büyüteç formundaki simgeye tıklayın.
  8. "İşleme Formu" seçeneğini kontrol edin.
  9. "Hazır" üzerine tıklayın.
  10. Üç çerçeveli pencere açılır. Sağ üstte, "Komutlar" sekmesine gidin.
  11. Bir pozisyon eklemek için bir artı şeklindedir.
  12. "Takım1" belirir. Vurgulayın.
  13. "İsim" alanında adını girin. Örneğin, "Test". "Başlığa" kopyalayın.
  14. "Eylem" dizesinde, büyüteç üzerine tıklayın.
  15. "Müşteride Oluştur" ve "Tamam" maddesi.
  16. İşte kodun girilebileceği bir modül.

Bir ara sonucu görüntülemek için bir "düğme" oluşturun. Neden dizide gereklidir - biraz sonra anlayacaksınız.

  1. "Formlar" sekmesini tıklayın. O aşağı.
  2. "Komut paneline" sağ tıklayın.
  3. "Ekle - Düğme".
  4. Onunla gel. Veya varsayılan olarak verilen varsayılandan ayrılabilirsiniz.
  5. "Komut Adı" alanında, bir nokta şeklindeki piktograma tıklayın.
  6. "Test" seçeneğini seçin. Takımı farklı ararsanız, farklı bir başlık olacaktır.

Şimdi koleksiyonlarla çalışmaya devam edebilirsiniz. Ancak, 1c'de dize diziyi derhal ayrıştırabileceğinizi düşünmeyin. Daha kolay bir şeyle başlamak daha iyidir. Her ne kadar tüm fonksiyonlar sadece hatırlamanız gereken bir dizi operatördür.

  1. "Modül" sekmesini açın.
  2. İki eğik yemekten sonra giden metin (iki istifleme - "//") silinebilir. Buna benziyor "// İşleyicinin içeriğini yerleştirin." Bu bir açıklama. Kodda karıştırmamak için programcılar tarafından yazılırlar.
  3. Metninizi "Prosedür" ve "Son Kontroller" operatörleri arasında yazın.
  4. Şimdi bir dizi değer oluşturun. Şartlı olarak ifade edilecek bir değişken ile gelin. "FirstMassive" varsayalım.
  5. Nesneyle ilişkilendirilmelidir. Bunu yapmak için "İlk Eşleştirme \u003d Yeni Array ()" komutunu girin. Bu, sınırsız sayıda öğenin olabileceği bir koleksiyondur. Sabit bir boyutunuz varsa, "Yeni Dizi (5)" parantezinde komuttan sonra belirtin. Buna göre, iki boyutlu koleksiyon "yeni bir diziye (7, 5)" gibi görünecektir. Çok boyutlu setleri oluşturabilirsiniz.
  6. Girerken, uygun operatörler sunan ipuçları görünebilir.
  7. Kelimeler renkte farklılık gösterir. Değişken değişkenlerde, işlevler farklıdır.
  8. Her komuttan sonra virgülle bir nokta koyun ";". Ve kolaylık sağlamak için yeni bir paragrafla başlayın.
  9. Boş bir set ile hiçbir şey yapamazsınız. Ne de kolaylık hatası ne de çıktı ne de çizgiyi 1C'de bir diziye ayrılmaz. Bu nedenle, içine eleman eklemek gerekir.
  10. "Primationsation. Ekle (value1);". Sonra "ilk eşleştirme. Ekle (value2);" vb.
  11. Nesneler sıfırdan numaralandırılmıştır. Yani, "değeri1" değişkeni "0" indeksi atanacaktır. Koleksiyonu "Value0" ile doldurmayacaksınız.

Hepsi nedir? Ve neden gizemli "düğme"? Basit bir işlevi çalıştırmaya çalışalım.

  1. Koleksiyonun altında, "Rapor (ilk eşleştirme)" komutunu yazın; " Kare parantez içinde, elemanın endeksi belirtilir. Yani, "değeri0" adresi.
  2. Modülü biçimlendirin. Bu hatalar için bir denetimdir. Büyük bloklarda, bir şeyi dikkate alabilirsiniz: Bir virgülle bir nokta koymayın, braketi kapatmayın, bir değişken yazmak yanlıştır. Derleyici bunu gösterecektir.
  3. Yazdığınız programı başlatmak için "oynat" işareti (bir dairede üçgen) biçimindeki düğmeye basın.
  4. "Servis" üzerine tıklayın ve düğmesini seçin.
  5. Tıkla.
  6. "Value0" belirir. Bu fonksiyonun sonucudur.

Gösterilen maami basit kullanımBöylece, dizilerinin nasıl çalıştığını anlarsınız. Onlarla karmaşık ve çok seviyeli programlar oluşturabilirsiniz. Nesneleri görüntüleyin, sıralayın, tekrarları silin, bir substring kümesine bağlanın, birleştir, bölün, bölün, bilgiyi arayın. Sadece operatörleri bilmeniz gerekiyor.

Fonksiyonlar

Mevcut tüm işlevler program dizinindedir. Prensibi göstermek için birkaç tane listeleyin.

Dize 1C dizisini nasıl çevirir:

TestMissive \u003d Yeni dizi (4);
TestMissive \u003d it;
TestMissive \u003d yapıldı;
TestMissive \u003d böylece;
Strinkatest \u003d Value Industral (TestMassiv);
Rapor (Str Rash);

"Düğmesine" çıktı ve cümleyi al. Bu, büyük bir modülün parçası olabilir - bu durumda, "Rapor" operatörü gerekli değildir.

Bir satırı 1C'de bir diziye girmek için bir ayırıcıya ihtiyacınız var. Metnin paylaşacağı şartaal etiket. "Protokol" kelimesi olduğunu varsayalım. Ve "O" ayırıcısını teslim edeceğiz. "TestMissive \u003d Gönderme Karışımı (Protokol," O ") komutunu girin;" Ayrı ayrı "PR", "T", "K" ve "L" dönüşür. Buhar ayırıcı. Ve kelime birkaç subaya bölünmüştür.

Uygulamada böylece nasıl uygulanabilir. Tam adlı bir dizgin var. Ve bir pozisyon seçerken, "Soyadı", "İsim" ve "Patronimmik" alanları otomatik olarak doldurulur. Bunun için, isim üç bileşene ayrılmalıdır. "Alanı" bir ayırıcı olarak kullanın.

Tipik olarak, bunun için karmaşık bir modül kullanılır: çok sayıda operatöre sahip bir döngü. Duruma sahip siklik bloklar "if (durum), daha sonra (eylem1), aksi takdirde (Action2) ilkesine göre inşa edilmiştir. Başlangıçta, programın yapılıp yapıldığını kontrol eder. Eğer öyleyse, ilk işlevi başlatır. Değilse - ikincisi.

Döngü, dizideki her karakteri kontrol edecektir. Ayırıcı yoksa, devam eder. Ayırıcı varsa, bir substring kümesine bir değer katar. Diğer operatörler orada kullanılabilir: örneğin, "Sokrlp" - belirli işaretlerde sağa ve dizenin solunda bir azalma.

Her modül, yardımcı programın prosedürü durdurması için "bitirmesi" gerekir. "Eğer" bu operatör "sona ererse" döngüsünde. Koşullar olmadan döngüde - "Endscle". Her işlev ayrı olarak tamamlanmalıdır.

Arama ve sıralama

Koleksiyonlarda çok fazla miktarda veri olabilir. Onları arayacağınızı ve sıralamayı öğrenmeniz gerekir.

Bir aramayı 1C'de bir arayışı başlatmak için, "Bul" operatörünü kullanın. İstediğiniz değeri ve görsel olarak bulabilirsiniz. Ancak yüzlerce element varsa, ek bir modül oluşturmak ve alt rutini çalıştırmak daha iyidir. Basit bir fonksiyon örneğini göster. Ama herhangi bir blokta uyacak.

Masif \u003d yeni dizi (3);
Masif \u003d "telefon";
Masif \u003d "dizüstü bilgisayar";
Masif \u003d "bilgisayar";
İndex \u003d Arms. İnit ("telefon");
\u003c\u003e Dizini belirsizse, o zaman
Rapor ("Arama Tamamlandı" + Massive [Dizin]);

Ve "son operatörü" koymayı unutmayın.

Koleksiyon örneğin dosyalanır. Üç değerden oluşan bir dizi oluşturduk. Ve küçük bir döngü yaptı. Yardımcı program uygun bir öğe bulamazsa, "undefined" mesajını verir. Eğer algıladıysa, sonuç gösterilecektir.

Masif 1C'yi sıralama, büyük miktarda veri ile çalışırken basitçe vazgeçilmezdir. Onlarda, bir şekilde gezinmeniz gerekir. Onları kesin bir düzende yerleştirmek daha iyidir. "VashMassiv" koleksiyonunuz olduğunu varsayalım. "Sırayla" getirmek

Test listesi \u003d yeni konaklama listesi;
Test listesi. Özelleştirmeler (VashMassiv);
Test listesi. Farkındalık çeşitliliği (yön ayrılması.
Vashmissive \u003d Test listesi. Video kapanması ();

"Sert" yerine "inen" koyabilirsiniz. Sonuç ayrıca değerler tablosuna da boşaltılabilir:

TestTlack \u003d yeni tablolar;
Test. Sütun. Adres ("sütun");
Test-Tellack. Drinkscutton (VashMassiv, "Sütun");
TesttyTable.Sudentable ("Sütun Azalan");
VashMissive \u003d TestyTable. Maglipchatka ("sütun")

Ayrıca karmaşık sıralama yöntemleri vardır: "Kabarcık", "Hızlı", "Çalkalayıcı", "özyineleme". Çok düzeyli ve uzun algoritmalar var.

Tablolar ve Listeler

Farklı koleksiyon türleri arasında bilgi gönderilebilir. 1C'ye değerler tablosundaki bir diziye aktarmak için:

Massivetef \u003d yeni dizi;
Büyük ve ekleyin ("akıllı telefon");
Masif, ekleyin ("tablet");
Mastigref. Addly ("telefon");
Tablest \u003d yeni tablolar;
TabletVest. CoolClocks. Addly ("cep telefonları");
TabletVeve. Addly ();
TabletVeve. Addly ();
TabletVeve. Addly ();
Tabletböceği. Suggloadcallion (masif, "cep telefonları");
Tablo çöp tenekesinden her satır için
Rapor (String. MOBS);

Sonunda bir döngü sonlandırma operatörü koymayı unutmayın.

1C dizisine, değerlerin listesine dönüştürün tamamen basittir. Sadece bir koleksiyondan diğerine veri yüklemek yeterlidir.

Latentps \u003d yeni konaklama listesi ();
Loves.bublications (Vashviv);

Programlamada, bir sorun çözülebilir farklı yollar. Ve 1c istisna değildir. Doğrusal algoritmalar, döngüler, koşullu döngüler, bir metre ile döngüler. Birçok seçenek. Dizide gezinmek için, 1C'de bazı becerilere ihtiyacınız var.

1C dizisi bir dizi bazı değerlerdir. Bir dizideki değerler çeşitli tiplerde olabilir.

Örneğin, çeşitli fonksiyonların gerçekleştirilmesinin bir sonucu olarak bir dizi elde edilebilir. Boşaltma ()değer Tabloları; Bir dizi şeklinde, vurgulanmış çizgiler alabilirsin dinamik listesi vb. Bir dizi ve "manuel olarak" oluşturabilirsiniz.

Bir dizi oluşturma

1. İstenilen boyutun bir dizisini nasıl oluşturulur?

pMAAssive \u003d Yeni dizi (4); // 4 unsur dizisi oluşturdu

PMASIV [0] \u003d "Biz";
Pmaassive [1] \u003d "Oluşturuldu";
Pmaassive [2] \u003d "yeni";
PMASIV [3] \u003d "dizi";

2. Boş bir dizi nasıl oluşturulur ve buna eleman ekleme

pmaassive \u003d yeni dizi; // boş bir dizi oluşturdu

// dizinin öğelerinin değerlerini

Pmaossive Ekle ("biz");


3. Çok boyutlu bir dizi nasıl oluşturulur.

Bu sorunu iki boyutlu bir dizinin örneğinde düşünün, çünkü büyük boyutlar dizileri çok daha az sıklıkla kullanıldığından ve çalışmalarının mekanizması iki boyutludan farklı değildir.

pmaassive \u003d yeni dizisi (4, 2); // 4x2'lik bir dizi oluşturdu.

// Her kelimeyi numaralandırılan dizinin öğelerinin değerlerini yapın

Pmaassive [0] [0] \u003d "1.";
PMASIV [0] [1] \u003d "Biz";
PMASIV [1] [0] \u003d "2.";
Pmaassive [1] [1] \u003d "Oluşturuldu";
Pmaassive [2] [0] \u003d "3.";
PMASIV [2] [1] \u003d "Çok boyutlu";
Pmaassive [3] [0] \u003d "4.";
Pmaassive [3] [1] \u003d "dizi";

4. Sabit bir dizi nasıl oluşturulur

Sabit bir dizi, normalden değişemez. Böyle bir dizinin öğelerinin değerlerini ekleyemez, silemez veya değiştiremezsiniz.

Sabit dizi normalden elde edilebilir:

pmaassive \u003d yeni dizi;

Pmaossive Ekle ("biz");
Pmaossive Ekle ("oluşturuldu");
Pmaossive Yeni ekle");
Pmaossive Ekle ("dizi");

FMassiv \u003d Yeni FixherMassiv (PMAAssive); // sabit bir dizi oluşturdu

Dizilerle çalışmak için fonksiyonlar

Tek boyutlu bir dizi örneğinde fonksiyonların çalışmalarını düşüneceğiz. paassivYukarıda oluşturulan ve 4 elementten oluşan:

  1. "Oluşturuldu"
  2. "yeni"
  3. "Dizi".
Vurban ()

Bir dizi öğesinin en büyük indeksini alır. Her zaman birim başına dizi öğeleri sayısından daha azdır.

İndex \u003d pmaassive. VURBAN () // 3;

Yapıştırmak ()

Belirtilen dizinle bir dizi öğesine bir değer ekler. Array'ın sonraki unsurları kaydırıldı

pmaossive Eklemek (3, "yeni anlam") // şimdi dizi 5 unsurdan oluşur

Ekle () işlevi

Dizinin sonunda yeni bir öğe oluşturur ve belirli bir değer ekler.

pmaossive Ekle (".") // dizinin beşinci elemanlarına nokta eklendi;

İşlev numarası ()

Dizi öğelerinin sayısını döndürür.

pmaossive Numara() ; // dört

Function () bul

Dizide belirtilen bir öğe arıyorum. Buluyorsa, endeksini döndürür. Bulamazsa, iade eder Tanımsız.

İndex \u003d pmaassive. Bul ("dizi"); // 3.
İndex \u003d pmaassive. Bulmak( "Değil olmayan dize"); // Tanımsız

Açık ()

Tüm değerleri diziden kaldırır.

pmaossive Açık ();

İşlev Al ()

Dizinindeki dizinin değerini alır. Aynı görev yoluyla çözülebilir.

Değer \u003d pmaassive. Get (3) // "dizi"
Değer \u003d pmassiv [3]; // "Dizi"

Fonksiyonu Kaldır ()

Bir dizi öğesini dizinle siler

pmaossive Kaldır (3);

Yüklemek ()

Bir dizi öğesinin değerini dizinle ayarlar. Benzer şekilde çalışır.

pmaossive Kurulum (3, "dizi!");
PMASIV [3] \u003d "Dizi!" ;

Bir diziyi nasıl atarsınız

Dizinin tüm öğelerini indeksi belirlemeden dolaşabilirsiniz:

PMAAssive döngüsünden her element için
Rapor (elementMassive);
Endcycle;

Bypass çevresinde indeksi kullanabilirsiniz:

Dizin \u003d 0 PMAAssive tarafından. Vurbani () döngüsü
Rapor (PMASIV [Dizin]);
Endcycle;

Çok boyutlu dizinin etrafında nasıl gidilir?

Çok boyutlu dizi aynı döngüler kullanılarak yapılır (yukarıya bakınız), ancak bir döngü diğerine yatırım yapılması gerekir.

MmaSsive Döngüsünden Her Element1 için
Element1 Döngüsünden Her Element2 için
Rapor (Element1);
Endcycle;
Endcycle;

Veya dizinlerin kullanımı ile.

mmaassive \u003d yeni dizi (3, 4);

EMassiv tarafından Endeks1 \u003d 0 için. Vurbani () döngüsü
İndex2 için MmaAssive [index1]. Vurbani () döngüsü
Rapor (MMassiv [index1] [index2]);
Endcycle;
Endcycle;

Massiva'yı sıralama

Diziyi sıralamak için, türü olan yardımcı nesneye ihtiyacımız var. Kayma listesi.

Liste değeri \u003d yeni konaklama listesi; // bir değer listesi oluştur
Liste. İndirme (PMASIV); // dizideki değerlerin listesine yükleyin
Liste. Sıralama (direktör. Kapak); // artarak sırala
Liste. Sıralama (talimatlar. Decestion); // veya inen
PMAAssive \u003d liste. Boşaltma (); // sıralanmış değerleri diziye geri kaldırın

İki masanın karşılaştırılması

Karşılaştırma işlevinin açıklamasına gitmeden önce, aynı sayıda elemanınız varsa ve karşılık gelen dizilerin eşyaları eşitse, dizilerin aynı olarak kabul edildiğini kabul ediyoruz. Sonra karşılaştırma için kullanabilirsiniz sonraki İşlev (Bu arada, bu işlev zaten bazı tipik konfigürasyonlarda mevcuttur):

Karşılaştırma Fonksiyonu (Array1, Array2)

Eğer bir dizi1 ise. Numara()<> Array2. Miktar () sonra
Dönüş yalanları; // diziler eşit değil, unsurları karşılaştırmak hiç mantıklı değil.
Bitti;

Dizin \u003d 0 için array1 ile. Vurbani () döngüsü
Eğer bir dizi1 [index] ise<> Array 2 [Endeks] Sonra
Dönüş yalanları; // Bu elemanlar eşit değil, daha sonra diziler eşit değildir
Bitti;
Endcycle;

Gerçeğin geri dönüşü; // Buraya ulaştılarsa, diziler eşittir
Sonlandırma

İşlev 2'ye göre 2 karşılaştırıldı. İşlev değeri döndürür DoğruDiziler eşitse ve YanlışEğer eşit değilse.