Algoritma ve özellikleri.

Algoritma- icracıya, ilk verilerden istenen sonuca giden son komut dizisini yürütmesi için açık ve kesin bir talimat.

Algoritma uygulayıcısı- bu, algoritmanın kontrol etmek üzere tasarlandığı nesne veya konudur.

Sanatçının komut sistemi (SCS), sanatçının yürütebileceği komutların tamamıdır.

Algoritmanın özellikleri: anlaşılabilirlik, doğruluk, sonluluk.

Netlik: algoritma yalnızca uygulayıcının SKI'sında bulunan komutlardan oluşur.

Kesinlik: Kontrol algoritmasının her komutu, icracının kesin eylemini belirler.

Bitirme (veya performans): Algoritmanın yürütülmesi, sınırlı sayıda adımda bir sonuca yol açmalıdır.

Sanatçının ortamı: Sanatçının faaliyet gösterdiği ortam.

İcracının belirli bir eylem dizisi her zaman bazılarına uygulanır. kaynak verileri. Örneğin, bir yemek tarifine göre bir yemek hazırlamak için uygun ürünlere (verilere) ihtiyacınız vardır. Bir matematik problemini çözmek için (ikinci dereceden bir denklemi çözmek), ilk sayısal verilere (denklem katsayıları) ihtiyacınız vardır.

Tam veri seti: görevi çözmek için gerekli ve yeterli veri kümesi (istenen sonucu elde etmek).

Algoritma yazma yöntemleri.

En yaygın yöntemler şunlardır: grafik, sözlü ve formda bilgisayar programları.

Grafik yöntemi belirli grafik sembollerinin - blokların kullanımını içerir.

Blok adı Blok tanımı İçerik
İşlem
Veri işleme
Karar verme
Belirli bir koşulun doğruluğunu veya yanlışlığını kontrol etmek için mantıksal bir blok
Veri aktarımı
Bilgi girişi veya çıkışı
Başla dur
Programın başlangıcı veya sonu
Değişiklik
Döngüsel bir sürecin organizasyonu - döngü başlığı

Blokların toplanması sözde oluşturur algoritma akış şeması.

Sözlü kayıt Algoritmalar öncelikle icracı insana odaklanır ve talimatların farklı şekilde kaydedilmesine izin verir, ancak kaydın oldukça doğru olması gerekir.

Formda algoritmalar yazarken programlar bilgisayarlar programlama dillerini kullanır - kullanım talimatlarını ve kurallarını kodlamak için sistemler. Algoritmaların program biçiminde yazılması, yüksek derecede resmileştirme ile karakterize edilir.

Miktarlarla çalışmak için algoritmalar. Temel algoritmik yapılar.

Miktar, adı, değeri ve türü olan tek bir bilgi nesnesidir.

Miktarlarla çalışmaya yönelik algoritmaların uygulayıcısı bir kişi veya bilgisayar gibi özel bir teknik cihaz olabilir. Böyle bir sanatçının sahip olması gerekir hafıza miktarları depolamak için.

Miktarlar sabit veya değişken olabilir.

Sabit değer (sabit) Algoritmanın yürütülmesi sırasında değeri değişmez. Bir sabit, kendi değeriyle (10, 3,5 sayıları) veya sembolik bir adla (sayı) belirtilebilir.

Değişken değer algoritmanın yürütülmesi sırasında değeri değiştirebilir. Bir değişken her zaman sembolik bir adla (X, A, R5 vb.) belirtilir.

Miktar türü bir değerin alabileceği değerler kümesini ve o değerle gerçekleştirilebilecek eylemler kümesini tanımlar. Temel büyüklük türleri: tam sayı, gerçek, sembolik, mantıksal.

İfade- miktarlara ilişkin eylem sırasını tanımlayan bir kayıt. Bir ifade sabitleri, değişkenleri, işlem işaretlerini ve işlevleri içerebilir. Örnek:

A+B; 2*X-Y; K + L - günah(X)

Atama komutu, bir değişkenin yeni bir değer almasıyla sonuçlanan bir uygulayıcının komutudur. Komut Formatı:

değişken adı>:=ifade>

Atama komutu şu sırayla gerçekleştirilir: önce hesaplanır, ardından elde edilen değer bir değişkene atanır.

Örnek. A değişkeninin değeri 6 olsun. A:= 2 * A - 1 komutunu çalıştırdıktan sonra A değişkeni hangi değeri alacaktır?
Çözüm. 2*A - 1 ifadesinin A=6 ile hesaplanması 11 sayısını verecektir. Bu da A değişkeninin yeni değerinin 11 olacağı anlamına gelir.

Bundan sonra şu varsayılacaktır: miktarlarla çalışmak için algoritmaların uygulayıcısı bir bilgisayardır. Komutlardan herhangi bir algoritma oluşturulabilir atamalar, giriş, çıktı, dallanma Ve döngü.

Giriş komutu- değişken değerlerin giriş aygıtları (örneğin bir klavye) aracılığıyla ayarlandığı bir komut.

Örnek: giriş A - A değişkeninin değerinin bilgisayar klavyesinden girilmesi.

Çıkış komutu: Bir miktarın değerini bir bilgisayar çıkış cihazında (monitör gibi) görüntüleyen bir komut.

Örnek: çözüm X - X değişkeninin değeri ekranda görüntülenir.

Şube komutanlığı- bazı koşullara bağlı olarak algoritmayı iki yola böler; daha sonra algoritmanın yürütülmesi genel devamına gider. Dallanma tam veya eksik olabilir. Blok diyagramlarda ve Algoritmik dilde dallanmanın açıklaması:

Burada seri, bir veya daha fazla sıralı komut anlamına gelir; kv - dallanmanın sonu.

Döngü komutu bazı koşullara bağlı olarak bir dizi komutun (döngü gövdesi) tekrar tekrar yürütülmesini sağlar.

Ön koşullu döngü- döngü koşulu doğrulanıncaya kadar yürütülmesi tekrarlanan bir döngü:

Parametreli döngü- tamsayı parametresi başlangıçtan (In) finale (Ik) kadar tüm değerler kümesinden geçerken döngü gövdesinin tekrar tekrar yürütülmesi:

Örnek.İki basit kesir verilmiştir. Bölünmelerinin sonucu olan bir kesir elde etmek için bir algoritma oluşturun.
Çözüm. Cebirsel formda problemin çözümü şöyle görünür:
a/b: c/d = a*d/b*c = m/n
Başlangıç ​​verileri dört tamsayı niceliktir: a, b, c, d. Sonuç m ve n olmak üzere iki tam sayıdır.

alg kesirleri bölme
bozulmamış a, b, c, d, m, n
girişi başlat a, b, c, d
m:=a*d
n:=b*c
çıktı "Sayılayıcı =", m
çıktı "Payda =", n
koi

Lütfen metnin (herhangi bir karakter dizisi) çıktısını almak için metnin komutta tırnak işaretleri içinde yazılması gerektiğini unutmayın. çözüm.

  1. Efimova O., Morozov V., Ugrinovich N. Bilgisayar biliminin temelleri ile bilgisayar teknolojisi kursu. Lise için ders kitabı. - M .: LLC "AST Yayınevi"; ABF, 2000
  2. Bilgisayar bilimlerinde problem kitabı atölyesi. 2 cilt/ed. I. Semakina, E. Henner. - M .: Temel Bilgi Laboratuvarı, 2001.
  3. Ugrinovich N. Bilgisayar bilimi ve bilgi teknolojileri. 10-11. Sınıflar - Yüksek Lisans: Temel Bilgi Laboratuvarı, JSC "Moskova Ders Kitapları", 2001

"Algoritmalar ve uygulayıcılar" konusundaki görevler ve testler

  • Sanatçı Yönetimi Ressamı - Algoritmalar 6. sınıf

    Dersler: 4 Ödevler: 9 Testler: 1

  • 2 Ödev: 9 Test: 1

Sevgili öğrenci!

"Algoritmalar ve Yürütücüler" Konusunun bilgisi, öncelikle programlamanın daha ileri düzeyde çalışılması için gereklidir. QBasic programlama dili, programlama eğitiminin temeli olarak seçildi. Bu yaklaşım henüz Rusya Federasyonu'ndaki çoğu ortaokulda yaygın olarak kullanılmadığından, Visual Basic'i veya başka herhangi bir nesne yönelimli programlama dilini kursumuza dahil etme fikrinden vazgeçtik. Ayrıca nesne yönelimli programlama klasik Dos programlama ilkelerine dayanmaktadır.

Kursumuz genel eğitim programı için tasarlanmıştır. Üniversitelere bilgi teknolojisi giriş sınavlarına hazırlanırken, belirli bir üniversitede programlama eğitiminin özelliklerini öğrenmeniz gerekir. Bazı durumlarda, örneğin "Diziler" gibi bir dizi konunun derinlemesine incelenmesi gerekir. Programlama literatürünü incelerken buna dikkat etmelisiniz; belki de sınavlara hazırlanmak için şu anda çoğu yüksek öğretim kurumunda yayınlanan metodolojik önerileri kullanmalısınız.

Sonuç olarak, programlamada "akrobasi" başarısının ancak sürekli pratik yaparak ve belirli uygulamalı problemleri çözerek mümkün olabileceğini not ediyoruz.

7.1. Algoritma nedir?

"Algoritma" adı, Orta Asyalı matematikçi el-Khwarizmi - Algorithmi'nin adının Latince biçiminden gelmektedir. Algoritma, bilgisayar bilimi ve matematiğin temel kavramlarından biridir.

7.2. "Algoritma Yürütücüsü" nedir?

Sanatçı şu şekilde karakterize edilir:

    • Çarşamba;
    • temel eylemler;
    • komuta sistemi;
    • retler.

Çarşamba(veya ortam) icracının “yaşam alanıdır”. Örneğin okul ders kitabındaki sanatçı Robot için çevre sonsuz bir hücresel alandır. Duvarlar ve boyalı hücreler de çevrenin bir parçasıdır. Ve onların konumu ve Robotun konumu belirli bir değer belirliyor çevrenin durumu.

Komuta sistemi. Her uygulayıcı, komutları yalnızca kesin olarak belirlenmiş belirli bir listeden (yürütücü komutları sistemi) yürütebilir. Her komut için belirtilmelidir uygulanabilirlik koşulları(komutun hangi çevresel durumlarda yürütülebileceği) ve tanımlandığı komut yürütme sonuçları. Örneğin, Çalışmanın üzerinde duvar yoksa "yukarı" Çalışma komutu yürütülebilir. Bunun sonucu Robotun bir hücre yukarıya doğru yer değiştirmesidir.

Komutu çağırdıktan sonra, icracı karşılık gelen işlemi gerçekleştirir. temel eylem .

Başarısızlıklar Bir komut, kendisi için kabul edilemez bir ortam durumunda çağrılırsa, yürütücü hataları meydana gelir.

Bilgisayar biliminde algoritmaların evrensel uygulayıcısı bilgisayar.

7.3. Algoritmaların hangi özellikleri vardır?
Algoritmaların temel özellikleri aşağıdaki gibidir:

Anlaşılabilirlik sanatçı için - yani Algoritmanın uygulayıcısı onu nasıl çalıştıracağını bilmelidir.

Ayrıklık(süreksizlik, ayrılık) - yani. Algoritma, bir problemi çözme sürecini basit (veya önceden tanımlanmış) adımların (aşamaların) sıralı bir şekilde yürütülmesi olarak temsil etmelidir.

kesinlik- yani Algoritmanın her kuralı açık ve net olmalı ve keyfiliğe yer bırakmamalıdır. Bu özellik sayesinde, algoritmanın yürütülmesi doğası gereği mekaniktir ve çözülen problem hakkında herhangi bir ek talimat veya bilgi gerektirmez.

Verimlilik (veya uzuv). Bu özellik, algoritmanın problemin sonlu sayıda adımda çözülmesine yol açması gerektiğidir.

