Hesaplama şeması. “VBA Algoritması Geliştirme. Blok diyagramı. Algoritma yapıları. Pascal programlama dilinde giriş ve çıkış operatörleri

Her insanın günlük yaşamı, işyerinde veya ders çalışırken, değişen karmaşıklığa sahip çok sayıda görevi çözmeyi içerir. Bazı görevler o kadar basittir ki, onları gerçekleştirirken bazı eylemleri düşünmeden otomatik olarak yaparız. Herhangi bir sorunun çözümü, en basiti bile olsa, genellikle birkaç adımda sırayla gerçekleştirilir. Sorunları çözerken bu tür bir diziye algoritma denir. Bugün doğrusal algoritmaların ne olduğuna, yapılarının nasıl tasvir edildiğine, nasıl çözüldüğüne ve programlandığına bakacağız.

Algoritmik dil

Bu kavram, icracıya, görevi çözmeyi amaçlayan belirli bir dizi eylemi gerçekleştirmesi için kesin bir talimattır.

Bu dil genellikle kullanıcı odaklı algoritmaları tanımlamanın bir yoludur.

  • Algoritma başlangıç-bitiş bloğu. Blokta “başlangıç” veya “son” yazısı bulunmaktadır.
  • Veri giriş/çıkış bloğu. Bu blok bir paralelkenar olarak tasvir edilmiştir. Üzerine şu yazılar yerleştirilmiştir: “giriş”, “çıkış”, “baskı”. Bunlara ayrıca girdi veya çıktı değişkenlerinin bir listesi de eşlik eder.
  • Aritmetik blok veya karar bloğu. Bir dikdörtgene karşılık gelir. Blokta şu yazı bulunmalıdır: “işlem”, “işlem grubu”.

Bu tür blok diyagramların yardımıyla doğrusal algoritmaların çözümü gösterilmektedir. Şimdi değer atamanın özelliklerinden bahsedelim.

Doğrusal hesaplama algoritmaları

Hesaplamalı bir algoritmadaki ana temel eylem, bir değişkene belirli bir değer atamaktır. Bir sabitin değerinin notasyon türüne göre belirlenmesi durumunda, değişkenin değeri yalnızca atama sonucunda belirli bir değer alacaktır. Bu iki şekilde yapılabilir: atama komutunu kullanarak; giriş komutunu kullanın.

Doğrusal algoritma çözümüne bir örnek

Okul ders kitaplarında aşağıdaki içeriğe sahip olan doğrusal bir algoritma kullanarak sıradan kesirleri bölme kurallarının bir açıklamasına bir örnek verelim:

  • kesir 1'in payı kesir 2'nin paydası ile çarpılmalıdır;
  • kesir 1'in paydası kesir 2'nin payı ile çarpılmalıdır;
  • payın 1 puana tamamlamanın sonucu olduğu ve paydanın 2 puana tamamlamanın sonucu olduğu bir kesir yazmanız gerekir. Bu kuralın cebirsel formu aşağıdaki gibidir:

a/b: c/d=(a*d)/(b*d)=m/n.

Öyleyse bir bilgisayar için kesirleri bölmek için bir algoritma oluşturalım. Karışıklık yaratmamak için değişkenler için yukarıda belirtilen formüldeki aynı gösterimi kullanacağız. a, b, c, d - tam sayı değişkenleri biçimindeki kaynak verileri. Sonuç aynı zamanda tam sayı değerleri olacaktır. Algoritmik dilde çözüm şu şekilde olacaktır:

alg Kesirlerin bölünmesi

bozulmamış a, b, c, d, m, n

a, b, c, d girişi

dolandırıcılık

Çözümün grafik formu

Yukarıda açıklanan doğrusal algoritmanın diyagramı şuna benzer:

Değer atama komutu aşağıdaki formata sahiptir:

Değişken:=ifade.

“:=” işareti atama olarak okunur.

Atama, bilgisayarın aşağıdaki eylemleri gerçekleştirmesi için gerekli olan bir komuttur:

  • ifade hesaplamaları;
  • elde edilen değeri bir değişkene atamak.

Yukarıdaki algoritma atama olarak iki komut içerir. Bir blok diyagramda atama talimatı hesaplama bloğu adı verilen bir dikdörtgenin içine yazılmalıdır.

Doğrusal algoritmaları tanımlarken, ifadeleri yazarken katı kurallara sıkı sıkıya uymaya özel bir ihtiyaç yoktur. Bunları olağan matematiksel formu kullanarak yazabilirsiniz. Sonuçta bu bir programlama dilinin katı sözdizimi değildir.

Verilen örnek algoritmada ayrıca bir giriş komutu da bulunmaktadır:

a, b, c, d'yi girin.

Bir blok diyagramdaki giriş komutu bir paralelkenarda, yani bir giriş-çıkış bloğunda yazılır. Bu komutun yürütülmesiyle işlemci, kullanıcı belirli eylemleri gerçekleştirene kadar işlemi durdurur. Yani: kullanıcının giriş değişkenlerini (değerlerini) klavyeye yazması ve enter tuşu görevi gören Enter tuşuna basması gerekir. Değerlerin, giriş listesinde yer alan karşılık gelen değişkenlerle aynı sırada girilmesi önemlidir.

Doğrusal algoritma. Onun programlaması

Makalenin başında da belirtildiği gibi doğrusal programlar aşağıdaki ifadeleri içerebilir:

  • atama;
  • giriş;
  • çözüm.

