Om programma's te maken, heb je basis nodigalgoritmische constructies. Hieronder volgt de eenvoudigste manier om problemen op te lossen. Het kan bijvoorbeeld worden gebruikt om met voorbeelden van hetzelfde type te werken. Er zijn ook andere typen: branching en looping. Ze zullen in dit artikel worden besproken. Maar eerst moet u begrijpen wat het algoritme als geheel is.
Het woord "algoritme" komt van het Latijnse algoritmi. Wat betekent het? Het authentieke woord komt van de naam van een wiskundige, wiens activiteit viel in de 9e eeuw. Dankzij de verhandeling al-Khwarizmi kon de mensheid kennis maken met het basistype van algoritmische constructie en, in het algemeen, met een algemeen concept.
Eerder werd de vorm van het schrijven van het woord aangenomen - "algoritme". Nu wordt het slechts in enkele gevallen gebruikt.
Algoritme is een proces dat verandering betekentinitiële gegevens, die voorkomen in de vorm van discrete stappen. Iedereen komt dit concept in het leven tegen, wie hij ook is. Algoritmen kunnen de bereiding van thee of voedsel worden genoemd, vermenigvuldigen of optellen, vergelijkingen oplossen, enz. Alle huishoudelijke apparaten, waarvan het werkproces geautomatiseerd is, functioneren als gevolg van duidelijke stappen die in het geheugen van de processor zijn geschreven. Dergelijke algoritmen worden huishoudelijke algoritmen genoemd. Er zijn ook andere soorten. Laten we ze eens bekijken.
De belangrijkste algoritmische constructies zijn onderverdeeld in verschillende typen, die in deze paragraaf worden besproken. Wat zijn zij?
In wezen is het algoritme tot in het kleinste detail nauwkeurigdetails instructie. Niet al deze gegevens kunnen echter het beschreven concept worden genoemd. Om te begrijpen of een algoritme een instructie is of niet, moet u het op bepaalde eigenschappen controleren.
Alle elementaire algoritmische constructies moeten acties hebben die eraan "gehoorzamen". Laten we dit probleem in meer detail bekijken.
Als je het werk van de algoritmen en huneigenschappen, u kunt zien dat het niet nodig is om hun componenten te begrijpen, vrij duidelijk overeenkomen met het plan. Het juiste resultaat wordt verkregen, zelfs als u zich eenvoudigweg mechanisch houdt aan de nodige acties. Hieruit kunnen we concluderen dat het door het gebrek aan betekenis in het bewustzijn van acties heel goed mogelijk is om het algoritme te geven aan de implementatie van een computer. Met andere woorden, geautomatiseerde apparaten hebben dit proces nodig.
Welke eigenschappen moeten de algoritmische basisconstructies hebben voor het meest nauwkeurige werk?
Als we het hebben over methoden voor het schrijven van algoritmen, moet het volgende worden benadrukt:
Het laatste punt moet worden verduidelijkt. Wat is een blokschema? Het is een lineair of niet-lineair algoritme, waarvan de stappen worden geschreven met behulp van speciale blokken. Ze hebben hun eigen configuratie, doel en functie. Bij een dergelijke beschrijving is het algoritme geschreven in blokschema's, die onderling verbonden zijn door lijnen. Ze moeten bovendien een of andere actie (stap) opnemen.
Sommigen beweren dat algoritmen geen 3 hebbentype, a 4. Algoritmische basisconstructies: lineair, vertakt, cyclisch. Wat de reden is voor dit waanidee, is niet duidelijk. Voor een eenvoudige oplossing van complexe problemen gebruikt de computer de algoritmen van deze drie vrij grote groepen. Laten we ze eens bekijken.
Opgemerkt moet worden dat alle belangrijke algoritmische constructies (volgen, vertakken, lus) met elkaar zijn verbonden, hoewel ze afzonderlijk kunnen worden gebruikt.
Wat is er nodig om een cyclus te maken?
Lussen kunnen deterministisch zijn eniteratief. De eerste is een herhaling van handelingen met een bekend aantal herhalingen. Een iteratieve lus is een lus die een onbeperkt aantal keren wordt herhaald totdat een voorwaarde waar of onwaar wordt.
Het is de moeite waard eraan te denken dat de belangrijkstehet basisalgoritme is niet van toepassing op algoritmische constructies. Hoe is hij? Dit concept is lange tijd niet meer in de moderne literatuur gevonden, maar dit betekent niet dat het helemaal niet meer bestaat. Aangezien er bij het oplossen van problemen meerdere vertakkingen of herhalingen kunnen voorkomen, kan de volgende conclusie worden benadrukt. Elementaire algoritmische constructies (lineair, vertakt, cyclisch) zijn fundamenteel. In feite vertegenwoordigen ze de "structurele eenheid" van elke zogenaamde instructie.
Zoals al duidelijk is uit het bovenstaande, zijn de algoritmener zijn lineaire en niet-lineaire. Laten we eens kijken naar de eerste optie. Waarom heet het zo? Alles is buitengewoon eenvoudig. Het is een feit dat alle acties die in het algoritme worden gereproduceerd een duidelijk sequentiële uitvoering hebben, alle stappen worden strikt na elkaar uitgevoerd. Dergelijke taken zijn in de regel klein en hebben een lage complexiteit.
Een voorbeeld van een lineair algoritme is het theeproces:
Het programmeren van elementaire algoritmische constructies is al moeilijk genoeg, maar als het gaat om lineaire algoritmen, is het vaak heel gemakkelijk om ze te implementeren.
Hoe weet je of een algoritme vertakt? Het is voldoende om ervoor te zorgen dat er een keuze is uit twee of meer opties voor actie, afhankelijk van of aan de voorwaarde is voldaan of niet. Elk pad wordt een tak genoemd.
Het belangrijkste kenmerk van een vertakkingsalgoritme is het bestaan van een voorwaardelijke vertakking. Het treedt op wanneer een uitdrukking wordt getest op waar of onwaar.
Meestal worden logische uitdrukkingen weergegeventekens "kleiner dan", "groter dan", "kleiner of gelijk", "groter dan of gelijk aan", "gelijk", "niet gelijk". Soms zijn er varianten waarbij de conditie aan elkaar gerelateerd is met behulp van de en (en) en of (of) commando's.
Een voorbeeld van zo'n algoritme kan de oplossing zijnvolgende taak: als de uitdrukking ((x + 3) / 1) gelijk is aan een positief getal, toon dan het resultaat op het scherm, indien negatief, informeer de gebruiker over de fout.
Het is vrij eenvoudig om de basis algoritmische constructies in de praktijk te gebruiken. Vertakking is een van de meest voorkomende oplossingsmethoden.
Tegencyclus - een cyclus die omvateen variabele die de waarde in stappen verandert. De stap wordt ingesteld door de gebruiker of geschreven door de programmeur bij het schrijven van de software. De meeste talen gebruiken de instructie for voor zo'n lus.
Om het programma vier keer twee regels te laten weergeven:
U moet een deterministische lus maken. Hoe ziet het eruit? Laten we de Pascal-taal gebruiken voor een beter begrip van de structuur.
1. Voor i: = 1 tot 2 doen:
- ik is de lusteller, hij bepaalt het aantal herhalingen in de lus.
2. Begin (de operator-haakjes worden geopend zodat beide zinnen de hoofdtekst van de lus vormen en samen worden herhaald).
3. Writeln (‘How are you?’):
- het woord writeln betekent de uitvoer van een zin tussen enkele aanhalingstekens.
4. Writeln ("Oké, bedankt").
5. Einde.
6. ik: = ik + 1.
Zoals u kunt zien, is het vrij eenvoudig en zelfs interessant om de algoritmische basisconstructies te gebruiken. De basisalgoritmen zijn echt algemeen bekend, zonder hen is het onmogelijk om programma's te schrijven.
Een lus met een postconditie kan worden herhaaldeen onbeperkt aantal acties zonder er operatorhaken of samengestelde woorden in te plaatsen. Het zal zeker minstens één keer worden uitgevoerd. De lus wordt uitgevoerd terwijl de voorwaarde onwaar is. Het stopt wanneer de indicatoren correct worden. Hierop is het algoritme gebouwd. Basale algoritmische constructies van dit type werken in dit hoge tempo.
Om deze cyclus te implementeren, is de constructie nodigHerhaal A tot B. Letterlijk vertaalt het zich als "acties herhalen terwijl de voorwaarde onwaar is". Dienovereenkomstig wordt via A het herhalingsproces zelf uitgedrukt, via B-gegevens, die als resultaat de juiste waarde zouden moeten aannemen.
Een lus met een postconditie is zo geconstrueerd dathet wordt in ieder geval minstens één keer uitgevoerd. Er zijn echter gevallen waarin een cyclus nodig is in het geval van een bepaalde aandoening, en als deze afwezig is, mag herhaling niet worden uitgevoerd. Anders is het resultaat onjuist. Dit is waar een preconditioneringslus wordt gebruikt. Om het te maken, heb je de "while A do B" -constructie nodig. Het eerste commando vertaalt zich letterlijk als "dag". A - conditie en B - acties die zullen worden herhaald. De hele constructie betekent: "voer, zolang de toestand waar is, acties uit".
Alle elementaire algoritmische constructies werkenalleen in bepaalde gevallen. Hoe zijn ze in een lus met een randvoorwaarde? Als u meer dan één actie moet herhalen, maar meerdere tegelijk, dan moet u samengestelde operatoren of speciale haakjes gebruiken. De lus kan heel goed mislukken als de voorwaarde niet waar is bij het invoeren ervan. Dienovereenkomstig worden de acties herhaald als deze correct zijn.
Het helper-algoritme wordt gebruikt in andereverwerkt door alleen zijn naam op te geven. Het behoort niet tot de belangrijkste algoritmische constructies. In programmeertalen wordt zo'n actieproces een subroutine genoemd. Om het werken met de code gemakkelijker te maken en vervolgens problemen gemakkelijker op te lossen, wordt elke actie gecombineerd in één blok, dat een hulpalgoritme is. Elk van hen kan een eigen naam krijgen, zodat u er later herhaaldelijk naar kunt verwijzen.