Schemat obliczeń. „Tworzenie algorytmów VBA. Schemat blokowy. Struktury algorytmiczne. Operatory wejścia i wyjścia w języku programowania Pascal

Codzienne życie każdego człowieka wiąże się z rozwiązywaniem w pracy lub na studiach ogromnej liczby zadań o różnym stopniu trudności. Niektóre zadania są tak proste, że wykonując je, pewne czynności wykonujemy automatycznie, nawet bez zastanowienia. Rozwiązanie każdego, nawet najprostszego problemu, zwykle odbywa się sekwencyjnie w kilku etapach. Ten rodzaj sekwencji rozwiązywania problemów nazywany jest algorytmem. Dzisiaj przyjrzymy się, czym są algorytmy liniowe, jak przedstawia się ich strukturę, jak się je rozwiązuje i programuje.

Język algorytmiczny

Koncepcja ta stanowi precyzyjną instrukcję dla wykonawcy, aby wykonał określoną sekwencję działań, których celem jest rozwiązanie zadania.

Język ten służy do opisywania algorytmów, które są zwykle zorientowane na użytkownika.

  • Blok początkowy-końcowy algorytmu. Na bloku znajduje się napis „początek” lub „koniec”.
  • Blok wejścia/wyjścia danych. Blok ten jest przedstawiony jako równoległobok. Umieszczone są na nim napisy: „wejście”, „wyjście”, „druk”. Towarzyszy im także lista zmiennych wejściowych lub wyjściowych.
  • Blok arytmetyczny lub blok decyzyjny. Odpowiada prostokątowi. W bloku powinien znajdować się napis: „operacja”, „grupa operacji”.

Za pomocą takich schematów blokowych przedstawiono rozwiązanie algorytmów liniowych. Następnie porozmawiajmy o funkcjach przypisywania wartości.

Liniowe algorytmy obliczeniowe

Główną elementarną czynnością w algorytmie obliczeniowym jest przypisanie zmiennej wartości. W przypadku, gdy o wartości stałej decyduje rodzaj jej zapisu, wartość zmiennej otrzyma określoną wartość wyłącznie w wyniku przypisania. Można to zrobić na dwa sposoby: za pomocą polecenia przypisania; za pomocą polecenia wejściowego.

Przykład rozwiązania algorytmu liniowego

Podajmy przykład opisu zasad dzielenia ułamków zwyczajnych za pomocą algorytmu liniowego, który w podręcznikach szkolnych ma następującą treść:

  • licznik ułamka 1 należy pomnożyć przez mianownik ułamka 2;
  • mianownik ułamka 1 należy pomnożyć przez licznik ułamka 2;
  • musisz zapisać ułamek, w którym licznik jest wynikiem zdobycia 1 punktu, a mianownik jest wynikiem zdobycia 2 punktów. Postać algebraiczna tej reguły jest następująca:

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

Zbudujmy więc algorytm dzielenia ułamków dla komputera. Aby się nie pomylić, zastosujemy dla zmiennych taki sam zapis, jak we wzorze wskazanym powyżej. a, b, c, d - dane źródłowe w postaci zmiennych całkowitych. Wynikiem będą również wartości całkowite. Rozwiązanie w języku algorytmicznym będzie następujące:

alg Podział ułamków

nienaruszony a, b, c, d, m, n

wprowadź a, b, c, d

kon

Graficzna forma rozwiązania

Schemat algorytmu liniowego opisanego powyżej wygląda następująco:

Polecenie przypisania wartości ma następujący format:

Zmienna:=wyrażenie.

Znak „:=” jest odczytywany jako przypisany.

Przypisanie to polecenie niezbędne komputerowi do wykonania następujących czynności:

  • obliczenia wyrażeń;
  • przypisanie otrzymanej wartości do zmiennej.

Powyższy algorytm zawiera dwa polecenia jako przypisanie. Na schemacie blokowym instrukcja przypisania musi być zapisana w prostokącie zwanym blokiem obliczeniowym.

Opisując algorytmy liniowe, nie ma szczególnej potrzeby ścisłego przestrzegania ścisłych zasad podczas pisania wyrażeń. Możesz je zapisać, używając zwykłej formy matematycznej. W końcu nie jest to ścisła składnia języka programowania.

W podanym przykładowym algorytmie znajduje się również polecenie wejściowe:

Wpisz a, b, c, d.

Polecenie wejściowe na schemacie blokowym jest zapisane w równoległoboku, to znaczy w bloku wejścia-wyjścia. Wykonując to polecenie, procesor przerywa działanie do czasu wykonania przez użytkownika określonych czynności. Mianowicie: użytkownik musi wpisać zmienne wejściowe (ich wartości) na (klawiatura) i nacisnąć klawisz Enter, który pełni funkcję klawisza Enter. Ważne jest, aby wartości wprowadzane były w tej samej kolejności, w jakiej odpowiadają im zmienne znajdujące się na liście wejściowej.

Algorytm liniowy. Jego programowanie

Jak wspomniano na początku artykułu, programy liniowe mogą zawierać następujące instrukcje:

  • zadanie;
  • wejście;
  • wniosek.

Oznacza to, że za pomocą wymienionych operatorów implementowane są algorytmy.