Kütle karakteri. Bu, sorunu çözmeye yönelik algoritmanın genel bir biçimde geliştirildiği anlamına gelir; yalnızca başlangıç ​​verilerinde farklılık gösteren belirli bir sorun sınıfına uygulanabilir olmalıdır. Bu durumda başlangıç ​​verileri algoritmanın uygulanabilirlik alanı olarak adlandırılan belirli bir alandan seçilebilmektedir.

Algoritma kavramı

Algoritmik diller

Algoritmalar. Algoritma.

Algoritma kavramı, bilgisayar bilimi için bilgi kavramı kadar temeldir. Bu yüzden onu anlamak önemlidir.

İsim "algoritma" Orta Asya'nın en büyük matematikçisinin adının Latince biçiminden geliyor Muhammed ibn Musa el-Harezmi(Alhorithmi), 783-850'de yaşadı. "Hint Sayımı Üzerine" adlı kitabında, artık her okul çocuğunun aşina olduğu, Arap rakamlarını kullanarak doğal sayıları yazmanın kurallarını ve bunları bir "sütun" içinde çalıştırmanın kurallarını özetledi. 12. yüzyılda bu kitap Latinceye çevrilerek Avrupa'da yaygınlaştı.

Bir kişi her gün belirli kurallara uyma, çeşitli talimat ve talimatları yerine getirme ihtiyacıyla karşı karşıya kalır. Örneğin trafik ışığı olmayan bir kavşakta karşıdan karşıya geçerken öncelikle sola bakmalısınız. Araba yoksa yarı yolda geçin, araba varsa onlar geçene kadar bekleyin, sonra yarı yolda geçin. Bundan sonra sağa bakın ve araba yoksa yolun sonuna kadar geçin, arabalar varsa onlar geçene kadar bekleyin ve ardından yolun sonuna kadar geçin.

Matematikte tipik problemleri çözmek için eylem sırasını tanımlayan belirli kurallar kullanırız. Örneğin, kesirlerin eklenmesi, ikinci dereceden denklemlerin çözülmesi vb. Kurallar. Tipik olarak, herhangi bir talimat ve kural, belirli bir sırayla gerçekleştirilmesi gereken bir dizi eylemdir. Bir sorunu çözmek için neyin verildiğini, neyin alınması gerektiğini, bunun için hangi eylemlerin ve hangi sırayla yapılması gerektiğini bilmeniz gerekir. İstenilen sonuçları elde etmek için veriler üzerinde gerçekleştirilecek eylemlerin sırasını belirleyen bir reçete bir algoritmadır.

Algoritma- Olası bir icracının, bir problemin çözümünü sınırlı sayıda adımda elde etmek için belirli bir dizi eylemi gerçekleştirmesi için önceden belirlenmiş, açık ve kesin bir talimat.

Bu kelimenin matematiksel anlamında bir tanım değil, daha ziyade Tanım sezgisel bir algoritma kavramı, özünü ortaya koyuyor.

Algoritma kavramı yalnızca matematiğin temel kavramlarından biri değil, aynı zamanda modern bilimin de temel kavramlarından biridir. Üstelik bilgisayar bilimi çağının ilerlemesiyle birlikte algoritmalar uygarlığın en önemli faktörlerinden biri haline geliyor.

Algoritma uygulayıcısı- bu, algoritma tarafından belirlenen eylemleri gerçekleştirebilen bazı soyut veya gerçek (teknik, biyolojik veya biyoteknik) sistemdir.

Sanatçı şu şekilde karakterize edilir:

  • Çarşamba;
  • temel eylemler;
  • komuta sistemi;
  • retler.

Çarşamba(veya ortam) icracının “yaşam alanıdır”. Örneğin okul ders kitabındaki sanatçı Robot için çevre sonsuz bir hücresel alandır. Duvarlar ve boyalı hücreler de çevrenin bir parçasıdır. Ve onların konumu ve Robotun konumu belirli bir değer belirliyor çevrenin durumu.


Komuta sistemi. Her uygulayıcı, komutları yalnızca kesin olarak belirlenmiş belirli bir listeden (yürütücü komutları sistemi) yürütebilir. Her komut için belirtilmelidir uygulanabilirlik koşulları(komutun hangi çevresel durumlarda yürütülebileceği) ve tanımlandığı komut yürütme sonuçları. Örneğin, Çalışmanın üzerinde duvar yoksa "yukarı" Çalışma komutu yürütülebilir. Bunun sonucu Robotun bir hücre yukarıya doğru yer değiştirmesidir.

Komutu çağırdıktan sonra, icracı karşılık gelen işlemi gerçekleştirir. temel eylem.

Başarısızlıklar Bir komut, kendisi için kabul edilemez bir ortam durumunda çağrılırsa, yürütücü hataları meydana gelir.

Bilgisayar biliminde algoritmaların evrensel uygulayıcısı bilgisayar.

| § 2.1. Algoritmalar ve uygulayıcılar

Ders 14
§ 2.1. Algoritmalar ve uygulayıcılar

Anahtar Kelimeler:

Algoritma
Algoritmanın özellikleri (ayrıklık; anlaşılırlık; kesinlik; etkililik; kitlesel karakter)
vasi
icracının özellikleri (çözülecek görev aralığı; ortam; çalışma modu; komuta sistemi)
algoritmanın resmi olarak yürütülmesi

2.1.1. Algoritma kavramı

Günlük yaşamda, ders çalışırken veya işte her insan, değişen karmaşıklığa sahip çok sayıda sorunu çözer. Karmaşık problemlere çözüm bulmak için çok fazla düşünmeyi gerektirir; Bir kişi basit ve tanıdık görevleri düşünmeden otomatik olarak çözer. Çoğu durumda, her sorunun çözümü basit aşamalara (adımlara) bölünebilir. Bu görevlerin çoğu için (yazılım kurulumu, dolap montajı, web sitesi oluşturma, teknik bir cihazı çalıştırma, İnternet üzerinden uçak bileti satın alma vb.), adım adım talimatlar zaten geliştirilmiş ve sunulmuştur. uygulanması istenilen sonuca yol açabilir.

