İçeriğe geç
Educora
Başlangıç16 dk5 / 14

Koşullar, döngüler, prosedürler ve fonksiyonlar

`Если … ИначеЕсли … КонецЕсли` ile karar ver, üç tür döngüyle işleri tekrarla, kodu parametreli prosedür ve fonksiyonlara böl, `Знач` ve `Экспорт` sözcüklerini anla.

Kendini test et
Bu derste öğreneceklerin
  • Çok dallı koşullar ve ?() ifadesi yazmak
  • Göreve uygun döngüyü seçmek, Прервать ve Продолжить kullanmak
  • Prosedür ve fonksiyon yazmak, parametrelerin nasıl aktarıldığını açıklamak

Bir mağaza 200 manatın üzerindeki alışverişlere %5, 500 manatın üzerindekilere %10 indirim yapıyor. Faturada yüz satır var ve her satırın tutarı hesaplanmalı. Bu tür görevler için programın karar vermesi (koşullar), işleri tekrarlaması (döngüler) ve kodu parçalara bölmesi (prosedürler ve fonksiyonlar) gerekir.

Koşullar

1C
СуммаПокупки = 250;

Если СуммаПокупки >= 500 Тогда
    Скидка = 10;
ИначеЕсли СуммаПокупки >= 200 Тогда
    Скидка = 5;
Иначе
    Скидка = 0;
КонецЕсли;

Сообщить("Скидка: " + Скидка + "%");

Остаток = 0;
Статус = ?(Остаток > 0, "В наличии", "Нет в наличии");
Сообщить(Статус);
Beklenen çıktı
Скидка: 5%
Нет в наличии
İngilizce sözdizimindeki karşılıklar: Если = If, Тогда = Then, ИначеЕсли = ElsIf, Иначе = Else, КонецЕсли = EndIf.

Dallar yukarıdan aşağıya kontrol edilir ve ilk doğru koşul çalışır; bu yüzden 250 için %5 çıktı. ?(Koşul, A, B) kısa biçimdir: koşul doğruysa A'yı, değilse B'yi döndürür. Karmaşık koşullar И, ИЛИ, НЕ ve parantezlerle kurulur: Если (Сумма > 100 И НЕ Оплачено) ИЛИ Срочно Тогда.

Üç tür döngü

DöngüİngilizcesiNe zaman
Для Н = 1 По 10 Цикл … КонецЦиклаFor … To … Do … EndDotekrar sayısı önceden bilinir
Для Каждого Эл Из Коллекция ЦиклFor Each … In … Dobir koleksiyonun tüm öğelerini dolaşmak
Пока Условие Цикл … КонецЦиклаWhile … Do … EndDokoşul doğru olduğu sürece tekrarlamak
1C
Для Н = 1 По 10 Цикл
    Если Н % 2 = 1 Тогда
        Продолжить;   // нечётные пропускаем
    КонецЕсли;
    Если Н > 8 Тогда
        Прервать;     // выходим из цикла
    КонецЕсли;
    Сообщить(Н);
КонецЦикла;

Города = СтрРазделить("Bakı,Gəncə,Şəki", ",");
Для Каждого Город Из Города Цикл
    Сообщить(Город);
КонецЦикла;
Beklenen çıktı
2
4
6
8
Bakı
Gəncə
Şəki
Продолжить (Continue) sonraki adıma geçer, Прервать (Break) döngüyü hemen bitirir.
Mevduat ne zaman ikiye katlanır?

1000 manatlık bir mevduat her yıl %10 büyüyor. Kaç yıl sonra tutar ilk kez 2000 manata ulaşır ya da onu aşar? Пока (While) döngüsüyle çöz.

Çözümü göster
Вклад = 1000; Лет = 0;
Пока Вклад < 2000 Цикл Вклад = Вклад * 1.1; Лет = Лет + 1; КонецЦикла;
7 yıl sonra: 1000 · 1,1⁷ ≈ 1948,7 < 2000.
8 yıl sonra: 1000 · 1,1⁸ ≈ 2143,6 ≥ 2000.
Cevap: 8 yıl. Tekrar sayısı önceden bilinmediği için burada en uygun döngü Пока'dır.

Prosedürler ve fonksiyonlar

Prosedür (Процедура … КонецПроцедуры) bir işlem yapar, fonksiyon (Функция … КонецФункции) ise Возврат (Return) ile bir değer döndürür. Parametrelerin varsayılan değerleri olabilir. Экспорт (Export) sözcüğü prosedürü diğer modüllerden çağrılabilir yapar, örneğin: РаботаСЦенами.СуммаСоСкидкой(200, 5).

1C
Функция СуммаСоСкидкой(Сумма, ПроцентСкидки = 0) Экспорт
    Возврат Сумма - Сумма * ПроцентСкидки / 100;
КонецФункции

Процедура Удвоить(Значение)
    Значение = Значение * 2;
КонецПроцедуры

Процедура УдвоитьКопию(Знач Значение)
    Значение = Значение * 2;
КонецПроцедуры

Процедура Тест()
    Сообщить(СуммаСоСкидкой(200, 5));
    Сообщить(СуммаСоСкидкой(80));
    А = 5;
    Удвоить(А);
    Б = 5;
    УдвоитьКопию(Б);
    Сообщить(А);
    Сообщить(Б);
КонецПроцедуры
Beklenen çıktı
190
80
10
5
Varsayılan olarak parametreler referansla aktarılır (А değişti); Знач (Val) ise bir kopya aktarır (Б değişmedi).

Prosedürler ve fonksiyonlar her zaman bir modülde bulunur. Modülün türü kodun ne zaman ve nerede çağrılacağını belirler; bu yüzden yeni bir prosedür yazmadan önce ona doğru “evi” seç:

  • Ortak modül (Общие модули) — tüm konfigürasyonun paylaştığı kod; çağrı: ИмяМодуля.Процедура().
  • Nesne modülü — belirli bir katalog öğesinin veya belgenin olayları (yazma, işleme).
  • Yönetici modülü — tüm tür için fonksiyonlar: Документы.РасходТовара.ПечатнаяФорма().
  • Form modülü — bir formun olayları ve komutları; bir sonraki modülde ayrıntılı inceleyeceğiz.
  • Uygulama ve oturum modülleri — programın başlangıcı ve oturum parametreleri.

Önemli noktalar

  • Если … ИначеЕсли … Иначе … КонецЕсли: ilk doğru dal çalışır; ?(K, A, B) kısa biçimdir.
  • Döngüler: Для … По, Для Каждого … Из, Пока; hepsi КонецЦикла ile biter.
  • Прервать döngüden çıkar, Продолжить sonraki adıma geçer.
  • Fonksiyon Возврат ile değer döndürür; prosedür döndürmez.
  • Parametreler referansla aktarılır; Знач kopya aktarır, Экспорт prosedürü diğer modüllere açar.

Kendini test et

10 soru. Her doğru cevap XP kazandırır.

1 / 10
?(3 > 5, "A", "B") ifadesi ne döndürür?