Yani, listelenen operatörleri kullanarak algoritmalar uygulanır.

Yani program dilinde şöyle yazılır:

LET A = B, burada A bir değişkendir, B bir ifadedir. Örneğin A = Y + 20.

Giriş ifadesi şuna benzer:

GİRİŞ, örneğin: GİRİŞ C

Verilerin ve değerlerin çıktısını almak için kullanılan operatör aşağıdaki biçimde yazılmıştır:

YAZDIR. Örneğin PRINT S.

Basit bir örnek verelim. Klavyeden girilen A ve B sayıların toplamını bulan bir program yazmamız gerekiyor.

Bir programlama dilinde metni aşağıda gösterilen bir program elde edeceğiz.

Pascal programlama dilinde giriş ve çıkış operatörleri

Pascal, doğrusal algoritmaların kullandığı giriş veya çıkış işlemlerini belirtmek için özel operatörler sağlamaz. Programlarda bilgi alışverişi yerleşik prosedürler kullanılarak yapılır. Standart prosedürün ön açıklamasına gerek olmadığından, kendisine çağrı yapılan her programda mevcuttur. Ayrıca bahsedilen işlemin adı herhangi bir ayrılmış kelime değildir.

Veri girerken bu tür operatörler, programda zaten yerleşik olan standart bir veri giriş prosedürüne başvurmak için kullanılır.

(A, B, C)'yi okuyun; burada A, B, C, ezberlemek için RAM'e girilmesi gereken değişkenlerdir.

Readlnn (x1, y, x2) - girişi bitirdikten sonra imleç yeni bir satırın başına gider.

Readlnn; - “Enter” tuşuna basmak için beklediğinizi belirtir. Genellikle bu ifade, program yürütme sonuçlarını içerik ekranında kaydetmek için son "Son"dan önce metne eklenir.

Veriler aşağıdaki operatörler kullanılarak monitör ekranında görüntülenir:

Yaz (A, B, C) - A, B, C değerlerini bir satırda belirterek imleç geçerli satırı terk etmez.

Writeln (z, y, z2) - değerlerin çıktısını tamamladıktan sonra bu konumdaki imleç yeni bir satıra hareket edecektir.

Yazın; - bir satırı atlayıp yeni satırın başına geçmeyi belirtir.

Verilerin Pascal dilinde girişi ve çıkışı bu kadar basit operatörlerin yardımıyla gerçekleşir.

diğer sunumların özeti

“Temel algoritmik yapılar” - “Döngü gövdesi” komutlarının yürütülmesi. "Dallanma" algoritmik yapısının blok diyagramı. n=5 olsun; ben=4. Döngüsel algoritmanın blok diyagramı. Son. Algoritmik yapı "seçim". n=5 olsun; ben=5. Başlangıç. Dallanma yapısı. n=5 olsun; ben=6. Temel algoritmik yapı türleri. Algoritmik yapı "döngü". Pozitif sayı. “Seçim” algoritmik yapısının akış şeması. Doğrusal algoritma blok diyagramı.

“Algoritma türleri” - Apartman temizliği. Çantayı aç. Ders sloganı. Hanoi Kuleleri. Şeklin adı. Karikatürü izleyin. Hasatı hasat edin. Algoritmaya giriş. Geçide yaklaşın. Döngüsel algoritmalar. Bahçeye girin. Avuç içi. İnsan eylemlerinin algoritması. Grafik diktesi. Kayıt algoritmaları. Algoritma.

Bir prosedürde bir döngünün kaydedilmesi. Prosedürün düzeltilmesi. Ana renkler. Bir duvar çizelim. Algoritma Nedir? Takım. İnteraktif öğretici. Çatının çizilmesi. Bir ev çizelim. Hadi çizelim. Pencereler çiziyoruz. Ev hazır. Döngü. Bilgi. Kalem rengini değiştirin.

“Doğrusal algoritma problemleri” - X = 0 Çözüm yok. Y = 2. X = 3 Y = 1/48. ABC üçgeninin köşelerinin koordinatları verilmiştir. Algoritma akış şemasını kullanarak Y fonksiyonunun değerini X=2'de hesaplayın. A'yı daha büyük bilgi birimlerine dönüştürün. Algoritma, bir sorunu çözmek için bir algoritma (eylem planı) geliştirme sürecidir. X = -1 Çözüm yok. Problem çözme örnekleri. A, B, C üçgeninin kenarlarının uzunlukları verilmiştir S üçgeninin alanını bulun. Sorunu çözmek için algoritmanın blok diyagramını yapın.

“Algoritmik yapılar” - Algoritmaları grafik biçiminde temsil etme yöntemi. Dallanma. Algoritmaların bir dizi eylemin açıklaması şeklinde sunulması. Algoritmaların sunum biçimleri. “Duvar Kağıdı” algoritmasının akış şeması. Algoritmik tasarımlar. Sorunu çözmek için algoritma. Blok diyagramı. Algoritmaların grafiksel sunumu. Algoritma sunma yöntemleri. Algoritma. Karmaşık algoritma. Temel yapıların blok diyagramları.

“Ana algoritmik yapı türleri” - Algoritmaları sözlü biçimde yazın. Gruplarla çalışmak. Yapı. Ön eklerin yazımı. Temel algoritmik yapı türleri. Bağımsız çalışmayı kontrol etmek. Fiziksel egzersiz. Bilgiyi pekiştirme görevleri. Algoritma. Basit yapı. Başlangıç ​​parametrelerinin ayarlanması. Çay yapmak için tarif. Dallanma. Kökü bulun. Sonkoşullu döngü. Döngü. Karakterleri engelle. Algoritmanın sonu. Agroritmik yapıların ana türleri.