Örnek 1.“İki sayının aritmetik ortalamasını bulma” problemi üç adımda çözülür:

1) iki sayıyı düşünün;
2) planlanan iki sayıyı ekleyin;
3) ortaya çıkan miktarı 2'ye bölün.

Örnek 2.“Telefon hesabınıza para yatırın” görevi aşağıdaki adımlara ayrılmıştır:

1) ödeme terminaline gidin;
2) bir telekom operatörü seçin;
3) bir telefon numarası girin;
4) girilen numaranın doğruluğunu kontrol edin;
5) fatura alıcısına bir banknot yerleştirin;
6) hesabınıza yatırılan parayla ilgili mesajı bekleyin;
7) bir çek alın.

Örnek 3.“Komik bir kirpi çizin” problemini çözmenin aşamaları grafiksel olarak sunulmuştur:


Aritmetik ortalamayı bulmak, telefon hesabına para yatırmak ve kirpi çekmek ilk bakışta tamamen farklı süreçlerdir. Ancak ortak bir özellikleri var: Bu süreçlerin her biri, bir dizi kısa talimatla açıklanıyor ve bunlara sıkı sıkıya bağlı kalmak, gerekli sonucu elde etmenizi sağlıyor. Örnek 1-3'te verilen talimat dizileri, karşılık gelen problemleri çözmeye yönelik algoritmalardır. Bu algoritmaların uygulayıcısı bir kişidir.

Algoritma, belirli bir hesaplama dizisinin (örnek 1) veya matematiksel olmayan nitelikteki adımların (örnek 2-3) bir açıklaması olabilir. Ancak her durumda, geliştirilmeden önce başlangıç ​​koşullarının (başlangıç ​​verileri) ve neyin elde edileceğinin (sonuç) açıkça tanımlanması gerekir. Bir algoritmanın, bir problemin çözümünde, ilk veriden istenen sonuca giden adımlar dizisinin bir açıklaması olduğunu söyleyebiliriz.

Genel olarak algoritmanın çalışma diyagramı aşağıdaki gibi gösterilebilir (Şekil 2.1).

Pirinç. 2.1. Algoritmanın genel şeması

Algoritmalar okulda öğretilen sayıların toplama, çıkarma, çarpma ve bölme kuralları, birçok gramer kuralı, geometrik yapı kuralları vb.'dir.

“Algoritmayla çalışmak” (193576), “En büyük ortak bölen” (170363), “En Küçük Ortak Kat” (170390) animasyonları, Rus dili ve matematik derslerinde çalışılan bazı algoritmaları hatırlamanıza yardımcı olacaktır (http://sc.edu. ru /).

Örnek 4. Bazı algoritmalar, bir karakter zincirinden aşağıdaki gibi yeni bir zincirin elde edilmesine yol açar:

1. Orijinal karakter dizisinin uzunluğu (karakter olarak) hesaplanır.
2. Orijinal zincirin uzunluğu tek ise sağdaki orijinal zincire 1 sayısı eklenir, aksi takdirde zincir değişmez.
3. Semboller çiftler halinde değiştirilir (birincisi ikinciyle, üçüncüsü dördüncüyle, beşincisi altıncıyla vb.).
4. Ortaya çıkan zincirin sağına 2 sayısı eklenir.

Ortaya çıkan zincir algoritmanın sonucudur.

Yani, eğer başlangıç ​​zinciri A#B ise, algoritmanın sonucu #A1B2 zinciri olacaktır ve eğer başlangıç ​​zinciri ABC@ ise, o zaman algoritmanın sonucu BA@B2 zinciri olacaktır.

2.1.2. Algoritma uygulayıcısı

Her algoritma belirli bir sanatçı için tasarlanmıştır.

Yürütücü, belirli bir dizi komutu yürütebilen bir nesnedir (kişi, hayvan, teknik cihaz).

Ayırt etmek resmi ve gayri resmi sanatçılar. Resmi bir icracı her zaman aynı komutu aynı şekilde yerine getirir. Resmi olmayan bir uygulayıcı, bir komutu farklı şekillerde yerine getirebilir.

Resmi icracıları daha ayrıntılı olarak ele alalım. Resmi icracılar son derece çeşitlidir, ancak her biri için aşağıdaki özellikler belirtilebilir: çözülmesi gereken görevlerin kapsamı (amaç), çevre, komuta sistemi ve çalışma modu.

Çözülmesi gereken görev aralığı. Her sanatçı belirli bir dizi sorunu çözmek için yaratılmıştır - sembol zincirleri oluşturmak, hesaplamalar yapmak, düzlemde çizimler oluşturmak vb.

Sanatçı ortamı. İcracının faaliyet gösterdiği alan, ortam, koşullar genellikle söz konusu icracının ortamı olarak adlandırılır. Herhangi bir algoritmanın kaynak verileri ve sonuçları her zaman algoritmanın amaçlandığı uygulayıcının ortamına aittir.

Yürütücü komut sistemi. Bir icracıya ayrı bir tamamlanmış eylemi gerçekleştirme talimatına komut denir. Bazı uygulayıcılar tarafından yürütülebilecek tüm komutların kümesi, bu uygulayıcının (SKI) komut sistemini oluşturur. Algoritma, belirli bir icracının yetenekleri, başka bir deyişle onu yürütecek icracının komut sistemi dikkate alınarak derlenir.

Performans çalışma modları. Çoğu sanatçı için doğrudan kontrol ve program kontrol modları sağlanır. İlk durumda, icracı bir kişiden gelen komutları bekler ve alınan her komutu hemen yerine getirir. İkinci durumda, icracıya önce tam bir komut dizisi (program) verilir ve ardından tüm bu komutları otomatik olarak yürütür. Bazı sanatçılar yalnızca belirtilen modlardan birinde çalışır.

Sanatçı örneklerine bakalım.

Örnek 5. Sanatçı Kaplumbağa bilgisayar ekranında hareket ederek çizgi şeklinde bir iz bırakıyor.

Kaplumbağa komut sistemi aşağıdaki komutlardan oluşur:

1. İleri n (burada n bir tam sayıdır) - Kaplumbağanın hareket yönünde n adım hareket etmesine neden olur - başının ve vücudunun baktığı yönde;
2. Sağ m (m bir tam sayıdır) - Kaplumbağanın hareket yönünde saat yönünde t derecelik bir değişikliğe neden olur.
Kayıt Tekrarla k [<Команда1> <Команда2> ... <Командаn>] parantez içindeki komut dizisinin k kez tekrarlanacağı anlamına gelir.

Kaplumbağa aşağıdaki algoritmayı tamamladıktan sonra ekranda hangi şeklin görüneceğini düşünün.
Tekrar 12 [Sağ 45 İleri 20 Sağ 45]

Örnek 6. Yürütme komutları sistemi Bilgisayar, numaralara atanan iki komuttan oluşur:

1 - 1'i çıkarın
2 - 3 ile çarpın

Birincisi sayıyı 1 azaltır, ikincisi ise sayıyı 3 kat artırır. Algoritma yazarken, kısa olması açısından yalnızca komut numaraları belirtilir. Örneğin, algoritma 21212, aşağıdaki komut dizisi anlamına gelir:

3 ile çarpın
1 çıkar
3 ile çarp
1 çıkar
3 ile çarp

Bu algoritmayı kullanarak 1 sayısı 15'e dönüştürülecektir:

((1 3 - 1) 3 - 1) 3 = 15.

Örnek 7. Performer Robot damalı bir alanda hareket eder, bitişik hücreler arasında duvarlar olabilir. Robot, alanın hücreleri boyunca hareket eder ve numaralarla atanan aşağıdaki komutları gerçekleştirebilir:


1 Yukarı
2 - aşağı
3 - sağ
4 sol

Bu tür komutların her birini gerçekleştirirken Robot, belirtilen yönde bitişik bir hücreye hareket eder. Hücreler arasında bu yönde bir duvar varsa Robot yok edilir.

Robot, A hücresinden hareket etmeye başlayarak 32323 numaralı komut dizisini (burada sayılar komut numaralarını göstermektedir) yürütürse ne olacak? Robotun duvarlara çarptığında çökmeden A hücresinden B hücresine geçebilmesi için hangi komut dizisini uygulaması gerekir?

Algoritma geliştirirken:

1) problemde ortaya çıkan nesneler tanımlanır, nesnelerin özellikleri, nesneler arasındaki ilişkiler ve nesnelerle olası eylemler belirlenir;
2) ilk veriler ve gerekli sonuç belirlenir;
3) ilk verilerden sonuca geçiş sağlanarak, icracının eylem sırası belirlenir;
4) eylemlerin sırası, icracının komut sisteminde yer alan komutlar kullanılarak kaydedilir.