Zatem w języku programu jest to zapisane w ten sposób:

Niech A = B, gdzie A jest zmienną, B jest wyrażeniem. Na przykład A = Y + 20.

Instrukcja wejściowa wygląda następująco:

WEJŚCIE, na przykład: WEJŚCIE C

Operator wyprowadzania danych, wartości, zapisuje się w następującej postaci:

WYDRUKOWAĆ. Na przykład PRINT S.

Podajmy prosty przykład. Musimy napisać program, który znajdzie sumę liczb A i B wpisanych z klawiatury.

W języku programowania otrzymamy program, którego tekst pokazano poniżej.

Operatory wejścia i wyjścia w języku programowania Pascal

Pascal nie udostępnia specjalnych operatorów wskazujących operacje wejściowe i wyjściowe stosowane w algorytmach liniowych. W programach wymiana informacji odbywa się za pomocą wbudowanych procedur. Ponieważ nie ma potrzeby wstępnego opisu standardowej procedury, jest ona dostępna dla każdego programu, który zawiera jej wywołanie. Ponadto nazwa wspomnianej procedury nie jest słowem zastrzeżonym.

Podczas wprowadzania danych operatory te odnoszą się do standardowej procedury wprowadzania danych, która jest już wbudowana w program.

Przeczytaj (A, B, C), gdzie A, B, C to zmienne, które należy wprowadzić do pamięci RAM w celu zapamiętania.

Readlnn (x1, y, x2) - po zakończeniu wprowadzania kursor przesuwa się na początek nowej linii.

Czytajlnn; - wskazuje, że czekasz na naciśnięcie „Enter”. Zwykle stwierdzenie to wstawia się do tekstu przed ostatnim „Końcem”, aby zapisać wyniki wykonania programu na ekranie zawartości.

Dane wyświetlane są na ekranie monitora za pomocą następujących operatorów:

Zapis (A, B, C) - podając wartości A, B, C w jednej linii, kursor nie opuszcza bieżącej linii.

Writeln (z, y, z2) - po zakończeniu wyprowadzania wartości kursor w tej pozycji przesunie się do nowej linii.

Napisz; - wskazuje pominięcie jednej linii i przejście na początek nowej.

To właśnie za pomocą takich prostych operatorów dane są wprowadzane i wysyłane w języku Pascal.

podsumowanie innych prezentacji

„Podstawowe struktury algorytmiczne” - Wykonywanie poleceń „treści pętli”. Schemat blokowy struktury algorytmicznej „rozgałęzionej”. Niech n=5; ja=4. Schemat blokowy algorytmu cyklicznego. Koniec. Struktura algorytmiczna „wybór”. Niech n=5; ja=5. Początek. Struktura rozgałęziona. Niech n=5; ja=6. Podstawowe typy struktur algorytmicznych. Struktura algorytmiczna „cykl”. Liczba dodatnia. Schemat blokowy struktury algorytmicznej „wyboru”. Schemat blokowy algorytmu liniowego.

„Rodzaje algorytmów” - Sprzątanie mieszkań. Otwórz torbę. Motto lekcji. Wieże Hanoi. Nazwa figury. Obejrzyj kreskówkę. Zbierz plony. Wprowadzenie do algorytmu. Zbliż się do skrzyżowania. Algorytmy cykliczne. Wejdź do ogrodu. Palmy. Algorytm działań człowieka. Dyktando graficzne. Algorytmy zapisu. Algorytm.

Rejestrowanie cyklu w procedurze. Korekta procedury. Kolory podstawowe. Narysujmy ścianę. Co to jest algorytm? Zespół. Interaktywny poradnik. Rysowanie dachu. Narysujmy dom. Porysujmy. Rysujemy okna. Dom jest gotowy. Cykl. Wiedza. Zmień kolor pióra.

„Problemy z algorytmem liniowym” - X = 0 Brak rozwiązań. Y = 2. X = 3 Y = 1/48. Podano współrzędne wierzchołków trójkąta ABC. Oblicz wartość funkcji Y przy X=2, korzystając ze schematu algorytmu. Zamień A na większe jednostki informacji. Algorytmizacja to proces opracowywania algorytmu (planu działania) w celu rozwiązania problemu. X = -1 Nie ma rozwiązań. Przykłady rozwiązywania problemów. Podano długości boków trójkąta A, B, C. Znajdź obszar trójkąta S. Zrób schemat blokowy algorytmu rozwiązania problemu.

„Konstrukcje algorytmiczne” - Metoda przedstawiania algorytmów w postaci wykresu. Rozgałęzianie. Prezentacja algorytmów w formie opisu sekwencji działań. Formy prezentacji algorytmów. Schemat blokowy algorytmu „Tapetowanie”. Projekty algorytmiczne. Algorytm rozwiązania problemu. Schemat blokowy. Graficzny sposób prezentacji algorytmów. Metody prezentacji algorytmów. Algorytm. Złożony algorytm. Schematy blokowe podstawowych konstrukcji.