Genel talimatlar
Bölümdeki devreleri sentezlemek. 5.1 aşağıdaki adımları açıklamaktadır:
1. Gerekli devrenin fonksiyonunun açıklaması.
2. Giriş ve çıkış değişkenlerinin atanması ve 0 ve 1 değerlerinin atanması.
3. Doğruluk tablosunun hazırlanması.
4. Gerekli mantıksal işlemlerin belirlenmesi.
5. Devrenin basitleştirilmesi ve gerekirse dönüştürülmesi.
Doğruluk tablosu biliniyorsa, artık OR'nin normal formunun derlenmesiyle 4. aşamaya başlanması tavsiye edilir. Carnot diyagramı kullanılarak mümkün olduğunca basitleştirilecektir. Adım 4'ün sonunda, mantıksal bir dijital devre oluşturmak için kullanılabilecek basitleştirilmiş bir mantık fonksiyonu elde edilir.
Adım 5, mantıksal cebir kullanılarak bulunan fonksiyonun daha da basitleştirilmesinin mümkün ve rasyonel olup olmadığını kontrol eder. Cevabınız evet ise sadeleştirme yapılmalıdır.
Şimdi hangi mantıksal öğelerin mevcut olduğunu bulmamız gerekiyor. Mantıksal işlevin yalnızca mevcut mantıksal öğeleri içerecek şekilde dönüştürülmesi gerekir. Daha sonra devreyi kurabilirsiniz.

Birden fazla konumdan dijital açma/kapama devresi

Mantık kapılarını kullanarak, birden fazla konumdan açma/kapama devresi olarak işlev gören bir devreyi sentezlemeniz gerekir. Çıkış durumu yalnızca girişlerden birinin durumu değiştiğinde değişmelidir. Her iki girişin de durumu değişirse, çıkış durumu değişmemelidir. Devre OR-NOT elemanları üzerine kurulmalıdır.
İstenilen devrenin iki girişi ve bir çıkışı vardır. Giriş değişkenleri A ve B olarak adlandırılır. Çıkış değişkeni Z olarak adlandırılır (Şekil 5.47).
İki giriş değişkenli bir devrenin doğruluk tablosunun 4 seçeneği vardır (Şekil 5.48). İlk seçenek için başlangıç ​​durumu Z herhangi bir şekilde ayarlanabilir. Z = 0 seçildi.
Seçenek 1'den seçenek 2'ye geçerken A değişkeni durumunu değiştirir. B değişkeni durumu değiştirmez. Girişlerden yalnızca birinin durumu değişirse, verilen göreve göre Z çıkışının durumunu değiştirmesi gerekir. Z 1'e eşit olmalıdır.
Seçenek 2'den seçenek 3'e geçerken A ve B değişkenlerinin durumları değişir. Z değişmemelidir. Seçenek 3'ten seçenek 4'e geçerken A değişkeninin durumu 0'dan 1'e değişir. B, 1'e eşit kalır. Dolayısıyla Z'nin durumunu 1'den 0'a değiştirmesi gerekir. Doğruluk tablosu hazır. Seçenek 1'de Z= 1'i seçseydik farklı görünebilirdi.
Doğruluk tablosu için (Şekil 5.48), normal OR formunu yazmanız gerekir. Şuna benziyor:
Z = (AaB)w(AaB).
Carnot diyagramına normal OR formunu girerseniz, daha fazla basitleştirmenin imkansız olduğunu görebilirsiniz (Şekil 5.49).
Devrenin OR-HE elemanları üzerine kurulması gerektiğinden denklemlerin dönüştürülmesi gerekir:
Z = (AaB)w(AaB)-,
Z = (AaB)v(AaB),
Z = AaBaAaB.

Pirinç. 5.50 Dijital devre

Dönüştürülen denkleme göre oluşturulan devre Şekil 2'de gösterilmektedir. 5.50.

Üçte ikisi geçiş yapıyor

Nükleer santral gibi artan risk taşıyan sistemler, bir kaza durumunda derhal kapatılmalıdır. Kapatma, dijital devre kullanılarak otomatik olarak gerçekleşir. Kapanmalardan sorumlu acil durum sensörlerinde yanlış alarmlar meydana gelebilir. Bu nedenle, her kritik konuma üç özdeş acil durum sensörü monte edilir (Şekil 5.51).
Kapatma yalnızca üç alarm sensöründen en az ikisi tetiklendiğinde gerçekleşmelidir. Bu yaklaşım, maddi kayıplara neden olan gereksiz sistem kapanmalarının önüne geçer. Acil durum sensörleri tetiklendiğinde durum 1'e sahiptir. Devre çıkışında durum 1 aktif ise sistem kapatılmalıdır.
Yani gerekli olan, 3 girişten en az 2'si 1 durumundayken çıkışı 1 durumunda olan bir devredir. Bu devreye üçte ikisi anahtarı denir.
Giriş değişkenleri A, B ve C olarak adlandırılır. Çıkış değişkeni Z'dir. Devrenin çalışma prensibinin sözlü açıklamasını kullanarak bir doğruluk tablosu oluşturalım. İki giriş değişkeni 1'e eşit olduğunda Z = 1 olur. Üç giriş değişkeninin tümü 1'e eşitse, Z de 1'e eşit olmalıdır. Böyle bir doğruluk tablosu Şekil 2'de gösterilmektedir. 5.52.
Daha sonra derlenen doğruluk tablosuna göre normal OR formu yazılır:

Pirinç. 5.51.

Z = (A a B a C) v (A a B a C) v a5aC|v(^aSaC).

OR'nin normal formu Carnot diyagramı kullanılarak basitleştirilmiştir (Şekil 5.53). Üç adet ikili grup oluşturulabilir. Basitleştirilmiş denklem:
Z = (AaB)w(BaC)w(AaC).
Bu denklemi kullanarak bir diyagram oluşturabilirsiniz (Şekil 5.54).
Çoğu zaman yalnızca OR-HE elemanları elinizin altındadır. Yalnızca OR-HE elemanlarını kullanarak bir devre oluşturmak için denklemi °-'ye dönüştürürüz.
Z = (AaB)v(BaC)v(AaC);
======= SO.
Z = (A l B)v (B aC)v (A lC);
—=====—= Şek. 5.55. Anahtar devresi "iki"
Z = AlVlVlSlAlS. Sh1I-NE elementlerinde üç".
İlgili diyagram Şekil 2'de gösterilmektedir. 5.55.

Parite devresi

Kodlardaki hataları tespit etmek (bkz. Bölüm 8.7 ve 8.8) ve ayrıca kontrol ve izleme görevleri için, çift sayıda giriş 1 olduğunda çıkışın 1 olduğu bir devre genellikle gereklidir.
Bu devreye eşlik devresi denir.
Dört girişli bir devrenin sentezlenmesi gerekmektedir. Giriş değişkenleri A, B, C ve D'dir. Çıkış değişkeni Y'dir.
İlk önce bir doğruluk tablosu oluşturmanız gerekir. 0, 2 veya 4 giriş değişkeni 1'e eşitse Y her zaman 1'e eşit olacaktır (Şekil 5.56).
Doğruluk tablosundan normal VEYA formunu elde ederiz:
Y = (A l V lS l D)\/ ^A l V lS l (A l V lS l (A l V aS l
v(A l V lS l [A l V lS l (A l V lS l (A l V lS l D).

Bireysel tam bağlaçlar numaralandırılmıştır. OR'nin normal formunu bir Karnaugh haritası kullanarak basitleştirmeye çalışalım (Şekil 5.57). Burada grup oluşumunun imkansız olduğu nadir bir durumla karşı karşıyayız. Bu, OR'nin bu normal formunun basitleştirilemeyeceği anlamına gelir ve diyagramı Şekil 2'de gösterilmektedir. 5.58.

Eşik mantık devresi, çıkışta mantıksal 1'in görünmesi için belirli bir minimum sayıda giriş değişkeninin 1 durumuna sahip olması gereken bir devredir.
Örneğin, beş giriş değişkenli bir devre hesaplamanız gerekiyor. Çıkış yalnızca en az 4 giriş 1 olduğunda 1 olmalıdır.
Giriş değişkenleri A, B, C, D ve E olarak adlandırılır. Çıkış değişkeni Z'dir. İlk önce doğruluk tablosunu tanımlamamız gerekir. Beş değişkenle 32 seçenek mümkündür (Şekil 5.59):
Z =¦ (A l V lS l D l E^v (A l V lS l D l E)v (A l V lS l D l v^A l V lS l D l E^v [A l V lS l D l E^v (A l B lS l D l E).
Normal OR biçimi altı tam bağlaçtan oluşur.
OR'nin normal formu Carnot diyagramı kullanılarak basitleştirilmiştir (Şekil 5.60). 5 adet ikili grup oluşturabilirsiniz. Bu, aşağıdaki basitleştirilmiş mantıksal fonksiyonla sonuçlanır:
Z = (A aBaCaE)v (A aBaDaE)v (A aBaCaD)v v(A aC a D a E)v (B aC a D a E).

Basitleştirilmiş fonksiyonun diyagramı Şekil 2'de gösterilmektedir. 5.61. Bu denklem mantık cebiri kullanılarak daha da basitleştirilebilir. İlk üç tam bağlacı parantezlerin (AaB) dışında tutabiliriz, son iki bağlacı ise - (C l D). Ortaya çıkan fonksiyon:
Z = [(A A B) A ((C A E) V (D A E) A C A X>))] V [(C A D) A ((A A E) V (B A Z))] . Yine de önemli bir sadeleştirme elde etmek mümkün olmadı.

Karşılaştırma devresi (karşılaştırıcı)

Dijital teknolojide sıklıkla dijital verileri birbiriyle karşılaştırmanız gerekir. Karşılaştırıcı olarak adlandırılan en basit karşılaştırma devresi, iki değişkenin durumunu birbiriyle karşılaştırır.
Değişkenler A ve B olarak etiketlensin. A ve B eşit olabilir. A, B'den büyük olabilir ve bunun tersi de geçerlidir. Karşılaştırıcının bu üç olası seçenek için üç çıkışı vardır. Bunlar X, Y ve Z olarak adlandırılır ve durumları aşağıdaki gibi atanır:
bir = Z => X = 1;
A > B^> Y= 1;
A< В =>Z = 1.
Bu nedenle, iki giriş değişkeni A ve B ve çıkış değişkenleri X, Y ve Z olan bir devrenin sentezlenmesi gerekir.
Doğruluk tablosu oluştururken şu kurallara uymalısınız: A = 1 ve B = 0 ise A, B'den büyüktür. Buna göre, B = 1 ve A = 0 ise B, A'dan büyüktür. Doğruluk tablosu Şekil 2'de gösterilmektedir. 5.62.
Mantıksal fonksiyonlar doğruluk tablosundan elde edilir:
X = (AaB)v(AaB);
Y = A a B;
Z = A a B.
Bu denklemler daha fazla basitleştirilmemiştir.İstenen şema Şekil 1'de gösterilmektedir. 5.63.

Pirinç. 5.62.

Pirinç. 5.63.

Fabrikadan çıkmadan önce transistörler kontrol edilerek dört önemli parametre A, B, C ve D'nin kabul edilebilir aralıkta olduğundan emin olun. Ölçüm için dört dijital sensör kullanılır. Ölçülen değer kabul edilebilir değerler aralığındaysa sensör 1 çıkışı verir. Ölçülen değer kabul edilebilir değer aralığının dışındaysa sensör 0 çıkışı verir.
Transistörler dijital bir devre kullanılarak sıralanır. Dört değerin tümü kabul edilebilir değerler aralığı içindeyse, çıkış değişkeni M 1 olur. Yalnızca B kabul edilebilir değerler aralığının dışındaysa, o zaman çıkış değişkeni N 1 olur. Yalnızca B ve D aralığın dışındaysa kabul edilebilir değerlere sahipse, çıkış değişkeni U 1 durumunu alır. Diğer tüm durumlarda, Z çıkışı 1'dir, bu da transistörün arızalı olduğu anlamına gelir.
Devrenin hesaplanması ve yalnızca NAND elemanları üzerine kurulması gerekir (“NAND bazında” da denir).
Girişler dört değişken A, B, C ve D'dir. Çıkış değişkenleri M, N, U ve Z'dir. A = 1, 5 = 1, C = 1 ve D = 1 ise M 1 olur. Bu, seçenek 16'dır. doğruluk tablosu (Şek.
5.64). A = \, 5 = 0, C = 1 ve D = 1 ise 1 olacaktır (seçenek 14). A 1 ise U 1'e eşit olacaktır, 5 = 0,
C = 1 ve D = 0 (seçenek 6). 6, 14 ve 16 hariç diğer tüm durumlarda Z— 1.

Pirinç. 5.64. Transistör sıralama devresi için doğruluk tablosu. Daha fazla netlik sağlamak amacıyla çıkış değişkeni için sıfırlar yazılmaz

Sonuç aşağıdaki mantıksal işlevlerdir:
M = AaBaCaD;
N = A a B a C a D; U = A a B aC a D. Z fonksiyonu 13 tam bağlaç içerir. M, N veya U 1'e eşit değilse Z her zaman 1'dir. Z için normal OR formunu yazmak daha iyidir (bkz. Şekil 5.64):
Z = (^4a5aCaD)v^a5aCaD^v^aBaCaZ));
Z = M v N vU. Daha sonra Z'nin doğrudan değeri için:
Z = M v N vU.

Pirinç. 5.65.

M, Nn U için bulunan işlevler basitleştirilemez. Z'nin NAND bazındaki denklemiyle birlikte yeniden hesaplanması gerekir:
M = AaBaCaD\
N = A a B a Cı D;
U = AlViSIO",
Z = M v N v U = M a N aU;
Z = M a N a U.
Bu denklemlerden Şekil 2'de gösterilen diyagram elde edilir. 5.65. M, N, U ve Z çıkışları aracılığıyla transistörleri 4 farklı kaba dağıtan mekanik bir cihaz kontrol edilebilir.

Analog sinyal işleme algoritmalarını uygularken genellikle matematiksel fonksiyonları hesaplamak gerekir. En yaygın fonksiyonlar logaritmik ve üstel fonksiyonlardır. Bu işlevler, iletilen veya kaydedilen bir sinyalin (sıkıştırma) dinamik aralığını azaltmak ve artırmak için şemalarda kullanılır. Üslü ve logaritma matematik devrelerinin bir diğer yaygın uygulaması, giriş sinyallerinin çarpımını ve bölümünü hesaplamaktır.

Doğrusal olmayan bir fonksiyonu hesaplamak için genellikle negatif geri beslemeyle çevrelenmiş bir işlemsel yükselteç kullanılır. Örnek olarak, Şekil 1 logaritmik amplifikatörün devresini göstermektedir.


Şekil 1. Logaritmik yükselteç devresi

Bu devrede, negatif geri besleme devresine, akımın uygulanan voltaja üstel bir bağımlılığı olan doğrusal olmayan bir eleman (yarı iletken diyot) dahil edilmiştir. Geri besleme eyleminin bir sonucu olarak, çıkış voltajının girişe bağımlılığı logaritmik hale gelir. Bu logaritma devresinin kazancı R1 tarafından belirlenir. Tipik olarak logaritma devresi birlik kazancı için tasarlanmıştır.

Bu devrede ikinci dereceden akım-gerilim karakteristiğine sahip bir diyot kullanılırsa, giriş sinyalinin karekökünü hesaplayacaktır. Karesel sinyal işleme sırasında sinyal genliğini belirlemek için devrelerde kullanılması uygundur.

(1),

Logaritmik fonksiyonun tersi olan üstel de benzer şekilde hesaplanır. Yalnızca bu durumda doğrusal olmayan eleman geri besleme devresine değil, amplifikatörün girişine dahil edilir. Şekil 2, bir işlemsel yükselteçteki üssün hesaplanmasına yönelik bir diyagramı göstermektedir.


Şekil 2. Üssü hesaplama şeması

Bu devrede ikinci dereceden akım-gerilim karakteristiğine sahip bir diyot kullanılırsa, devre giriş voltajının karesini hesaplayacak ve giriş sinyalinin gücünü belirlemek için bir devre olarak kullanılabilir.

Matematiksel fonksiyonları hesaplamak için bu devreleri kullanarak iki analog sinyalin çarpımını hesaplayabilirsiniz. Bu, değişkenlerin çarpımını bu değişkenlerin logaritmalarının toplamıyla değiştirmek için logaritmanın iyi bilinen özelliğini kullanır. Ters dönüşüm için üs hesaplama fonksiyonu kullanılır. Bu durumda logaritmanın tabanı tamamen önemsizdir.

(2),

İşlemsel yükselteçlerde formül (1)'i uygulayan çarpan devresi Şekil 3'te gösterilmektedir.



Şekil 3. İşlemsel yükselteç çarpan devresi

Uygulamanın basitliğine rağmen, böyle bir plan oldukça nadiren kullanılır, çünkü Çarpma yalnızca pozitif giriş değerleri için mümkündür. Bu nedenle genellikle temel alınarak oluşturulan çarpan devreleri kullanılır.

Fonksiyonları hesaplamak için belirli bir akım-gerilim karakteristiğine sahip doğrusal olmayan bir elemanın seçilmesi her zaman mümkün değildir. Bu durumda fonksiyonun parçalı doğrusal yaklaşımını kullanabilirsiniz. Geri besleme devresindeki direncin değerini değiştirerek, böylece fonksiyonun eğimini ayarlayarak işlemsel yükselteçte herhangi bir kazancı uygulamak kolaydır. Giriş voltajı değiştiğinde dirençleri değiştirmek, ayarladığımız kapatma voltajıyla beslenen diyot anahtarları kullanarak yapmak en kolay yoldur. Benzer bir diyagram Şekil 4'te gösterilmektedir.


Şekil 4. Fonksiyon yükseltici devresi

Transistör tabanlı çarpanlar genellikle daha karmaşık işlevleri hesaplamak için kullanılır. En basit durumda, X ve Y girişleri, giriş sinyalinin karesini hesaplamak için bir devre elde etmek üzere birleştirilebilir ( Y=X 2).

Elektronik voltaj regülatörleri olarak kullanılabilirler. Girişlerden birine sabit voltaj uygulayarak, çıkışta çıkışa sağlanan alternatif voltajın seviyesini düzenleyebilirsiniz.

Edebiyat:

"Matematiksel fonksiyonları hesaplama şemaları" makalesiyle birlikte şunu okuyun:

2.1 Algoritmanın geliştirilmesi.

Algoritma- Bu

A. bir sorunu çözmek veya bir hedefe ulaşmak için yapılacak eylem sırasının açıklaması;

B. temel veri işleme işlemlerini gerçekleştirme kuralları;

C. matematiksel formüller kullanılarak yapılan hesaplamaların açıklaması.

Bir algoritma geliştirmeye başlamadan önce görevi açıkça anlamak gerekir: Sonuç olarak neyin elde edilmesi gerektiği, hangi başlangıç ​​verilerine ihtiyaç duyulduğu ve neyin mevcut olduğu, bu veriler üzerinde ne gibi kısıtlamaların mevcut olduğu. Daha sonra, ilk verilerden gerekli sonucu elde etmek için hangi önlemlerin alınması gerektiğini yazmanız gerekir.

Pratikte algoritma sunmanın en yaygın biçimleri şunlardır:

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

Grafik (grafik sembollerden görüntüler);

Sahte kodlar (koşullu bir algoritmik dilde algoritmaların yarı resmileştirilmiş açıklamaları, hem programlama dilinin öğelerini hem de doğal dil ifadelerini, genel kabul görmüş matematiksel gösterimleri vb. içerir);

Programlama (programlama dillerindeki metinler).

Algoritma yazmanın sözlü yolu, veri işlemenin ardışık aşamalarının bir açıklamasıdır. Algoritma doğal dilde serbest bir biçimde belirtilmiştir.

Örnek. İki doğal sayının en büyük ortak bölenini (EBB) bulmak için bir algoritma yazın.

Algoritma aşağıdaki gibi olabilir:

1. iki sayı ayarlayın;

2. Eğer sayılar eşitse, bunlardan herhangi birini cevap olarak alın ve durun, aksi halde algoritmayı çalıştırmaya devam edin;

3. Sayıların en büyüğünü belirleyin;

4. Büyük sayıyı, büyük ve küçük sayılar arasındaki farkla değiştirin;

5. Algoritmayı 2. adımdan itibaren tekrarlayın.

Açıklanan algoritma herhangi bir doğal sayıya uygulanabilir ve soruna bir çözüm getirmelidir. 125 ve 75 sayılarının en büyük ortak bölenini belirlemek için bu algoritmayı kullanarak kendinizi buna ikna edin.

Sözlü yöntem aşağıdaki nedenlerden dolayı yaygın değildir:

Bu tür açıklamalar kesinlikle resmileştirilemez;

Notların çok uzun olmasından dolayı sıkıntı çekiyorsunuz;

Bireysel düzenlemelerin yorumlanmasında belirsizliklere yer vardır.

Algoritmaların grafiksel sunumu sözlü olana göre daha derli toplu ve görseldir.

Grafiksel olarak sunulduğunda algoritma, her biri bir veya daha fazla eylemin yürütülmesine karşılık gelen, birbirine bağlı fonksiyonel blokların bir dizisi olarak tasvir edilir.

Bu grafik gösterime akış şeması veya akış şeması denir.

Sözde kod, algoritmaları tekdüze yazmak için tasarlanmış bir gösterimler ve kurallar sistemidir.

Doğal ve resmi diller arasında bir ara yer tutar.

Bir yandan sıradan doğal dile yakındır, dolayısıyla algoritmalar normal metin gibi yazılabilir ve okunabilir. Öte yandan, sözde kod, algoritma gösterimini genel kabul gören matematiksel gösterime yaklaştıran bazı biçimsel yapılar ve matematiksel sembolizm kullanır.

Sahte kodda, resmi dillerde bulunan komutların yazılması için katı sözdizimsel kurallar benimsenmemiştir; bu, algoritmanın tasarım aşamasında yazılmasını kolaylaştırır ve soyut bir uygulayıcı için tasarlanmış daha geniş bir komut kümesinin kullanılmasını mümkün kılar. Bununla birlikte, sözde kod genellikle biçimsel dillerin doğasında bulunan bazı yapıları içerir; bu da, sözde kod yazmaktan biçimsel bir dilde algoritma yazmaya geçişi kolaylaştırır. Özellikle sözde kodda ve resmi dillerde, anlamı kesin olarak belirlenen işlev sözcükleri vardır. Sözde kodun tek veya resmi bir tanımı yoktur, bu nedenle işlev sözcükleri kümesinde ve temel (temel) yapılarda farklılık gösteren çeşitli sözde kodlar mümkündür.

2.2 Blok şeması.

Akış şeması, her biri bir veya daha fazla eylemin yürütülmesine karşılık gelen, birbirine bağlı fonksiyonel blokların bir dizisi olarak tasvir edildiği bir algoritmanın grafiksel bir temsilidir.

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

İşte en sık kullanılan semboller.

Sembol adı Tanımlama ve doldurma örneği Açıklama
İşlem Hesaplamalı eylem veya eylem dizisi
Çözüm Koşulların kontrol edilmesi
Değişiklik Döngünün başlangıcı
Önden tanımlanmış işlem Alt programa göre hesaplamalar, standart alt program
Giriş çıkış Genel olarak G/Ç
Başla dur Algoritmanın başlangıcı, sonu, alt programa giriş ve çıkış
Belge Sonuçları yazdırma

"Süreç" bloğu, verilerin anlamını, sunum biçimini veya yerleşimini değiştiren bir eylemi veya eylemler dizisini belirtmek için kullanılır. Diyagramın netliğini artırmak için birkaç ayrı işleme bloğu tek bir blokta birleştirilebilir. Bireysel operasyonların sunumu oldukça ücretsizdir.

"Karar" bloğu koşullu kontrol geçişlerini belirtmek için kullanılır. Her "çözüm" bloğu, tanımladığı soruyu, koşulu veya karşılaştırmayı tanımlamalıdır.

"Değişiklik" bloğu döngüsel yapıları düzenlemek için kullanılır. (Değişiklik kelimesi değişiklik, dönüşüm anlamına gelir). Bloğun içine, her tekrar için başlangıç ​​değeri, sınır koşulu ve parametre değerini değiştirme adımının belirtildiği bir döngü parametresi yazılır.

"Önceden tanımlanmış süreç" bloğu, bazı bağımsız modüller biçiminde özerk olarak var olan yardımcı algoritmalara yapılan çağrıları ve kütüphane rutinlerine yapılan çağrıları belirtmek için kullanılır.

Örnek. Kenarları a, b, c olan bir üçgenin ha, hb, hc yüksekliklerini belirlemek için bir algoritmanın blok diyagramını çizin;



Nerede p = (a + b + c) / 2.
Çözüm. Gösterimi tanıtalım o zaman ha a = t/a, h b = t/b, h c = t/c. Akış şeması başlangıç, giriş a, b, c, hesaplama p, t, h'yi içermelidir a, h b, h c , sonuçları çıktılayın ve durun.

2.3 Algoritma yapıları.

Algoritmalar, bireysel temel (yani temel) unsurlardan oluşan belirli yapılar olarak düşünülebilir. Doğal olarak, algoritmalara bu yaklaşımla, tasarımlarının temel ilkelerinin incelenmesi, bu temel unsurların incelenmesiyle başlamalıdır.

Herhangi bir algoritmanın mantıksal yapısı üç temel yapının birleşimiyle temsil edilebilir: takip, dallanma ve döngü.

Temel yapıların karakteristik özelliği bir girdi ve bir çıktının varlığıdır.

1. Temel yapı aşağıdaki gibidir. Birbirini takip eden bir dizi eylemden oluşur:

2. Temel dallanma yapısı. Durumun kontrol edilmesine bağlı olarak (evet veya hayır), algoritmayı çalıştırmanın alternatif yollarından birinin seçimini sağlar. Her yol ortak bir çıktıya yol açar, böylece algoritma hangi yol seçilirse seçilsin çalışmaya devam edecektir.

Yapı dallanma dört ana varyantta mevcuttur:

Eğer-o halde-else;

Seçim farklı.

1) if-if koşulu ardından eylem biter if 2) if-else if koşulu ardından eylemler 1 aksi takdirde eylemler 2 sona er if 3) koşul 1 ile seçim seçimi: koşul 2 ile eylemler 1: eylemler 2. . . . . . . . . . . . N koşulu altında: eylemler N seçimin sonu 4) seçim - aksi takdirde koşul 1 altında seçim: koşul 2 altında eylem 1: eylem 2. . . . . . . . . . . . N koşulu altında: eylemler N aksi takdirde eylemler N+1 seçimin sonu

