Her türlü algoritma. Algoritma yazmanın yazılım yolu. Blok diyagramların dilinde çeşitli algoritmik yapıların açıklaması

  • 07.05.2019

Programlama, başka birinin bilmediği dili kullanarak bir şeyler yazmaktır. Bu bilgi alanının gelişmesiyle, geliştiriciler daha da ileri gitti ve Rusça'da nasıl göründüğünü bile anlamadan "bir şey" yazmayı öğrendi. Yeni başlayanlar, birçok kitaplığı kullanarak doğrudan C ++ veya php'de kod yazmayı öğrenirler ve ana dillerinde sesleri nasıl yarattıklarını gerçekten anlamazlar. Algoritma, bu "bir şeyi" açıklığa kavuşturmak ve anlaşılır kılmakla ilgilenir.

Algoritma

Bilgisayar bilimlerindeki çoğu algoritma örneği, hatta üniversitelerde bile vasat düzeyde incelenir. Sürekli olarak daha fazla yazmak yaygın bir uygulamadır. karmaşık kod... Deneyimsiz programcıların bir programlama dilinde hemen program yazmaya başlama girişimleri, temel bilgilere zar zor hakim olmuş bir gazetecinin çalışmasıyla karşılaştırılabilir. yabancı Dil, bir dergi için makale yazar. Kaçınmak benzer bir sorunÇalışmanızı önce kendi ana dilinizde kaydetmeye başlarsanız, düzenleyebilir, hataları kontrol edebilir ve son olarak da istediğiniz dile çevirebilirsiniz.

Bu yaklaşımın avantajı, esas olarak geliştiricinin zamanın sadece %25'inde çeviriyle meşgul olacağı ve yeni bir dilde bir program yazarken %100'ünü yabancı bir dille çalışarak geçireceği gerçeğinde yatmaktadır. Aynı zamanda kendini sıkışık koşullarda bulacak ve yürütemeyecek. iyi kontrol Hatalar ve projenin revizyonu için.

Algoritma, bir bilgisayarda bir proje uygularken, çözüm sürecini yerel ve anlaşılır dil birbirine bağlı algoritmaların bir diyagramı şeklinde, fikirleri analiz edin ve hataya karşı daha dayanıklı ve daha verimli çalışacak en yüksek kaliteli ve iyi düşünülmüş kodu elde edin.

algoritma kavramı

Bilgisayar sorunları nasıl çözeceğini bilmiyor, sadece gerçekleştirebiliyor. basit eylemler gösterilen sırada. "Ya hesap makinesi?" - sen sor. O da istenen sonuçları elde etmek için belirli algoritmaları kullanan bir program oluşturan programcıların emeklerinin meyvesidir. Soyut bir durumu ele alalım. Denklem çözme yöntemlerine aşina olmayan bir kişinin ikinci dereceden üçlü terimin köklerini bulmanız istenirse ne yapmalısınız?

Açıkçası, ikinci dereceden denklemleri çözmek için eğitilmesi gerekiyor. Bu, aşağıdaki şemaya göre gerçekleşir:

  1. Bir çözüm seçin.
  2. Seçilen yöntemin tüm ayrıntılarını inceleyin.
  3. Müstakbel icracıya ilk iki noktayı anlayacağı bir dilde açıklayın.

Ardından, ikinci dereceden denklemi çözmek için sanatçıya görevler vermek mümkün olacaktır. Ve eğer ilk iki adım basit ve anlaşılırsa - tüm çözümler ilgili literatürde açıklanmıştır, o zaman üçüncü adım zordur.

Problemin çözümünde kullanılan fikirlerin icracı tarafından sizin anladığınız şekilde algılanmasını nasıl sağlayabilirsiniz? Burada bir algoritma kavramına yaklaşıyoruz. Uygulama, birine bir şeyi doğru bir şekilde açıklamak için aşağıdaki adımların izlenmesi gerektiğini göstermektedir:

  • ilk verileri belirleyin (ikinci dereceden denklemin değişkeni ve katsayıları);
  • çözüm sürecini icracı için benzersiz olarak bilinen bileşenlere ayırın (ayırt edici formüller ve kökleri bulma);
  • adımların sırasını belirtin (önce diskriminantı, ardından kökleri hesaplayın);
  • çözümün tamamlanmış olduğu kabul edilen koşulu belirleyin (değişkenlerin yerine denklemde değiştirerek bulunan kökleri kontrol edin);
  • çözümün sonucunun tam olarak ne olması gerektiğini belirtin (kökler gerçek sayılar kümesine aittir).

açıklanan adımlar kümesi Genel anlamda ve bir algoritmadır. Bu nedenle, bir algoritma, gerçekleştirilen eylemlerin ve sıralarının açık bir şekilde anlaşılmasına izin veren belirli kurallar kullanılarak yazılmış bir görevi çözmenin bir yolu olarak anlaşılabilir. Aşağıda, algoritmalar ve görev örnekleri daha ayrıntılı olarak ele alınacaktır.

Algoritmanın temel özellikleri

Ayrıklık. Bir sorunu çözme süreci, her zaman, belirli bir yürütme sırasına sahip, adım adı verilen, birbirinden kesin olarak ayrılmış eylemlerden oluşur.

kesinlik. Her adım, yapılacak eylemin hem anlamı hem de anahtarı açısından açık ve net olmalıdır.