„Główne typy struktur algorytmicznych” - Zapis algorytmów w formie słownej. Praca w grupach. Struktura. Pisownia przedrostków. Podstawowe typy struktur algorytmicznych. Sprawdzanie samodzielnej pracy. Ćwiczenia fizyczne. Zadania utrwalające wiedzę. Algorytm. Podstawowa struktura. Ustawianie parametrów początkowych. Przepis na zrobienie herbaty. Rozgałęzianie. Znajdź korzeń. Pętla z warunkiem końcowym. Cykl. Blokuj znaki. Koniec algorytmu. Główne typy struktur agrorytmicznych.

Ogólne instrukcje
Aby zsyntetyzować obwody w rozdz. 5.1 opisuje następujące kroki:
1. Opis funkcji wymaganego obwodu.
2. Przypisanie zmiennych wejściowych i wyjściowych oraz przypisanie wartości 0 i 1.
3. Sporządzenie tabeli prawdy.
4. Wyznaczanie niezbędnych operacji logicznych.
5. Uproszczenie i ewentualnie przekształcenie obwodu.
Jeśli znana jest tablica prawdy, zaleca się teraz rozpoczęcie czwartego etapu od kompilacji normalnej postaci OR. Zostanie to maksymalnie uproszczone za pomocą diagramu Carnota. Na końcu kroku 4 uzyskuje się uproszczoną funkcję logiczną, którą można wykorzystać do zbudowania logicznego obwodu cyfrowego.
Krok 5 sprawdza, czy dalsze uproszczenie funkcji znalezionej za pomocą algebry logicznej jest możliwe i racjonalne. Jeżeli tak, należy przeprowadzić uproszczenie.
Teraz musimy dowiedzieć się, jakie elementy logiczne są dostępne. Funkcję logiczną należy przekształcić tak, aby zawierała tylko dostępne elementy logiczne. Następnie możesz złożyć obwód.

Cyfrowy obwód włączania/wyłączania z wielu lokalizacji

Korzystając z bramek logicznych, należy zsyntetyzować obwód, który działa jako obwód włączający/wyłączający z wielu lokalizacji. Stan wyjścia powinien się zmienić tylko wtedy, gdy zmieni się stan jednego z wejść. Jeżeli oba wejścia zmienią swój stan, to stan wyjścia nie powinien się zmienić. Obwód musi być zbudowany na elementach OR-NOT.
Pożądany obwód ma dwa wejścia i jedno wyjście. Zmienne wejściowe nazywane są A i B. Zmienna wyjściowa nazywa się Z (rysunek 5.47).
Tabela prawdy obwodu z dwiema zmiennymi wejściowymi ma 4 opcje (ryc. 5.48). Stan początkowy Z dla pierwszej opcji można ustawić w dowolny sposób. Wybrano Z = 0.
Przy przejściu z opcji 1 do opcji 2 zmienna A zmienia swój stan. Zmienna B nie zmienia stanu. Jeżeli tylko jedno z wejść zmieni stan, to zgodnie z zadanym zadaniem wyjście Z musi zmienić swój stan. Z musi być równe 1.
Przy przejściu z opcji 2 do opcji 3 zmienne A i B zmieniają swój stan. Z nie powinno się zmieniać. Przechodząc z opcji 3 do opcji 4, zmienna A zmienia swój stan z 0 na 1. B pozostaje równa 1. Zatem Z musi zmienić stan z 1 na 0. Tabela prawdy jest gotowa. Mogłoby to wyglądać inaczej, gdybyśmy w opcji 1 wybrali Z= 1.
W przypadku tabeli prawdy (ryc. 5.48) należy zapisać normalną formę OR. To wygląda tak:
Z = (AaB)w(AaB).
Jeśli na diagram Carnota wprowadzimy postać normalną OR, zobaczymy, że dalsze uproszczenia nie są już możliwe (ryc. 5.49).
Ponieważ obwód musi być zbudowany na elementach OR-HE, konieczne jest przekształcenie równań:
Z = (AaB)w(AaB)-,
Z = (AaB)v(AaB),
Z = AaBaAaB.

Ryż. 5.50 Obwód cyfrowy

Obwód zbudowany według przekształconego równania pokazano na rys. 5,50.

Dwa z trzech przełączników

Systemy związane ze zwiększonym ryzykiem, takie jak elektrownia jądrowa, muszą zostać natychmiast wyłączone w przypadku awarii. Wyłączenie następuje automatycznie za pomocą obwodu cyfrowego. W czujnikach awaryjnych odpowiedzialnych za wyłączenia mogą wystąpić fałszywe alarmy. Dlatego w każdym krytycznym miejscu instalowane są trzy identyczne czujniki awaryjne (ryc. 5.51).
Wyłączenie powinno nastąpić dopiero po uruchomieniu co najmniej dwóch z trzech czujników alarmowych. Takie podejście zapobiega niepotrzebnym przestojom systemów powodującym straty finansowe. Po zadziałaniu czujniki awaryjne przyjmują stan 1. Układ należy wyłączyć jeżeli na wyjściu obwodu aktywny jest stan 1.
Zatem wymagany jest obwód, którego wyjście jest w stanie 1, gdy co najmniej 2 z 3 wejść są w stanie 1. Obwód ten nazywany jest przełącznikiem „dwa z trzech”.
Zmienne wejściowe noszą nazwy A, B i C. Zmienną wyjściową jest Z. Stwórzmy tabelę prawdy, korzystając z słownego opisu zasady działania obwodu. Ilekroć dwie zmienne wejściowe są równe 1, Z = 1. Jeśli wszystkie trzy zmienne wejściowe są równe 1, Z musi być również równe 1. Taka tabela prawdy jest pokazana na ryc. 5,52.
Następnie, zgodnie ze skompilowaną tabelą prawdy, zapisuje się normalną formę OR:

Ryż. 5.51.

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

Normalną postać OR można uprościć za pomocą diagramu Carnota (ryc. 5.53). Można utworzyć trzy podwójne grupy. Uproszczone równanie to:
Z = (AaB)w(BaC)w(AaC).
Korzystając z tego równania, możesz zbudować diagram (ryc. 5.54).
Często pod ręką są tylko elementy OR-HE. Aby zbudować obwód wykorzystując wyłącznie elementy OR-HE, przekształcamy równanie: na °-
Z = (AaB)v(BaC)v(AaC);
======= S O.
Z = (A l B)v (B aC)v (A lC);
—=====—= Ryc. 5,55. Obwód przełączający „dwa”
Z = AlVlVlSlAlS. z trzech” na elementach Sh1I-NE.
Odpowiedni schemat pokazano na ryc. 5,55.

Obwód parzystości

Aby wykryć błędy w kodach (patrz sekcje 8.7 i 8.8), a także do zadań kontrolnych i monitorujących, często wymagany jest obwód, w którym na wyjściu wynosi 1, gdy parzysta liczba wejść wynosi 1.
Obwód ten nazywany jest obwodem parzystości.
Wymagana jest synteza obwodu z czterema wejściami. Zmienne wejściowe to A, B, C i D. Zmienna wyjściowa to Y.
Najpierw musisz utworzyć tabelę prawdy. Y będzie zawsze równe 1, jeśli 0, 2 lub 4 zmienne wejściowe będą równe 1 (rysunek 5.56).
Z tabeli prawdy otrzymujemy normalną formę OR:
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).

Poszczególne pełne spójniki są ponumerowane. Spróbujmy uprościć normalną postać OR za pomocą mapy Karnaugha (ryc. 5.57). Mamy tu do czynienia z rzadkim przypadkiem, w którym utworzenie grupy jest niemożliwe. Oznacza to, że tej normalnej postaci OR nie można uprościć, a jej diagram pokazano na ryc. 5,58.

Progowy obwód logiczny to obwód, w którym pewna minimalna liczba zmiennych wejściowych musi mieć stan 1, aby na wyjściu pojawiła się logiczna jedynka.
Na przykład musisz obliczyć obwód z pięcioma zmiennymi wejściowymi. Wartość wyjściowa powinna wynosić 1 tylko wtedy, gdy co najmniej 4 wejścia mają wartość 1.
Zmienne wejściowe noszą nazwy A, B, C, D i E. Zmienną wyjściową jest Z. Najpierw musimy zdefiniować tabelę prawdy. Przy pięciu zmiennych możliwe są 32 opcje (ryc. 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).
Forma normalna OR składa się z sześciu pełnych spójników.
Normalną postać OR można uprościć za pomocą diagramu Carnota (ryc. 5.60). Można utworzyć 5 podwójnych grup. Powoduje to następującą uproszczoną funkcję logiczną:
Z = (A aBaCaE)v (A aBaDaE)v (A aBaCaD)v v(A aC a D a E)v (B aC a D a E).

Schemat uproszczonej funkcji pokazano na ryc. 5.61. Równanie to można jeszcze bardziej uprościć, stosując algebrę logiczną. Dla pierwszych trzech pełnych spójników możemy wyjąć z nawiasu (AaB), dla dwóch ostatnich - (C l D). Wynikowa funkcja to:
Z = [(A A B) ZA ((CA E) V (D A E) A C A X>))] V [(C A D) ZA ((A A E) V (BA Z))] . Mimo to nie udało się osiągnąć znaczących uproszczeń.

Obwód porównawczy (komparator)

W technologii cyfrowej często zachodzi potrzeba porównywania danych cyfrowych ze sobą. Najprostszy układ porównawczy, tzw. komparator, porównuje ze sobą stan dwóch zmiennych.
Niech zmienne będą oznaczone A i B. A i B mogą być równe. A może być większe niż B i odwrotnie. Komparator ma trzy wyjścia dla tych trzech możliwych opcji. Oznaczono je jako X, Y i Z, a ich stany przypisano w następujący sposób:
A = Z => X = 1;
A > B^> Y= 1;
A< В =>Z = 1.
Zatem konieczne jest zsyntetyzowanie obwodu z dwiema zmiennymi wejściowymi A i B oraz zmiennymi wyjściowymi X, Y i Z.
Tworząc tabelę prawdy, należy przestrzegać zasad: A jest większe od B, jeśli A = 1 i B = 0. Odpowiednio B jest większe od A, jeśli B = 1 i A = 0. Tablicę prawdy pokazano na ryc. 5,62.
Funkcje logiczne uzyskuje się z tabeli prawdy:
X = (AaB)v(AaB);
Y = A i B;
Z = A i B.
Równania te nie są już bardziej upraszczane.Pożądany schemat pokazano na rys. 5,63.