Algoritmanın, algoritma uygulayıcısının faaliyetinin bir modeli olduğunu söyleyebiliriz.

2.1.3. Algoritma özellikleri

Her talimat, talimat dizisi veya eylem planı bir algoritma olarak değerlendirilemez. Her algoritma mutlaka aşağıdaki özelliklere sahiptir: ayrıklık, anlaşılırlık, kesinlik, etkililik ve kitlesel karakter.

Ayrık özellik bir sorunu çözme yolunun ayrı adımlara (eylemlere) bölünmesi anlamına gelir. Her eylemin karşılık gelen bir talimatı (komutu) vardır. Yalnızca bir komutu yürüttükten sonra yürütücü bir sonraki komutu yürütmeye başlayabilir.

Anlaşılabilirlik özelliği Algoritmanın yalnızca icracının komut sisteminde yer alan komutlardan, yani icracının algılayabileceği ve buna göre gerekli eylemleri gerçekleştirebileceği komutlardan oluştuğu anlamına gelir.

Kesinlik özelliği algoritmanın, anlamı icracı tarafından belirsiz bir şekilde yorumlanabilecek komutlar içermediği anlamına gelir; Bir sonraki komutu çalıştırdıktan sonra, icracı için bir sonraki komutun hangi komutu çalıştıracağının belirsiz olduğu durumlar kabul edilemez. Bu sayede algoritmanın sonucu, başlangıç ​​verileri kümesi tarafından benzersiz bir şekilde belirlenir: eğer algoritma aynı başlangıç ​​verileri kümesine birkaç kez uygulanırsa, çıktı her zaman aynı sonucu üretir.

Performans Özelliği algoritmanın sonlu, muhtemelen çok büyük sayıda adımdan sonra bir sonuç sağlaması gerektiği anlamına gelir. Bu durumda sonuç, yalnızca sorunun ifadesiyle belirlenen cevap değil, aynı zamanda bu sorunu herhangi bir nedenle çözmeye devam etmenin imkansızlığına ilişkin sonuç olarak da kabul edilir.

Kütle karakterinin özelliği Algoritmanın, belirli bir problem sınıfından herhangi bir problemi çözmek için uygulanma olasılığını sağlaması gerektiği anlamına gelir. Örneğin, ikinci dereceden bir denklemin köklerini bulma algoritması herhangi bir ikinci dereceden denklem için geçerli olmalı, caddeyi geçme algoritması caddenin herhangi bir yerinde uygulanabilir olmalı, ilaç hazırlama algoritması herhangi bir miktarda ilaç hazırlamaya uygulanabilir olmalı, vesaire.

Örnek 8. Bazı n doğal sayılarını aşmayan tüm asal sayıları bulma yöntemlerinden birini ele alalım. Bu yönteme, onu öneren antik Yunan bilim adamı Eratosthenes'in (M.Ö. 3. yüzyıl) anısına "Eratosthenes eleği" adı verilmiştir.

Belirli bir n sayısından büyük olmayan tüm asal sayıları bulmak için Eratosthenes'in yöntemini izleyerek aşağıdaki adımları uygulamanız gerekir:

1) 2'den n'ye (2, 3, 4, ..., n) kadar tüm doğal sayıları arka arkaya yazın;
2) çerçeve 2 - ilk asal sayı;
3) bulunan son asal sayıya bölünebilen tüm sayıları listeden silin;
4) ilk işaretlenmemiş sayıyı bulun (işaretli sayılar, üzeri çizili sayılar veya bir çerçeve içine alınmış sayılardır) ve onu bir çerçeveye yerleştirin - bu başka bir asal sayı olacaktır;
5) işaretlenmemiş numara kalmayıncaya kadar 3. ve 4. adımları tekrarlayın.

Birleşik Dijital Eğitim Kaynakları Koleksiyonunda yayınlanan “Eratosthenes Eleği” (180279) animasyonunu kullanarak asal sayıları bulma yöntemi hakkında daha görsel bir fikir edinebilirsiniz.

Dikkate alınan eylem dizisi, aşağıdaki özellikleri sağladığı için bir algoritmadır:

ayrıklık- asal sayıları bulma süreci adımlara bölünmüştür;
anlaşılırlık- her komut, bu algoritmayı uygulayan bir 8. sınıf öğrencisi için anlaşılabilir;
kesinlik- her komut, icracı tarafından açık bir şekilde yorumlanır ve yürütülür; komutların uygulanma sırasına ilişkin talimatlar vardır;
verimlilik- belirli sayıda adımdan sonra sonuca ulaşılır;
kütle karakteri- eylemlerin sırası herhangi bir doğal sayı n için geçerlidir.

Algoritmanın dikkate alınan özellikleri, algoritmanın daha kesin bir tanımını vermemize olanak tanır.

Algoritma, başlangıç ​​verisinden gerekli sonuca giden, ayrıklık, anlaşılabilirlik, kesinlik, etkililik ve kitlesel karakter özelliklerine sahip, belirli bir icracıya yönelik bir dizi eylemin açıklamasıdır.

2.1.4. İnsan faaliyetlerinin otomasyonu imkanı

Algoritma geliştirmek genellikle kişinin derin bilgi birikimine, ustalığa ve çok fazla zamana sahip olmasını gerektiren emek yoğun bir iştir.

Hazır bir algoritma kullanarak bir sorunu çözmek, yalnızca uygulayıcının verilen talimatları sıkı bir şekilde takip etmesini gerektirir.

Örnek 9.Üçten fazla sayıda nesne içeren bir yığından, iki oyuncu sırayla bir veya iki nesne alır. Kazanan, bir sonraki hamlesinde kalan tüm eşyaları alabilen kişidir.

İlk oyuncunun kesinlikle kazanmasını sağlayacak bir algoritma düşünelim.

1. Eğer yığındaki nesne sayısı 3'ün katı ise, rakibinize yol verin, aksi halde 1 veya 2 nesne alarak, kalan nesne sayısı 3'ün katı olacak şekilde oyuna başlayın.
2. Bir sonraki hamlenizde, her seferinde rakibinizin aldığı nesne sayısını 3'e ekleyin (kalan nesne sayısı 3'ün katı olmalıdır).

İcracı, yaptığı şeyin anlamını derinlemesine araştıramayabilir ve neden bu şekilde davrandığının nedenini bilmeyebilir, başka türlü davranamaz, yani resmi olarak hareket edebilir. Sanatçının resmi olarak hareket etme yeteneği, insan faaliyetini otomatikleştirme olanağı sağlar. Bunun için:

1) bir problemi çözme süreci bir dizi basit işlem olarak sunulur;
2) bu işlemleri algoritmada belirtilen sırayla gerçekleştirebilen bir makine (otomatik cihaz) oluşturulur;
3) kişi rutin faaliyetlerden kurtarılır, algoritmanın yürütülmesi otomatik bir cihaza emanet edilir.

EN ÖNEMLİ

İcracı- belirli bir dizi komutu yürütebilen bazı nesneler (kişi, hayvan, teknik cihaz).

Resmi bir icracı her zaman aynı komutu aynı şekilde yerine getirir. Her resmi uygulayıcı için şunları belirtebilirsiniz: çözülmesi gereken görev aralığı, ortam, komuta sistemi ve çalışma modu.

Algoritma- İlk verilerden gerekli sonuca götüren, ayrıklık, anlaşılabilirlik, kesinlik, etkililik ve kitlesel karakter özelliklerine sahip, belirli bir icracıya yönelik eylem dizisinin açıklaması.

Oyuncunun hareket etme yeteneği resmenİnsan faaliyetlerini otomatikleştirme yeteneği sağlar.

Sorular ve görevler

1. Ders kitabının elektronik ekinde yer alan paragrafa ilişkin sunum materyallerini okuyun. Sunum paragraf metninde yer alan bilgileri tamamlıyor mu? Sunumunuza hangi slaytları ekleyebilirsiniz?

2. Algoritma ne denir?

3. “Reçete” kelimesinin eşanlamlılarını seçin.

4. Okulda okuduğunuz algoritmalardan örnekler verin.

5. Algoritmanın uygulayıcısı kim olabilir?

6. Resmi icracıya bir örnek verin. Bir kişinin resmi bir icracı olarak hareket ettiği duruma bir örnek verin.

7. “Bilgisayar” uygulayıcısı tarafından gerçekleştirilen görev aralığını ne belirler?

8. Bilgisayarınızdaki kelime işlemciyi yürütücü olarak düşünün. Bu sanatçı ve çevresi tarafından çözülen görevlerin çeşitliliğini tanımlayın.

9. Takım nedir, icracı komutları sistemi?

10. Bir robot aşağıdaki işlevleri hangi komutlarla gerçekleştirmelidir:

a) mağazadaki kasiyer;
b) bir kapıcı;
c) güvenlik görevlisi mi?

11. Algoritmanın temel özelliklerini listeleyin.

12. Bir algoritmada herhangi bir özelliğin bulunmaması nelere yol açabilir? Örnekler ver.

13. Bir algoritmayı resmi olarak yürütebilmenin önemi nedir?

14. Sayı dizisi aşağıdaki algoritmaya göre oluşturulur: dizinin ilk iki sayısı 1'e eşit alınır; Dizideki her bir sonraki sayı, önceki iki sayının toplamına eşit olarak alınır. Bu dizinin ilk 10 terimini yazın. Bu diziye ne ad verildiğini öğrenin.