Verimlilik. Algoritma bir sonuç vermelidir. Bu durumda, adımların sayısı binlerce veya milyonlarca olabilir, ancak her zaman bir sonuca yol açmalıdırlar.

Kitle karakteri. Bir sorunu çözmek için geliştirilen herhangi bir algoritma, tüm geçerli giriş verileri için bu türdeki tüm sorunlara uygulanabilir olmalıdır.

Bilgisayar yetenekleri

İçin doğru yaratılış bilgisayarlar için algoritmalar, yeteneklerini anlamak önemlidir. Önce bilgisayarın çalıştığı miktarları ele alalım. V Genel dava sayısal ve metin, sabitler ve değişkenler olarak ayrılabilirler.

Altında sabit sayılar tüm sayılar anlaşılır: 3,15, 100, 105, özellikleri programın tüm çalışması boyunca değişmezliktir. Değişkenler, kod yürütme sırasında değerlerini değiştirir ve genellikle harflerle gösterilir: x, y, max, min, vb.

Sayısal değişkenler gibi metin değişkenleri sabit veya değişken olabilir. İlk durumda, sadece metindir: "iyi", "a ve b", vb. İkincisinde, sayısal değişkenlerle aynı sembolik atamadır: isim, şehir, vb. Aralarındaki fark esas olarak böyle bir değişkeni depolamak için ayrılmış bilgisayar belleği.

Bilgisayarın gerçekleştirebildiği işlemler:

  1. Giriş aygıtlarından (klavye, fare, dosyalar) verileri okuyun.
  2. Değerleri kullanarak hesaplama matematik fonksiyonları: toplama, çıkarma, sin, cos, ln, vb. - her programlama dilinin kendi yerleşik işlevleri vardır.
  3. Veri çıkışı (ekrana, kağıda, ağ arayüzüne).
  4. Programın aşamaları arasındaki geçiş.
  5. İki değerin karşılaştırılması (daha büyük, daha az, eşit).

Bunlar çoğu programlama dilinin gerçekleştirebildiği temel işlemlerdir.

Algoritmaları tanımlama yöntemleri

Sözlü. Bu en kolay yoldur. Onun örneği Tarif... Basit matematiksel formüllerin kullanımına izin verilir.

Grafik. Diyagramları kullanarak açıklama. o özel yol genel kabul görmüş bir tür algoritmik dil kullanarak algoritmalar yazma - sahip olduğu şekiller ve bloklar kesin anlam: dikdörtgen - basit eylem, eğik paralelkenar - giriş / çıkış, elmas - koşul, vb.

Algoritmik bir dil kullanmak. Grafiksel olana benzer şekilde, algoritmayı yazmanın da özel bir yoludur. Birçok algoritmik dil vardır. Kuralları katı değil, aksi takdirde bir programlama dili olurdu. Algoritmik bir dil kullanılarak yazılmış, hizmet süresine bağlı olarak ücretleri hesaplamak için bir algoritma örneği düşünün.

Alg ücretleri (int ST, gerçek ZP) arg ST res ZP ST ise başlar

Algoritmik dil, sözlü olana kıyasla daha katı bir gösterim biçimi olarak adlandırılabilir. Girintilerle biçimlendirmenin yanı sıra sınırlı sayıda sözcük ve yapıları kullanılır. Sözel formun ve algoritmik dilin dezavantajı, algoritmanın boyutunun artmasıyla birlikte bozulan netliğidir. Bu nedenle, bu yöntemler yalnızca küçük algoritmaların anlamını iletmek için kullanılabilir.

Algoritma türleri

Çoğu sorunu çözmek için tasarlanmış çok çeşitli algoritmalar vardır. farklı görevler... Örneğin, herhangi bir yüksek matematik ders kitabı yüzlerce algoritma içerir: sistemin çözümü lineer denklemler, bir fonksiyonun ekstremumunu bulma, integrali hesaplama, vb. Ancak, yapılarının ayrıntılı bir incelemesi üzerine, tüm algoritmaların birkaç türe ayrılabileceği ortaya çıkıyor. Bu tür algoritmaları örneklerle ele alalım.

  • doğrusal (toplama veya çarpma sonucunun hesaplanması, çeşitli değişkenlerin değerlerinin değişimi);
  • dallanma (birkaç sayının en büyüğünün belirlenmesi);
  • döngüsel (bir diziyi sıralama, faktöriyel hesaplama).

Bunlar temel tiplerdir. Ayrıca, bir dizi literatürde dördüncü bir tür - özyinelemeli olduğunu belirtmekte fayda var. Ancak şematik gösterimde özel bir gösterimi yoktur ve temel olanlar aracılığıyla uygulanır.

Örneklerle birlikte her bir hesaplama algoritması hakkında daha fazla ayrıntı aşağıda açıklanacaktır.

Algoritma ilkeleri

  1. Kaynak verileri belirleyin.
  2. Bir çözüm seçin.
  3. Seçilen yöntemi bilgisayarın (programlama dili) özelliklerine göre adımlara ayırın.
  4. Algoritmayı, net bir adım sırası tanımlayarak bir diyagram şeklinde yürütün.
  5. Hesaplama sonuçlarının çıktısı.
  6. Devrenin çıkışına geçişi belirtin.

Algoritmada hata ayıklama