Ryż. 5,62.

Ryż. 5,63.

Przed opuszczeniem fabryki tranzystory są sprawdzane, czy cztery ważne parametry A, B, C i D mieszczą się w dopuszczalnym zakresie. Do pomiaru wykorzystywane są cztery czujniki cyfrowe. Czujnik wyprowadza wartość 1, jeżeli zmierzona wartość mieści się w zakresie dopuszczalnych wartości. Jeżeli zmierzona wartość wykracza poza zakres dopuszczalnych wartości, czujnik podaje na wyjściu wartość 0.
Tranzystory są sortowane za pomocą obwodu cyfrowego. Jeżeli wszystkie cztery wartości mieszczą się w zakresie wartości dopuszczalnych, zmienna wyjściowa M przyjmuje wartość 1. Jeśli tylko B znajduje się poza zakresem wartości dopuszczalnych, wówczas zmienna wyjściowa N przyjmuje wartość 1. Jeżeli tylko B i D znajdują się poza zakresem dopuszczalne wartości, wówczas zmienna wyjściowa U otrzymuje stan 1. We wszystkich pozostałych przypadkach wyjście Z wynosi 1, co oznacza, że ​​tranzystor jest uszkodzony.
Należy obliczyć obwód i zbudować go wyłącznie na elementach NAND (zwanych także „w oparciu o NAND”).
Wejściami są cztery zmienne A, B, C i D. Zmienne wyjściowe to M, N, U i Z. M staje się 1, jeśli A = 1, 5 = 1, C = 1 i D = 1. Jest to opcja 16 w tabela prawdy (ryc.
5,64). będzie wynosić 1, jeśli A = \, 5 = 0, C = 1 i D = 1 (opcja 14). U będzie równe 1, jeśli A wynosi 1, 5 = 0,
C = 1 i D = 0 (opcja 6). We wszystkich pozostałych przypadkach, z wyjątkiem 6, 14 i 16, Z- 1.

Ryż. 5,64. Tabela prawdy dla obwodu sortowania tranzystorów. Dla większej przejrzystości zera dla zmiennej wyjściowej nie są zapisywane

Wynikiem są następujące funkcje logiczne:
M = AaBaCaD;
N = ZA B za C za D; U = A a B aC a D. Funkcja Z zawiera 13 pełnych spójników. Z wynosi wtedy zawsze 1, jeśli ani M, N, ani U nie są równe 1. Lepiej jest zapisać normalną postać OR dla Z (patrz rys. 5.64):
Z = (^4a5aCaD)v^a5aCaD^v^aBaCaZ));
Z = M v N vU. Następnie dla bezpośredniej wartości Z:
Z = M v N vU.

Ryż. 5,65.

Funkcji znalezionych dla M, Nn U nie można uprościć. Należy je przeliczyć razem z równaniem dla Z na bazę NAND:
M = AaBaCaD\
N = ZA B aC l D;
U = AlVlS1O”,
Z = M v N v U = M za N aU;
Z = M i N i U.
Z tych równań uzyskuje się diagram pokazany na ryc. 5,65. Za pomocą wyjść M, N, U i Z można sterować urządzeniem mechanicznym, które rozdziela tranzystory do 4 różnych pojemników.

Implementując algorytmy przetwarzania sygnałów analogowych często konieczne jest obliczenie funkcji matematycznych. Najpopularniejszymi funkcjami są funkcje logarytmiczne i wykładnicze. Funkcje te wykorzystywane są w schematach do zmniejszania i zwiększania zakresu dynamiki nadawanego lub rejestrowanego sygnału (kompensacja). Innym powszechnym zastosowaniem obwodów matematycznych wykładników i logarytmów jest obliczanie iloczynu i podziału sygnałów wejściowych.

Do obliczenia funkcji nieliniowej często stosuje się wzmacniacz operacyjny otoczony ujemnym sprzężeniem zwrotnym. Jako przykład rysunek 1 pokazuje obwód wzmacniacza logarytmicznego.


Rysunek 1. Układ wzmacniacza logarytmicznego

W tym obwodzie element nieliniowy (dioda półprzewodnikowa) jest zawarty w obwodzie ujemnego sprzężenia zwrotnego, w którym wykładnicza zależność prądu od przyłożonego napięcia. W wyniku działania sprzężenia zwrotnego zależność napięcia wyjściowego od wejścia staje się logarytmiczna. Wzmocnienie tego obwodu logarytmicznego jest określone przez R1. Zazwyczaj obwód logarytmiczny jest zaprojektowany z myślą o wzmocnieniu jedności.

Jeżeli w tym obwodzie zostanie zastosowana dioda o kwadratowej charakterystyce prądowo-napięciowej, wówczas obliczy ona pierwiastek kwadratowy z sygnału wejściowego. Jest wygodny w użyciu w obwodach do określania amplitudy sygnału podczas przetwarzania sygnału kwadraturowego.

(1),

Odwrotność funkcji logarytmicznej, wykładniczą, oblicza się w podobny sposób. Tylko w tym przypadku element nieliniowy nie jest zawarty w obwodzie sprzężenia zwrotnego, ale na wejściu wzmacniacza. Rysunek 2 przedstawia schemat obliczania wykładnika wzmacniacza operacyjnego.