Örnek. Fonksiyonu hesaplamak için algoritmanın blok diyagramını oluşturun

Temel yapı bir döngüdür. Döngünün gövdesi adı verilen belirli bir dizi eylemin tekrar tekrar yürütülmesini sağlar.

Döngü yapısı üç ana versiyonda mevcuttur:

Döngü türü İçin.

Belirli bir aralıktaki belirli bir değişkenin (döngü parametresi) tüm değerleri için döngü gövdesinin yürütülmesi talimatını verir.

Döngü türü Hoşçakal.

While sözcüğünden sonra yazılan koşul karşılandığı sürece döngünün gövdesinin yürütülmesini emreder.

Döngü türü yaparken.

While sözcüğünden sonra yazılan koşul karşılandığı sürece döngünün gövdesinin yürütülmesini emreder. Döngü gövdesi yürütüldükten sonra koşul kontrol edilir.

For ve while döngülerinin aynı zamanda koşulun ön kontrolünü içeren döngüler olarak da adlandırıldığını ve to do - while - koşulun sonradan kontrol edildiği döngüler olarak da adlandırıldığını unutmayın. Başka bir deyişle, döngü sonlandırma koşulu başlangıçta doğru değilse, for ve while döngülerinin gövdeleri bir kez bile çalıştırılmayabilir. Döngüyü sonlandırma koşulu başlangıçta doğru olmasa bile, döngünün gövdesini en az bir kez yürütülene kadar yapın.