İnsan hata yapar ve bu bir gerçektir. Herhangi bir algoritmanın ana parametresi, çalışmasının doğruluğu olmalıdır. Hata ayıklama, bir algoritmadaki hataları belirleme ve düzeltme işlemidir. Bunun için alınır belirli küme test adı verilen ilk veriler. Kural olarak, her türlü kaynak veri türüdür. Örneğin, girişe bir sayı verilirse, algoritmanın kontrol edilmesi gerekir. doğru iş dikkate alarak: pozitif, negatif, tamsayı ve gerçek sayılar, sıfır değerler vb.

Algoritmanın doğruluğunu kontrol etmek için ana araç kalır İnsan beyni... Elbette, kontrolü otomatikleştirmek için diğer bilgisayar araçlarını kullanmak mümkündür, ancak öyle ya da böyle, testleri hazırlayan ve sonuçları analiz eden kişidir. Bu durumda, soru ortaya çıkıyor, bir kişi her şeyi kendisi yapıyorsa neden bir algoritmaya ihtiyacımız var? Ardından, algoritmanın ana görevi, belirli bir problem türünün tekrarlanan çözümüdür.

Doğrusal Algoritmalar

Doğrusal, adımların birbiri ardına sıralı olduğu bir algoritmadır. Dallar ve döngüler içermeyen herhangi bir algoritma doğrusaldır. Aşağıdaki sorunu çözen bir algoritma örneğini düşünün: iki hücrede bir kurt ve bir tavşan oturuyor, onları değiştirmeniz gerekiyor.

Bu sorunu çözmenin anahtarı, hayvanları değiştirmek için kullanılması gereken ekstra bir geçici kafestir.

çatallama algoritmaları

Adından da anlaşılacağı gibi, algoritmanın birkaç dalı vardır. İşin özü, bunlardan birini seçmektir. olası seçenekler bilgi işlem süreci herhangi bir koşula tabidir. Şematik dallanma, içinde bir koşulun belirtildiği ve yanlarında koşulun doğru veya yanlış olmasına bağlı olarak seçim dallarının bulunduğu baklava biçimli bir kutu ile temsil edilir. Dallanma algoritması ve uygulama örnekleri her yerde bulunabilir. Programlamada, bu tipik if-else yapısı, hemen hemen her dilde bulunur.


Üç sayıdan en büyüğünü bulma problemini çözmek için bir algoritma örneği verelim.


döngüsel algoritma

Döngüsel algoritma, aynı adımların birçok kez tekrarlandığı, yalnızca üzerinde hesaplama yapılan belirli bir değişkenin değerinin değişebildiği bir algoritmadır. Döngü algoritmasının türleri ve bir örnek aşağıda tartışılacaktır, ancak şimdilik bir döngü oluşturmanın ana adımlarını listeleyeceğiz.

  1. Değişkenlere bir başlangıç ​​değeri atama. Bu koşul olmadan, döngü büyük olasılıkla başarısız olur veya hata yapar.
  2. Sonuçları hesaplama birimi. Bu, döngünün ana gövdesidir.
  3. Son durumu kontrol etme döngüsel süreç... Döngünün hangi koşul altında biteceğini belirtmeyi unutursanız, algoritma süresiz olarak çalışacaktır.
  4. Değişkenlerin değişimi. Bu blok, eğer yanlış ise, sonlandırma koşulu kontrol edildikten sonra yürürlüğe girer. Bu bloğu unutursanız, döngü sonsuza kadar bir eylem gerçekleştirir ve asla tamamlanmaz. Bu nedenle, değişkenlerin döngünün her yinelemesinde bazı değişikliklere uğraması önemlidir.

Birkaç tür döngü algoritması vardır: son koşullu, ön koşullu ve parametreli.


N sayısının faktöriyelini bulma örneğini kullanarak döngüsel bir algoritma oluşturalım.

Diğer algoritma türleri

Sınıflandırma veya köken bakımından farklılık gösteren bir dizi başka algoritma vardır.

  • Mekanik algoritmalar. Örneğin, içten yanmalı bir motorun veya bir montaj hattının çalışması.
  • Olasılıksal algoritmalar. Çalışmaları olasılık teorisine ve matematiksel istatistiklere dayanmaktadır.
  • Sezgisel algoritmalar. Kesin matematiksel gerekçeler olmadan çalışmalarında pratik değerlendirmeleri kullanın.
  • Genetik algoritmalar. Biyolojik fikirleri çalışmalarında uygular.

Pratikte, aşağıdaki algoritma sunum biçimleri en yaygın olanıdır:

· Sözlü (doğal dilde kayıtlar);

Grafik (resimler grafik sembolleri);

· Sözde kodlar (hem programlama dili öğeleri hem de doğal dil ifadeleri dahil olmak üzere koşullu bir algoritmik dilde algoritmaların yarı resmi açıklamaları, genel kabul görmüş matematiksel gösterim, vb.);

· Yazılım (programlama dillerindeki metinler).

sözlü yol Algoritma kayıtları, veri işlemenin sıralı aşamalarının bir açıklamasıdır. Algoritma, doğal dilde serbest biçimde ayarlanır. Örneğin. İki doğal sayının en büyük ortak bölenini (GCD) bulmak için algoritmayı yazın.

Algoritma aşağıdaki gibi olabilir:

· İki sayı ayarlayın;

Sayılar eşitse, herhangi birini cevap olarak alın ve durun,

aksi halde algoritmanın yürütülmesine devam edin;

· Sayılardan büyük olanı belirleyin;

· Sayılardan büyük olanı, sayıların büyük ve küçük farkıyla değiştirin;