Rysunek 2. Schemat obliczania wykładnika

Jeżeli w tym obwodzie zostanie zastosowana dioda o kwadratowej charakterystyce prądowo-napięciowej, wówczas obwód obliczy kwadrat napięcia wejściowego i może służyć jako obwód do określenia mocy sygnału wejściowego.

Używając tych obwodów do obliczania funkcji matematycznych, można obliczyć iloczyn dwóch sygnałów analogowych. Wykorzystuje to dobrze znaną właściwość logarytmów do zastąpienia iloczynu zmiennych sumą logarytmów tych zmiennych. W przypadku konwersji odwrotnej używana jest funkcja obliczania wykładnika. W tym przypadku podstawa logarytmu jest zupełnie nieistotna.

(2),

Obwód mnożnika realizujący wzór (1) na wzmacniaczach operacyjnych pokazano na rysunku 3.



Rysunek 3. Obwód mnożnika wzmacniacza operacyjnego

Pomimo prostoty wdrożenia taki schemat jest stosowany dość rzadko, ponieważ Mnożenie jest możliwe tylko dla dodatnich wartości wejściowych. Dlatego zwykle stosuje się układy powielające zbudowane na tej podstawie.

Do obliczenia funkcji nie zawsze można wybrać element nieliniowy o zadanej charakterystyce prądowo-napięciowej. W takim przypadku można zastosować odcinkowe przybliżenie liniowe funkcji. Łatwo jest zastosować dowolne wzmocnienie we wzmacniaczu operacyjnym, po prostu zmieniając wartość rezystora w obwodzie sprzężenia zwrotnego, ustawiając w ten sposób nachylenie funkcji. Przełączanie rezystorów przy zmianie napięcia wejściowego najłatwiej wykonać za pomocą przełączników diodowych, które zasilane są ustawionym przez nas napięciem wyłączenia. Podobny schemat pokazano na rysunku 4.


Rysunek 4. Obwód wzmacniacza funkcyjnego

Mnożniki oparte na tranzystorach są często używane do obliczania bardziej złożonych funkcji. W najprostszym przypadku wejścia X i Y można połączyć, aby uzyskać obwód obliczający kwadrat sygnału wejściowego ( Y=X 2).

Można je stosować jako elektroniczne regulatory napięcia. Przykładając stałe napięcie do jednego z wejść, można regulować poziom napięcia przemiennego dostarczanego na wyjście na wyjściu.

Literatura:

Razem z artykułem „Schematy obliczania funkcji matematycznych” czytamy:

2.1 Opracowanie algorytmu.

Algorytm- Ten

A. opis sekwencji działań mających na celu rozwiązanie problemu lub osiągnięcie celu;

B. zasady dokonywania podstawowych operacji przetwarzania danych;

C. opis obliczeń z wykorzystaniem wzorów matematycznych.

Przed przystąpieniem do opracowywania algorytmu konieczne jest jasne zrozumienie zadania: co należy w rezultacie uzyskać, jakie dane początkowe są potrzebne i co jest dostępne, jakie ograniczenia obowiązują te dane. Następnie musisz zapisać, jakie działania należy podjąć, aby uzyskać wymagany wynik na podstawie danych początkowych.

W praktyce najczęstszymi formami prezentacji algorytmów są:

Werbalne (nagrania w języku naturalnym);

Grafika (obrazy z symboli graficznych);

Pseudokody (częściowo sformalizowane opisy algorytmów w warunkowym języku algorytmicznym, zawierające zarówno elementy języka programowania, jak i frazy języka naturalnego, ogólnie przyjęte zapisy matematyczne itp.);

Programowanie (teksty w językach programowania).

Werbalny sposób pisania algorytmów to opis kolejnych etapów przetwarzania danych. Algorytm jest określony w dowolnej formie w języku naturalnym.

Przykład. Zapisz algorytm znajdowania największego wspólnego dzielnika (NWD) dwóch liczb naturalnych.

Algorytm mógłby wyglądać następująco:

1. ustaw dwie liczby;

2. jeśli liczby są równe, weź dowolną z nich jako odpowiedź i zatrzymaj się, w przeciwnym razie kontynuuj wykonywanie algorytmu;

3. określić największą z liczb;

4. zastąp większą liczbę różnicą między większą i mniejszą liczbą;

5. powtórz algorytm z kroku 2.

Opisany algorytm ma zastosowanie do dowolnych liczb naturalnych i powinien doprowadzić do rozwiązania problemu. Przekonaj się o tym, korzystając z tego algorytmu, aby określić największy wspólny dzielnik liczb 125 i 75.

Metoda werbalna nie jest powszechna z następujących powodów:

Takich opisów nie można ściśle sformalizować;

Cierpisz na rozwlekłość notatek;

Istnieje możliwość niejednoznaczności w interpretacji poszczególnych przepisów.

Graficzny sposób prezentacji algorytmów jest bardziej zwarty i wizualny w porównaniu do werbalnego.