15. Belirli bir algoritma, aşağıdaki gibi bir karakter dizisinden yeni bir zincir elde eder. Önce orijinal harf zinciri yazılır, ardından orijinal harf zinciri ters sırayla yazılır, ardından orijinal zincirde son sırada yer alan harften sonra Rus alfabesinde takip eden harf yazılır. Orijinal zincirin son sırasında “I” harfi varsa bir sonraki harf olarak “A” harfi yazılır. Ortaya çıkan zincir algoritmanın sonucudur. Örneğin, orijinal karakter zinciri “HOUSE” ise, algoritmanın sonucu “DOMMODN” zinciri olacaktır. “COM” karakter dizisi verilmiştir. Algoritmayı bu zincire uygulayıp daha sonra algoritmayı yaptığı işin sonucuna tekrar uygularsanız elde edilecek karakter zincirinde kaç tane “O” harfi olacaktır?

16. İnternette Eratosthenes algoritmasının adımlarını gösteren bir animasyon bulun. 50'yi aşmayan tüm asal sayıları bulmak için Eratosthenes'in algoritmasını kullanın.

17. Turtle'ın algoritmayı yürütmesinin sonucu (bkz. örnek 5) ne olacaktır?

18. Hesap Makinesi yürütücüsü için en fazla 5 komut içeren bir algoritma yazın (bkz. örnek 6):

a) 3 numaradan 16 numarayı almak;
b) 1 numaradan 25 numarayı almak.

19. Performans komutları sistemi Yapıcı, numaralarla atanan iki komuttan oluşur:

1 - 2'yi ata
2 - 2'ye böl

Bunlardan birincisine göre sağdaki sayıya 2 eklenir, ikincisine göre sayı 2'ye bölünür. İcracı 22212 algoritmasını çalıştırırsa 8 sayısı nasıl dönüştürülecek? Bu uygulayıcının komut sisteminde, 1 sayısının 16 sayısına dönüştürüleceği bir algoritma oluşturun (algoritma en fazla 5 komut içermemelidir).

20. Robot icracısının (örnek 7) algoritma 3241'i yürüttükten sonra geri dönebilmesi için hangi hücrede bulunması gerekir?

Ücretsiz yazılım:

KuMir sistemi - Eğitim dünyaları seti (program arşivini web sitesinden indirin) veya KuMir sayfasını ziyaret edin ((http://www.niisi.ru/kumir/)

Algoritma kavramı. Algoritma uygulayıcıları. Algoritmaların özellikleri

Algoritma kavramı, bilgisayar bilimi için bilgi kavramı kadar temeldir. Bu kavram oldukça geniş olduğundan ve bilimin, teknolojinin ve günlük yaşamın çeşitli alanlarında kullanıldığı için algoritmanın birçok farklı tanımı vardır.

Algoritma, bir nesnenin başlangıç ​​durumundan son durumuna dönüştürülme sürecini tanımlayan açık ve kesin bir eylemler dizisidir.

Algoritma, belirli bir problemi çözmeyi amaçlayan, belirli bir sanatçıya yönelik bir dizi eylemin kesin bir açıklamasıdır.

Sanatçı Algoritma bir kişi (yemek tarifleri, çeşitli talimatlar, matematiksel hesaplamalar için algoritmalar) veya teknik bir cihaz olabilir. Çeşitli makineler (bilgisayarlar, endüstriyel robotlar, modern ev aletleri) resmi uygulayıcılar algoritmalar. Resmi bir icracının çözülmekte olan problemin özünü anlaması gerekli değildir, ancak bir dizi komutu doğru bir şekilde yürütmesi gerekir.

Algoritma çeşitli şekillerde yazılabilir (sözlü açıklama, grafik açıklama - blok diyagram, programlama dillerinden birinde program vb.). Bir program, yazılmış bir algoritmadır.Programlama dili .

Bir algoritma (program) oluşturmak için bilmeniz gerekir:

    eksiksiz bir başlangıç ​​görev verileri seti (nesnenin başlangıç ​​durumu);

    algoritmayı oluşturmanın amacı (nesnenin son durumu);

    icracının komut sistemi (yani icracının anlayabileceği ve uygulayabileceği bir dizi komut).

Ortaya çıkan algoritma (program) aşağıdaki özelliklere sahip olmalıdır:

    ayrıklık (algoritma ayrı adımlara - komutlara bölünmüştür);

    belirsizlik (her komut, icracının mümkün olan tek eylemini belirler);

    açıklık (tüm algoritma komutları, yürütücü komutları sistemine dahil edilmiştir);

    verimlilik (uygulayıcının sorunu sınırlı sayıda adımda çözmesi gerekir).

Çoğu algoritma aynı zamanda şu özelliğe de sahiptir: kütle karakteri (aynı algoritmayı kullanarak birçok benzer sorunu çözebilirsiniz).

Algoritmaları tanımlamanın yolları

Yukarıda aynı algoritmanın farklı şekillerde yazılabileceği belirtilmişti. Algoritmayı yazabilirsiniz Doğal lisan. Tarifleri, talimatları vb. bu şekilde kullanırız. Resmi icracılara yönelik algoritmaları kaydetmek için özel Programlama dilleri. Herhangi bir algoritma tanımlanabilir grafiksel olarak blok diyagram şeklinde. Bunun için özel bir notasyon sistemi geliştirilmiştir:

Tanım

Tanım

Notlar

Algoritmanın başlangıcı ve sonu

Veri girişi ve çıkışı.

Veri çıkışı bazen farklı şekilde anılır:

Aksiyon

Hesaplamalı algoritmalarda bu, atamayı belirtmek için kullanılır

Çatal

Çatal - dalları ve döngüleri uygulamak için gerekli bir bileşen

Bir parametreyle döngü başlatmak

Tipik süreç

Programlamada - prosedürler veya alt rutinler

Bloklar arası geçişler

İki miktarın blok diyagram biçiminde toplanmasına yönelik algoritmanın açıklamasına bir örnek:

Algoritmanın bu şekilde tanımlanması insanlar için en görsel ve anlaşılır yöntemdir. Bu nedenle, resmi uygulayıcıların algoritmaları genellikle ilk önce bir akış şeması biçiminde geliştirilir ve ancak daha sonra programlardan birinde bir program oluşturulur.Programlama dilleri .

Tipik algoritmik yapılar

Programcının atipik algoritmik yapıları tasarlama ve kullanma fırsatı vardır ancak bu gerekli değildir. Ne kadar karmaşık olursa olsun herhangi bir algoritma üç tipik yapıya dayalı olarak geliştirilebilir: takip, dallanma ve tekrarlama. Bu durumda yapılar ardı ardına yerleştirilebilir veya iç içe geçebilir.

Doğrusal yapı (aşağıda)

En basit algoritmik yapı doğrusal. İçinde tüm işlemler kaydedildikleri sıraya göre bir kez gerçekleştirilir.

Dallanma

İÇİNDE tam dallanma Mantıksal ifadenin (koşul) değerine bağlı olarak, icracının eylemleri için iki seçenek vardır. Koşul doğruysa yalnızca ilk dal yürütülür, aksi takdirde yalnızca ikinci dal yürütülür.

İkinci dal boş olabilir. Bu yapıya denir eksik dallanma veya bypass.

Birkaç daldan bir yapı inşa edebilirsiniz " seçenek”(çoklu dallanma), birkaç koşula bağlı olarak ikiden değil, sanatçının eylemleri için daha fazla sayıda seçenek arasından seçim yapacaktır. Yalnızca bir dalın yürütülmesi önemlidir - böyle bir yapıda koşulların sırası önemli hale gelir: birkaç koşul karşılanırsa, o zaman bunlardan yalnızca biri çalışacaktır - üstten ilki.

Döngü (tekrarlama)

Döngüaynı komut dizisinin birden fazla tekrarını düzenlemenize olanak tanır- buna döngünün gövdesi denir. Çeşitli döngüsel algoritma türlerinde tekrar sayısı, mantıksal bir ifadenin (koşulun) değerine bağlı olabilir veya yapının kendisinde sabit kodlanmış olabilir. Döngüler var: “ önce», « Hoşçakal», bir sayaçla döngüler."Until" ve "while" döngülerinde, mantıksal bir ifade (koşul) döngü gövdesinden önce gelebilir ( ön koşullu döngü) veya döngüyü sonlandırın ( sonkoşullu döngü).

Döngüler« önce» - döngünün gövdesinin tekrarı koşul sağlanana kadar:

Döngüler « Hoşçakal» - döngünün gövdesinin tekrarı koşul yerine getirildiği sürece(doğru):

Sayaçlı döngüler(parametreli)– döngünün gövdesinin belirli sayıda tekrarlanması:

Yardımcı algoritma (alt program, prosedür)

Yardımcı algoritma ana algoritmadan tekrar tekrar erişilebilen bir modüldür. Yardımcı algoritmaların kullanılması, algoritmanın boyutunu önemli ölçüde azaltabilir ve gelişimini basitleştirebilir.

Karmaşık algoritmalar geliştirme yöntemleri

Karmaşık algoritmalar geliştirmenin iki yöntemi vardır:

Sıralı görev detaylandırma yöntemi(“yukarıdan aşağıya”) orijinal karmaşık görevin alt görevlere bölünmesidir. Alt görevlerin her biri ayrı ayrı ele alınır ve çözülür. Alt görevlerden herhangi biri karmaşıksa bunlar da alt görevlere bölünür. Süreç, alt görevler temel görevlere indirgenene kadar devam eder. Bireysel alt problemlerin çözümleri daha sonra orijinal problemin çözümü için tek bir algoritmada toplanır. Yöntem yaygın olarak kullanılmaktadır çünkü birçok programcının aynı anda genel bir algoritma geliştirmesine ve yerel alt problemleri çözmesine olanak sağlamaktadır. Bu hızlı yazılım geliştirme için gerekli bir durumdur.

Montaj yöntemi(“aşağıdan yukarıya”), tipik sorunların çözümünü uygulayan çeşitli yazılım modüllerinin oluşturulmasından oluşur. Karmaşık bir problemi çözerken, programcı geliştirilen modülleri yardımcı algoritmalar (prosedürler) olarak kullanabilir. Birçoğunda programlama sistemleri Karmaşık bir algoritmanın oluşturulmasını önemli ölçüde basitleştiren ve hızlandıran benzer modül setleri zaten mevcuttur.

Algoritmalar ve kontrol süreçleri

Kontrol - Bazıları yönetici, diğerleri yönetilen nesnelerin amaçlı etkileşimi.

En basit durumda, böyle iki nesne vardır:

Bilgisayar bilimi açısından kontrol eylemleri kontrol bilgisi olarak kabul edilebilir. Bilgi komutlar şeklinde iletilebilir.Önceden belirlenmiş bir hedefe giden bir nesneyi kontrol etmek için bir dizi komut denir. kontrol algoritması. Bu nedenle kontrol nesnesine kontrol algoritmasının uygulayıcısı denilebilir. Ele alınan örnekte, kontrol nesnesi, kontrol nesnesinde olup bitenlere "bakmadan" çalışır ( açık döngü kontrolü açık. Başka bir kontrol şeması, kontrol nesnesinde meydana gelen süreçler hakkındaki bilgileri dikkate alabilir:

Bu durumda kontrol algoritması, bu bilgiyi analiz edebilecek ve kontrol nesnesinin durumuna bağlı olarak sonraki eylemleri hakkında kararlar verebilecek kadar esnek olmalıdır ( geri bildirim kontrolü). Bu kontrol şemasına denir kapalı.

Yönetim süreçleri daha detaylı inceleniyor ve tartışılıyor sibernetik. Bu bilim, toplumdaki, doğadaki ve teknolojideki çok çeşitli yönetim süreçlerinin benzer şekilde gerçekleştiğini ve aynı ilkelere tabi olduğunu iddia eder.

Konunun başlangıcına