· 2. adımdan itibaren algoritmayı tekrarlayın.

Tanımlanan algoritma, herhangi bir doğal sayıya uygulanabilir ve sorunun çözümüne yol açmalıdır.

sözlü yol tarafından yaygın olarak kullanılmamaktadır. aşağıdaki sebepler:

· Bu tür açıklamalar katı bir şekilde resmileştirilmemiştir;

· Kayıtların ayrıntılılığından muzdarip;

· Bireysel düzenlemelerin yorumlanmasında belirsizliğe izin verin.

grafik yolu algoritmaların sunumu, sözlü olana kıyasla daha kompakt ve sezgiseldir.

Bu grafik gösterime denir algoritma şeması veya blok diyagramı.

NS grafiksel temsil algoritma, her biri bir veya daha fazla eylemin yürütülmesine karşılık gelen, birbirine bağlı işlevsel blokların bir dizisi olarak tasvir edilir.

Akış şemasında, her bir eylem türü (ilk verilerin girişi, ifade değerlerinin hesaplanması, kontrol koşulları, eylemlerin tekrarının kontrolü, işlemin tamamlanması vb.) karşılık gelir. geometrik şekil, bir blok sembolü olarak temsil edilir. Blok sembolleri, eylemlerin gerçekleştirilme sırasını belirleyen geçiş çizgileriyle birbirine bağlanır.

1) Başlangıç-bitiş bloğu

Öğe, çıktıyı dış ortama ve girdiyi dış ortama görüntüler. dış ortam(en yaygın kullanım, bir programın başı ve sonudur). İlgili eylem şeklin içine kaydedilir.

2) Eylem bloğu

Bir veya birden fazla işlemin gerçekleştirilmesi, her türlü verinin işlenmesi (verinin değerini, sunum şeklini, yerini değiştirme). Şeklin içinde, işlemlerin kendisi doğrudan yazılır, örneğin atama işlemi: a = 10 * b + c


3) Mantık bloğu

Bu öğe içinde tanımlanan koşullar değerlendirildikten sonra yalnızca biri seçilebilen bir giriş ve iki veya daha fazla alternatif çıkışa sahip bir çözüm veya anahtar tipi işlevi görüntüler. Bir elemana giriş, genellikle elemanın üst köşesine giren bir çizgi ile belirtilir. İki veya üç çıkış varsa, genellikle her çıkış, kalan tepelerden (yan ve alt) çıkan bir çizgi ile gösterilir. Üçten fazla çıktı varsa, bunlar elemanın üstünden (çoğunlukla alttan) çıkan ve daha sonra dallara ayrılan bir satır olarak gösterilmelidir. İlgili hesaplama sonuçları bu yolları temsil eden satırların yanına yazılabilir. Çözüm örnekleri: genel olarak - karşılaştırma (üç çıktı:>,<, =); в программировании − условные операторы if (два выхода: true, false) и case (множество выходов).

Verileri işleme (girdi) için uygun bir forma dönüştürmek veya işleme sonuçlarını (çıktı) görüntülemek. Bu sembol bir veri taşıyıcısını tanımlamaz (veri taşıyıcısının türünü belirtmek için belirli semboller kullanılır).

Algoritma türleri

Dallanma algoritması, doğrulamanın bir sonucu olarak algoritmanın birkaç paralel dalına bölünmesinin gerçekleştirilebildiği en az bir koşul içeren bir algoritmadır.

Doğrusal algoritma, birbiri ardına sırayla yürütülen bir dizi komuttur (talimatlar).

Döngüsel algoritma - aynı eylemin (aynı işlemler) yeni kaynak veriler üzerinde birden çok tekrarını sağlayan bir algoritma. Hesaplama yöntemlerinin çoğu, seçeneklerin sıralanması döngüsel algoritmalara indirgenmiştir. Bir program döngüsü, belirli bir koşul sağlanana kadar (yeni başlangıç ​​verileri için) birden çok kez çalıştırılabilen bir dizi komuttur (dizi, döngü gövdesi).

Dersin amacı: konunun çalışmasına artan ilgi; hızlı düşünme becerisini geliştirmek; öğrencilerin yaratıcı etkinliklerinin geliştirilmesi; bilişsel ilgilerin gelişimi.
Dersin Hedefleri: 1. Eğitim:
- Algoritma, yürütücü, yürütücü komutlarının sistemi, algoritmaları sunma yolları kavramlarını öğrencilerle pekiştirmek.
- Öğrencilere algoritma türleri hakkında bilgi vermek: doğrusal, dallanma, döngüsel.
- Blok diyagramlar şeklinde algoritmaların sunumunu öğretin.
2. Geliştirme:
- Multimedya öğretim araçları aracılığıyla öğrencilerin bilişsel aktivitelerini harekete geçirmek.
- Yaratıcı, eleştirel, farklı düşünme geliştirin.
3. Eğitici:
-Sınıftaki öğrencilerin motivasyonunu artırmak.
- Öğrenciler tarafından materyalin bilinçli bir şekilde özümsenmesinin sağlanması.
- Kolektivizm ve sağlıklı rekabet duygusunun oluşumu.
- Algoritmik düşüncenin oluşumu.
Bilgi ve beceriler için gereksinimler: - Algoritma türlerini bilir.
- Kavramları bilin: doğrusal, dallanma, döngüsel algoritmalar.
- Pratik görevleri yerine getirirken edindiği bilgileri uygulayabilme.
Ders türü: kombine.
teknoloji: iletişimsel yeterliliğin oluşumu.
Yöntemler: - kısmen keşfedici, pratik;
- bilgilendirici (sözlü);
- açıklayıcı ve açıklayıcı.
Teçhizat: Konuyla ilgili sunum tahtası (Ek 1), bilgisayarlar, kaynak