W formie graficznej algorytm jest przedstawiany jako sekwencja połączonych ze sobą bloków funkcjonalnych, z których każdy odpowiada wykonaniu jednego lub większej liczby działań.

Ta graficzna reprezentacja nazywana jest schematem blokowym lub schematem blokowym.

Pseudokod to system notacji i reguł zaprojektowany w celu jednolitego pisania algorytmów.

Zajmuje miejsce pośrednie między językami naturalnymi i formalnymi.

Z jednej strony jest on zbliżony do zwykłego języka naturalnego, dlatego algorytmy można w nim pisać i czytać jak zwykły tekst. Z drugiej strony pseudokod wykorzystuje pewne konstrukcje formalne i symbolikę matematyczną, co przybliża zapis algorytmu do ogólnie przyjętej notacji matematycznej.

W pseudokodzie nie przyjmuje się ścisłych reguł składniowych pisania poleceń właściwych językom formalnym, co ułatwia pisanie algorytmu na etapie projektowania i pozwala na wykorzystanie szerszego zestawu poleceń przeznaczonych dla abstrakcyjnego executora. Jednakże pseudokod zwykle zawiera pewne konstrukcje właściwe językom formalnym, co ułatwia przejście od pisania w pseudokodzie do pisania algorytmu w języku formalnym. W szczególności w pseudokodzie, a także w językach formalnych, istnieją słowa funkcyjne, których znaczenie jest określone raz na zawsze. Nie ma jednej, formalnej definicji pseudokodu, dlatego możliwe są różne pseudokody, różniące się zestawem słów funkcyjnych i podstawowymi (podstawowymi) konstrukcjami.

2.2 Schemat blokowy.

Schemat blokowy to graficzna reprezentacja algorytmu, w której jest on przedstawiony jako sekwencja połączonych ze sobą bloków funkcjonalnych, z których każdy odpowiada wykonaniu jednego lub większej liczby działań.

Na schemacie każdemu rodzajowi akcji (wprowadzanie danych początkowych, obliczanie wartości wyrażeń, sprawdzanie warunków, kontrolowanie powtarzalności czynności, zakończenie przetwarzania itp.) odpowiada figura geometryczna przedstawiona jako symbol bloku. Symbole bloków są połączone liniami przejściowymi, które określają kolejność wykonywania czynności.

Oto najczęściej używane symbole.

Nazwa symbolu Oznaczenie i przykład wypełnienia Wyjaśnienie
Proces Akcja obliczeniowa lub sekwencja działań
Rozwiązanie Sprawdzanie warunków
Modyfikacja Początek cyklu
Uprzednio ustalony proces Obliczenia według podprogramu, podprogramu standardowego
Wejście wyjście Ogólnie wejścia/wyjścia
Zacząć zakończyć Początek, koniec algorytmu, wejście i wyjście z podprogramu
Dokument Wyniki drukowania

Blok „proces” służy do oznaczenia akcji lub sekwencji działań, która zmienia znaczenie, formę prezentacji lub rozmieszczenia danych. Aby poprawić przejrzystość diagramu, można połączyć kilka pojedynczych bloków przetwarzania w jeden blok. Prezentacja poszczególnych operacji jest w miarę darmowa.

Blok „decyzyjny” służy do wskazywania przejść sterowania warunkowego. Każdy blok „rozwiązania” musi identyfikować pytanie, warunek lub porównanie, które definiuje.

Blok „modyfikacja” służy do organizowania struktur cyklicznych. (Słowo modyfikacja oznacza modyfikację, transformację). Wewnątrz bloku zapisywany jest parametr cyklu, dla którego przy każdym powtórzeniu wskazywana jest jego wartość początkowa, warunek brzegowy i krok zmiany wartości parametru.

Blok „predefiniowany proces” służy do wskazywania wywołań algorytmów pomocniczych, które istnieją autonomicznie w postaci niektórych niezależnych modułów oraz do wywołań procedur bibliotecznych.

Przykład. Narysuj schemat blokowy algorytmu wyznaczania wysokości ha, hb, hc trójkąta o bokach a, b, c, if



Gdzie p = (a + b + c) / 2.
Rozwiązanie. Wprowadźmy notację następnie godz za = t/a, godz b = t/b, godz do = t/c. Schemat blokowy musi zawierać start, wejście a, b, c, obliczenia p, t, h a, hb, hc , wyprowadź wyniki i zatrzymaj.

2.3 Struktury algorytmiczne.

Algorytmy można traktować jako pewne struktury składające się z pojedynczych podstawowych (tj. podstawowych) elementów. Naturalnie przy takim podejściu do algorytmów badanie podstawowych zasad ich projektowania należy rozpocząć od przestudiowania tych podstawowych elementów

Logiczną strukturę dowolnego algorytmu można przedstawić poprzez kombinację trzech podstawowych struktur: następującej, rozgałęzionej i zapętlonej.

Cechą charakterystyczną struktur podstawowych jest obecność jednego wejścia i jednego wyjścia.

1. Podstawowa struktura jest następująca. Powstał z sekwencji następujących po sobie działań:

2. Podstawowa struktura rozgałęziona. Zapewnia, w zależności od wyniku sprawdzenia warunku (tak lub nie), wybór jednego z alternatywnych sposobów działania algorytmu. Każda ścieżka prowadzi do wspólnego wyjścia, więc algorytm będzie działał niezależnie od wybranej ścieżki.