i için döngü i1'den i2'ye adım i3 döngü gövdesi (eylem sırası) döngü sonu döngü while koşulu döngü gövdesi (eylem sırası) döngü sonu döngü döngüsü gövdesini (eylem sırası) döngünün sonuna kadar tamamlayın

belirli bir doğrulukla (belirli bir alternatif güç serisi için, gerekli doğruluk, bir sonraki terimin mutlak değer olarak küçülmesiyle elde edilecektir).

Toplamları hesaplamak tipik bir döngüsel görevdir. Bizim spesifik problemimizin özelliği, terim sayısının (ve dolayısıyla döngü gövdesinin tekrar sayısının) önceden bilinmemesidir. Bu nedenle gerekli doğruluk elde edildiğinde döngünün sona ermesi gerekir.

Bir algoritma derlerken terimlerin işaretlerinin değiştiğini ve terimlerin paylarındaki x sayısının gücünün arttığını dikkate almanız gerekir.

Her i'inci adımda kısmi toplamı hesaplayarak bu sorunu doğrudan çözmek

S:=S+(-1)**(i-1)*x**i/i ,

çok sayıda işlem gerektiren, çok verimsiz bir algoritmayla karşı karşıya kalacağız. Hesaplamaları şu şekilde düzenlemek çok daha iyidir: herhangi bir terimin payını p harfiyle belirtirseniz, sonraki terimin payı -р*х'a eşit olacaktır (eksi işareti, işaretlerin değişmesini sağlar) terimler) ve terimin kendisi m olacaktır