Öğrenci teknolojik haritası (Ek 2), çok seviyeli kartlar (Ek 3), yerel ağ NetOp.

Dersler sırasında

I. Organizasyonel an.
1. Arkadaşlardan selamlar. Selam beyler! Otur! Ruh halin nedir? Eğer iyiyse - herkese gülümseyin! Değilse, birbirinize bakın ve gülümseyin! Hadi derse başlayalım! Algoritmayı sözlü olarak size sundum. Tahtaya bak. Aynı algoritma grafik olarak gösterilir. Bugün derste sizinle birlikte akış şemalarını kullanarak algoritma türlerini temsil etmeyi öğreneceğiz (sunma sayfası 1).
Dersimizin epigrafı, ünlü Fransız bilim adamı Gustave Guillaume'nin "Yola yürüyen de düşünen de hakim olur" sözleri olacaktır.
2. Dersin amaçlarının duyurulması.
II. Öğrencilerin bilgilerini güncellemek

Ama yeni materyal öğrenmeye başlamadan önce. Son derste öğrendiklerimizi hatırlamalıyız.

1. Ödev kontrolü.
Öğrencilerin evde çözdüğü bulmacaları kontrol edin.

Yanıtlar:
1. grafik
2. uzuv
3.bilgi
4. icracı
5. algoritma
6.program
7.plan
8. bilgisayar
9. araç
10.çizim
11. adım


Seçenek 1. "Fide dikmek".

Seçenek 2. "Kazlar-Kuğular" masalından bölüm.

6. Ödev.
1. Özeti öğrenin.
2. A4 formatında, "Kolobok" masalı için bir döngüsel algoritma örneği ve bir akış şeması çizin.

7. Sorular. 1. Ne tür algoritmalar ayırt edilir?
2. Şekillerde ne tür algoritmalar gösterilmektedir.

Ek No. 3

Çok seviyeli kartlar
1. Kaynak için görev numarası 1,2,3'ü tamamlayın
Her bir algoritma türü için tabloyu iki örnekle doldurun.
Taşı ve kopyala komutlarını kullanarak Paint'te bir algoritma oluşturun.
Seçenek 1. (sundurma sayfası 25).
"Fidan dikmek".
Seçenek 2. (sundurma sayfası 26).
"Kazlar-Kuğular" masalından bir bölüm.

Hedef : Öğrencileri algoritmalaştırmanın temelleri ile tanıştırmak.

Çalışma soruları:

1. Algoritma ve özellikleri. Algoritma yazma yöntemleri.

2. Ana algoritma türleri. Tipik algoritmaların blok diyagramları.

Bu konuyu inceledikten sonra, öğrenci şunları yapmalıdır:

Bilmek:

· Algoritmanın özellikleri;

· Devreler oluşturmak için bloklar;

· Temel algoritma türleri;

Yapabilmek :

· Problemin durumuna göre algoritmalar oluşturun;

algoritma kavramı

Algoritma kavramı, tarihsel olarak bağımsız bir disiplin "algoritma teorisi" olarak şekillenen bilgisayar biliminin temel kavramlarından biridir ve başka bir disiplin "matematiksel mantık" a yakındır. Öte yandan, "algoritma teorisi" disiplini, programlama bölümü ile ilgili olarak matematik ve bilgisayar bilimi olmak üzere iki disiplin arasında orta düzeyde kabul edilebilir.

Algoritma, genel bilişim yöntemlerini ifade eder, karmaşık problemlerin çözümünde büyük önem taşır. Bir bilgisayarda bir sorunu çözmek için bir program yazmadan önce, söz konusu sorunu doğru bir şekilde çözmek için yapılması gereken eylemlerin sırasını gözden geçirmek gerekir.

Algoritma, bir bilgisayarda gerçekleştirilmesi gereken aritmetik, mantıksal ve diğer işlemler dizisidir.

Doğru sonucu elde etmek için algoritma, yürütüldüğünde tüm komutlar açık bir şekilde yorumlanacak şekilde tasarlanmalıdır. Bu nedenle, algoritmalar derlenirken dikkate alınması gereken zorunlu gereksinimler ortaya çıkmıştır. Gereksinimler özellikler olarak formüle edilir.

Algoritma her zaman etkili olmalı, tekrarlanabilirlik özelliğine sahip olmalı ve belirli bir icracı için tasarlanmalıdır. Teknolojide, böyle bir sanatçı bir bilgisayardır. Bir bilgisayarda uygulama olasılığını sağlamak için algoritma, anlaşılır bir bilgisayar dilinde, yani bir makine dilinde tanımlanmalıdır. Ancak bilgisayar tarafından anlaşılabilir bir dilde (makine dili) bir algoritma sunmadan önce, algoritmik bir programlama dili kullanarak bir program yazmak gerekir.

Algoritma çeşitli şekillerde temsil edilebilir, özellikle:

1) sözlü olarak (sözlü açıklama);

2) tablo halinde;

3) bir blok diyagram şeklinde;

4) algoritmik dilde.