Struktura rozgałęzienie występuje w czterech głównych wariantach:

Jeśli-to-jeszcze;

Wybór jest inny.

1) warunek if-if to akcja kończy się jeśli 2) if-else if warunek to akcje 1 w przeciwnym razie akcje 2 kończą się if 3) wybór wybór z warunkiem 1: działania 1 z warunkiem 2: działania 2. . . . . . . . . . . . pod warunkiem N: działania N koniec wyboru 4) wybór – w innym przypadku wybór pod warunkiem 1: działanie 1 w przypadku warunku 2: działanie 2. . . . . . . . . . . . pod warunkiem N: działania N, w przeciwnym razie działania N+1 koniec wyboru

Przykład. Utwórz schemat blokowy algorytmu obliczania funkcji

Podstawową strukturą jest cykl. Zapewnia wielokrotne wykonanie określonego zestawu akcji, co nazywa się treścią pętli.

Struktura cyklu występuje w trzech głównych wersjach:

Typ pętli Dla.

Nakazuje wykonanie treści pętli dla wszystkich wartości określonej zmiennej (parametru pętli) w zadanym zakresie.

Typ pętli Do widzenia.

Nakazuje wykonanie ciała pętli, o ile spełniony jest warunek zapisany po słowie while.

Typ pętli zrobić podczas.

Nakazuje wykonanie ciała pętli, o ile spełniony jest warunek zapisany po słowie while. Warunek jest sprawdzany po wykonaniu treści pętli.

Należy pamiętać, że pętle for i while nazywane są także pętlami ze wstępnym sprawdzeniem warunku, a pętle do wykonania - while - z końcowym sprawdzeniem warunku. Innymi słowy, treści pętli for i while mogą nie zostać wykonane ani razu, jeśli warunek zakończenia pętli nie jest początkowo spełniony. Wykonuj treść pętli, aż zostanie ona wykonana przynajmniej raz, nawet jeśli warunek zakończenia pętli nie jest początkowo spełniony.

Cykl dla i od i1 do i2 krok i3 treść cyklu (kolejność działań) koniec cyklu pętla while treść pętli warunkowej (sekwencja działań) koniec pętli cykl do treści pętli (sekwencja działań) aż do zakończenia warunku pętli

z zadaną dokładnością (dla danego szeregu mocy przemiennej wymagana dokładność zostanie osiągnięta, gdy kolejny wyraz stanie się mniejszy w wartości bezwzględnej).

Obliczanie sum jest zadaniem typowym cyklicznym. Specyfiką naszego konkretnego problemu jest to, że liczba terminów (a co za tym idzie liczba powtórzeń treści pętli) jest nieznana z góry. Dlatego pętla musi się zakończyć po osiągnięciu wymaganej dokładności.

Kompilując algorytm, należy wziąć pod uwagę, że znaki wyrazów zmieniają się i zwiększa się potęga liczby x w licznikach wyrazów.

Rozwiązanie tego problemu bezpośrednio poprzez obliczenie sumy częściowej na każdym i-tym kroku

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

otrzymamy bardzo nieefektywny algorytm, który wymaga dużej liczby operacji. Znacznie lepiej jest zorganizować obliczenia w następujący sposób: jeśli licznik dowolnego wyrazu oznaczysz literą p, to licznik następnego wyrazu będzie równy -р*х (znak minus zapewnia przemienność znaków terminy), a sam termin będzie m.in

będzie równe p/i, gdzie i jest numerem składnika.

Algorytm zawierający pętlę iteracyjną nazywa się algorytmem iteracyjnym. Algorytmy iteracyjne służą do realizacji iteracyjnych metod numerycznych. W algorytmach iteracyjnych konieczne jest zapewnienie spełnienia warunku wyjścia z cyklu (zbieżność procesu iteracyjnego). W przeciwnym razie algorytm zapętli się, tj. główna właściwość algorytmu – skuteczność – nie zostanie spełniona.

Pętle zagnieżdżone.

Może się zdarzyć, że konieczne będzie powtórzenie określonej sekwencji instrukcji w ciele pętli, czyli zorganizowanie wewnętrznej pętli. Struktura ta nazywana jest pętlą w pętli lub pętlami zagnieżdżonymi. Głębokość zagnieżdżenia pętli (to znaczy liczba pętli zagnieżdżonych w sobie) może być różna.

Stosując taką strukturę, aby zaoszczędzić czas komputera, konieczne jest przeniesienie wszystkich instrukcji niezależnych od parametrów pętli wewnętrznej z pętli wewnętrznej do pętli zewnętrznej.

Przykład zagnieżdżone pętle for. Oblicz sumę elementów danej macierzy A(5,3).

Przykład na razie zagnieżdżone pętle. Oblicz iloczyn tych elementów danej macierzy A(10,10), które znajdują się na przecięciu parzystych wierszy i parzystych kolumn.

Kontynuując temat:
system operacyjny

CoffeeZip to wysokiej jakości archiwizator, którego można używać w systemie Windows jako głównego. Ten program integruje się z menu kontekstowym Windows...