i terimin numarası olmak üzere p/i'ye eşit olacaktır.

Yinelemeli bir döngü içeren bir algoritmaya yinelemeli algoritma denir. Yinelemeli algoritmalar, yinelemeli sayısal yöntemlerin uygulanmasında kullanılır. Yinelemeli algoritmalarda döngüden çıkma koşulunun (yinelemeli sürecin yakınsaması) sağlanması gerekir. Aksi halde algoritma döngüye girecektir; Algoritmanın ana özelliği olan etkililik yerine getirilmeyecektir.

İç içe geçmiş döngüler.

Bir döngünün gövdesi içinde belirli bir dizi ifadenin tekrarlanmasının, yani bir iç döngünün düzenlenmesinin gerekli olduğu durumlar olabilir. Bu yapıya döngü içindeki döngü veya iç içe geçmiş döngüler adı verilir. İlmeklerin yuvalanma derinliği (yani iç içe geçmiş ilmeklerin sayısı) farklı olabilir.

Böyle bir yapı kullanıldığında, bilgisayar zamanından tasarruf etmek için, iç döngünün parametresine bağlı olmayan tüm ifadelerin iç döngüden dış döngüye taşınması gerekir.

Örnek için iç içe geçmiş döngüler. Verilen A(5,3) matrisinin elemanlarının toplamını hesaplayın.

Örnekşimdilik iç içe geçmiş döngüler. Verilen A(10,10) matrisinin çift satır ve sütunların kesişiminde bulunan elemanlarının çarpımını hesaplayın.

Fok
Konunun devamı:
işletim sistemi

CoffeeZip, Windows'ta ana arşivleyici olarak kullanılabilecek yüksek kaliteli bir arşivleyicidir. Bu program Windows içerik menüsüne entegre olur...