Bir algoritmayı temsil etmenin oldukça yaygın bir yolu, onu genel durumda, algoritmaların tek tip ve doğru bir şekilde yazılması ve yürütülmesi için bir notasyon sistemi ve kuralları olan algoritmik bir dilde yazmaktır. Algoritmayı temsil etmenin bu yolu, onu bir program şeklinde yazmayı içerir.

programı Sonlu sayıda adımda nihai sonuca götüren bir programlama dilindeki bir algoritmanın kaydıdır.

Algoritmik bir dilde yazmadan önce algoritmayı bir blok diyagram şeklinde sunmak tercih edilir. Blok diyagram şeklinde bir algoritma oluşturmak için her bir bloğun amacını bilmeniz gerekir. Tablo 13. blok türlerini ve amaçlarını listeler.

Tablo 13

Blok amacı

Bir yorum

(blok operatöre karşılık gelir)

Başlangıç ​​veya bitiş

blok diyagramlar

Veri girişi veya çıkışı

giriş çıkış

Süreç (özellikle bilgi işlem)

atamalar

döngü değiştirici

5.2. Temel algoritma türleri

Algoritma, verilen dilsel araçlar çerçevesinde bir dizi belirli pratik teknik, özel rasyonel düşünme becerileri olarak hareket eder. Hesaplamaların algoritması, bir problemin bir dizi eylem şeklinde çözülmesini, yani bir çözüm akış şeması şeklinde sunulmasını içerir. Tipik algoritmalar ayırt edilebilir. Bunlar şunları içerir: doğrusal algoritmalar, dallanma algoritmaları, döngüsel algoritmalar.

Doğrusal Algoritmalar

Doğrusal algoritma en basitidir. İşlemlerin sıralı yürütülmesini varsayar. Bu algoritmada koşullu veya tekrarlı kontrol yoktur.

Örnek : Hesapla fonksiyonu z = (x-y) / x + y2.

Doğrusal bir algoritma kullanarak bir fonksiyonu hesaplamak için bir akış şeması çizin. Değişken değerler NS, NS klavyeden girmek için sıfır dışında herhangi biri olabilir.

Çözüm: Fonksiyonu hesaplamak için doğrusal algoritma, Şekil 8'de bir blok diyagram şeklinde verilmiştir. Doğrusal bir algoritma yürütülürken, klavyeden değişkenlerin değerleri girilir, belirli bir fonksiyonla değiştirilir, sonuç hesaplanır ve ardından sonuç görüntülenir.

Şekil 8. Doğrusal Algoritma

Şekil 8'deki şemadaki blokların amacı:

· Şemadaki Blok 1, mantıklı bir başlangıç ​​görevi görür.

· Blok 3, aritmetik işlemi temsil eder.

· Blok 4 sonucu verir.

· Devredeki Blok 5, devrenin mantıksal sonlandırması olarak görev yapar.

Dallanma algoritmaları

Dallanma algoritması, bir çözüm seçme koşullarının kontrol edilmesini içerir. Buna göre, algoritmanın her koşul için iki dalı olacaktır.

Örnekte, duruma bağlı olarak olası çözümlerden birinin seçildiği bir dallanma algoritması ele alınmaktadır. Algoritma bir blok diyagram şeklinde sunulur.

Örnek : Koşul karşılandığında x>0 fonksiyon hesaplanır: z= içinde x+ y, aksi takdirde, yani, ne zaman x = 0 veya x<0 , fonksiyon hesaplanır: z= x+ y2 .

Dallanma algoritmasını kullanarak bir fonksiyonu hesaplamak için bir akış şeması çizin. Değişken değerler NS, NS herhangi biri olabilir, klavyeden girin.

Çözüm : Şekil 9, duruma bağlı olarak dallardan birinin yürütüldüğü bir dallanma algoritmasını göstermektedir. Akış şemasında ortaya çıktı yeni blok 3, sorunun durumunu kontrol eder. Blokların geri kalanı lineer algoritmadan aşinadır.

https://pandia.ru/text/78/136/images/image008_57.gif "width =" 300 "height =" 360 src = ">

Şekil 9. Dallanma Algoritması

Örnek : Klavyeden girilen üç farklı tam sayının maksimum değerini bulun. Problemi çözmek için bir akış şeması çizin.

Çözüm : Bu algoritma, koşulun kontrol edildiğini varsayar. Bunun için üç değişkenden herhangi biri seçilir ve diğer ikisi ile karşılaştırılır. Daha büyükse, maksimum sayı arayışı sona erer. Koşul sağlanmazsa, kalan iki değişken karşılaştırılır. Bunlardan biri maksimum olacaktır. Bu görev için blok diyagram Şekil 10'da gösterilmiştir.

https://pandia.ru/text/78/136/images/image010_48.gif "width =" 492 "height =" 456 src = ">

Pirinç. 10. Maksimum aramanın blok şeması

döngüsel algoritmalar

Döngüsel algoritma, problemin durumuna bağlı olarak bir işlemin veya birkaç işlemin tekrarlanmasını sağlar.

Döngüsel algoritmalar iki tiptir:

1) ile verilen miktar döngüler veya bir döngü sayacı ile;

2) döngü sayısı bilinmiyor.

Örnek : Bir döngüde, fonksiyonun değerini hesaplayın z = x * y değişkenlerden birinin olması şartıyla x her döngüde bir ve diğer değişken değişir NS değişmez ve herhangi bir tamsayı olabilir. Değişkenin başlangıç ​​değerindeki döngü yürütmesinin bir sonucu olarak x = 1çarpım tablosunu alabilirsiniz. Döngü sayısı herhangi biri olabilir. Problemi çözmek için bir akış şeması çizin.

Çözüm : Örnekte, döngü sayısı ayarlanmıştır. Buna göre, ilk tip döngü algoritması seçilir. Bu problemin algoritması Şekil 1'de gösterilmektedir. on bir.

İkinci blokta çevrim sayısı girilir. n ve herhangi bir tamsayı NS, y .

Blok diyagramda değişkenin bulunduğu yeni bir blok 3 belirdi. ben sayaç eşit olana kadar her döngüden sonra bir artırarak döngü sayısını sayar ben = n ... NS ben = n son döngü yürütülecektir.

Üçüncü blok, döngü sayacının değişim aralığını gösterir ( ben = 1önce ben = n).

Dördüncü blokta değişkenlerin değerleri değiştirilir: z, x.

Beşinci blok sonucu görüntüler. Dördüncü ve beşinci bloklar her döngüde tekrarlanır.

Şekil 11. Döngü sayacı ile döngüsel algoritma

Bu tür döngü algoritmaları, döngü sayısı verildiğinde tercih edilir.

Döngü sayısı bilinmiyorsa, döngüsel algoritmaların blok diyagramları Şekil 12, 13 şeklinde sunulabilir.

Örnek : Hesaplamak y = y-x süre y> x, Eğer y=30 , x=4. Yürütülen döngü sayısını sayın, bir değişkenin son değeri NS ... Bir döngüde, bir değişkenin değerini çıktılayın NS, gerçekleştirilen döngü sayısı. Problemi çözmek için bir akış şeması çizin.

Çözüm : Örnekte, döngü sayısı bilinmiyor. Buna göre, ikinci tip döngü algoritması seçilir. Bu problemin algoritması Şekil 1'de gösterilmektedir. 12.

Durum, döngünün girişinde kontrol edilir. Döngünün gövdesinde iki blok yürütülür:

1) y = y-x;ben= ben+1 ;

2) değişkenlerin değerlerinin çıktısı ben, y.

Koşul karşılandığı sürece döngü yürütülür. y>x... Bu değişkenlerin eşit olması koşuluyla y = x veya y döngü biter.

Şekil 12'de gösterilen algoritmaya denir. döngüsel önkoşul algoritması, çünkü koşul döngünün başında veya döngünün girişinde kontrol edilir. > x döngünün girişinde. Koşul karşılanırsa, blok 4'e, aksi takdirde blok 6'ya gidin.

Dördüncü blokta değişkenin değeri hesaplanır. NS ben= ben+1 .

Beşinci blok sonucu görüntüler:

değişken değer NS,

ben.

Örnek : Döngüden çıkmak için koşulu kontrol ederek bir örneğin blok şemasını yapın (Şekil 12). Bu örnekte, görev koşulu değişmez ve çıktı aynıdır, ancak akış şeması farklı olacaktır.

Çözüm : Bu durumda döngüden çıkma koşulu kontrol edilir: y<=x ... Bu koşul altında döngü yürütülmez. Blok diyagramdaki durum yazdırıldıktan sonra çevrim sonuna aktarılmalıdır. Koşul karşılandığı sürece döngü yürütülür. y>x.

Algoritma, koşul döngünün sonuna aktarılırsa denir. son koşullu döngü algoritması... Bu problemin algoritması Şekil 1'de gösterilmektedir. 13.

İkinci blok tanıtıyor y=30 , x=4 .

Üçüncü blok, değişkenin değerini hesaplar. NS , tamamlanan döngü sayısı sayılır ben= ben+1 .

Dördüncü blok sonucu görüntüler:

değişken değer NS,

Gerçekleştirilen döngü sayısı ben.

Beşinci blok durumu kontrol eder y <= x döngüden çıkmak için. Koşul sağlanırsa, blok 6'ya, aksi takdirde blok 3'e geçiş yapılır ve döngü tekrarlanır.

13. Son koşul döngü algoritması

Kontrol soruları

1. Algoritma kavramı.

2. Algoritma türleri.

3. Temel algoritmik yapılar.

4. Grafik algoritmasının ana blokları.

5. Doğrusal algoritmik yapı. Örnek.

6. Dallanma. Örnek.

7. Döngüsel algoritmik yapılar. Örnek.

Bilgisayar bilimi okurken, algoritmaların ve türlerinin çalışmasına çok dikkat edilir. Onlarla ilgili temel bilgileri bilmeden bir program yazamaz veya çalışmasını analiz edemezsiniz. Algoritma çalışması, okul bilgisayar bilimi dersinde başlar. Bugün bir algoritma kavramını, algoritmanın özelliklerini, türlerini ele alacağız.

konsept

Algoritma, belirli bir sonucun elde edilmesine yol açan belirli bir eylemler dizisidir. Bir algoritma oluştururken, icracının her eylemi, gelecekte onu görevin çözümüne götürecek olan ayrıntılı olarak belirtilir.

Oldukça sık, algoritmalar matematikte belirli problemleri çözmek için kullanılır. Bu nedenle, birçok kişi, diskriminant arayışı ile ikinci dereceden denklemleri çözme algoritmasını biliyor.

Özellikler

Bilgisayar biliminde ele alınmadan önce temel özelliklerinin açıklığa kavuşturulması gerekmektedir.

Algoritmaların ana özellikleri arasında aşağıdakileri vurgulamak gerekir:

  • Determinizm, yani kesinlik. Herhangi bir algoritmanın, başlangıçtakiler göz önüne alındığında belirli bir sonuç elde etmeyi varsaydığı gerçeğinde yatmaktadır.
  • Verimlilik. Bir dizi ilk verinin varlığında, bir dizi adımı tamamladıktan sonra kesin, beklenen bir sonucun elde edileceği anlamına gelir.
  • Kitle karakteri. Bir kez yazılan bir algoritma, belirli bir türdeki tüm sorunları çözmek için kullanılabilir.
  • Ayrıklık. Herhangi bir algoritmanın, her birinin kendi amacı olan birkaç aşamaya bölünebileceğini ima eder.

Kayıt yöntemleri

Bilgisayar biliminde ne tür algoritmalar düşündüğünüzden bağımsız olarak, bunları yazmanın birkaç yolu vardır.

  1. Sözlü.
  2. Formül-sözlü.
  3. Grafik.
  4. Algoritma dili.

Çoğu zaman, algoritma, GOST'ler tarafından sabitlenen özel tanımlamalar kullanılarak bir blok diyagram şeklinde gösterilir.

Ana türler

Üç ana şema vardır:

  1. Doğrusal algoritma.
  2. Dallanma algoritması veya dallanmış.
  3. Döngüsel.

Doğrusal

Bilgisayar biliminde en basit olarak kabul edilir.Bir dizi eylemi içerir. İşte bu tür bir algoritmanın en basit örneği. Buna “Okula Buluşma” diyelim.

1. Alarm çaldığında kalkın.

2. Yıkıyoruz.

3. Dişlerimizi fırçalarız.

4. Egzersiz yapmak.

5. Giyinmek.

6. Yemek yiyoruz.

7. Ayakkabılarımızı giyip okula gidiyoruz.

8. Algoritmanın sonu.

çatallama algoritması

Bilgisayar bilimindeki algoritma türleri göz önüne alındığında, dallanma yapısını hatırlamak mümkün değildir. Bu tür, yürütülmesi durumunda eylemlerin bir sırayla ve yerine getirilmemesi durumunda diğerinde gerçekleştirildiği bir koşulun varlığını varsayar.

Örneğin, şu durumu ele alalım - yoldan geçen bir yaya.

1. Trafik ışığına yaklaşıyoruz.

2. Trafik sinyaline bakıyoruz.

3. Yeşil olmalıdır (bu bir koşuldur).

4. Koşul sağlanırsa yolun karşısına geçiyoruz.

4.1 Değilse, yeşil yanana kadar bekleyin.

4.2 Yolu geçiyoruz.

5. Algoritmanın sonu.

döngüsel algoritma

Bilgisayar bilimindeki algoritma türlerini inceleyerek, üzerinde ayrıntılı olarak durmalısınız. Bu algoritma, belirli bir koşul karşılanana kadar gerçekleştirilen bir hesaplama veya işlem bölümünü varsayar.

Basit bir örnek verelim. Sayı aralığı 1'den 100'e kadar ise. Bire ve kendilerine bölünebilenlerin hepsini bulmamız gerekiyor. Algoritmaya "Asal sayılar" diyelim.

1. 1 numarayı alın.

2. 100'den küçük olup olmadığını kontrol edin.

3. Evet ise, bu sayının asal olup olmadığını kontrol edin.

4. Koşul karşılanıyorsa, yazın.

5. 2 numarayı alın.

6. 100'den küçük olup olmadığını kontrol edin.

7. Basit olup olmadığını kontrol edin.

…. 8 numarayı alıyoruz.

100'den az olup olmadığını kontrol edin.

Sayının asal olup olmadığını kontrol edin.

Hayır, geçelim.

9 numarayı alıyoruz.

Böylece, 100'e kadar tüm sayıları yineliyoruz.

Gördüğünüz gibi, 1 - 4 arasındaki adımlar birkaç kez tekrarlanacak.

Döngünün başında koşul kontrol edildiğinde ön koşullu veya kontrol döngünün sonunda olduğunda son koşullu algoritmalar döngüsel olanlar arasında ayırt edilir.

Diğer seçenekler

Algoritma karıştırılabilir. Yani aynı anda hem döngüsel hem de dallanmış olabilir. Bu durumda, algoritmanın farklı segmentlerinde farklı koşullar kullanılır. Bu tür karmaşık yapılar, karmaşık programlar ve oyunlar yazarken kullanışlıdır.

Blok diyagramdaki efsane

Bilgisayar biliminde ne tür algoritmaların olduğunu düşündük. Ancak grafik kayıtları için hangi tanımların kullanıldığı hakkında konuşmadık.

  1. Algoritmanın başı ve sonu oval bir çerçeveye yazılır.
  2. Her takım bir dikdörtgen içinde yakalanır.
  3. Durum bir elmasla yazılmıştır.
  4. Algoritmanın tüm parçaları oklar kullanılarak bağlanır.

sonuçlar

"Algoritmalar, türler, özellikler" konusunu ele aldık. Bilgisayar bilimi, algoritmaları incelemek için çok zaman harcar. Hem matematik problemlerini çözmek hem de oyunlar ve çeşitli uygulamalar oluşturmak için çeşitli programlar yazarken kullanılırlar.