Reparere Design Møbler

Hva er konseptet med en algoritme? Algoritmer, egenskaper ved algoritmer, metoder for å beskrive algoritmer. Tjenester for utvikling av flytskjemaer

I informatikk kalles en handlingsplan algoritme.
Algoritmen består av separate trinn - lag. Ingen av dem kan hoppes over, oftest kan ingen lag byttes.
Utfører- en person, et dyr eller en maskin som er i stand til å forstå og utføre bestemte kommandoer.
Kunstnermiljø– objekter som omgir utøveren og som han arbeider med.
Liste over utførende kommandoer (SKI)– et sett med kommandoer som er forståelige for utøveren. Utøveren kan kun utføre de kommandoene som er inkludert i hans SKI.

For å løse de fleste problemer er det ikke nok å gi en kommando til utøveren; du må lage en algoritme for ham - en handlingsplan som består av kommandoer som han forstår (inkludert i SKI hans).
Algoritme- en nøyaktig definert handlingsplan for utøveren, rettet mot å løse et problem. Algoritmen kan bare inkludere de kommandoene som er i SKI.

Hva er algoritmene?

Lineær algoritme
I en lineær algoritme utføres kommandoer sekvensielt, en etter en. Et eksempel på en lineær algoritme er tebryggealgoritmen.

Forgreningsalgoritme

I en forgreningsalgoritme kan rekkefølgen på kommandoer være forskjellig avhengig av miljøet. Et eksempel på en forgreningsalgoritme er gatekryssalgoritmen.

Round robin-algoritme
I en syklisk algoritme gjentas noen handlinger flere ganger (i informatikk sier de at en løkke blir utført). Det finnes to typer sykliske algoritmer. I en av dem vet vi på forhånd hvor mange ganger vi trenger å gjøre disse handlingene, i den andre må vi stoppe først når vi fullfører arbeidet, det vil si at handlingene våre stopper når en betingelse er oppfylt.
Et eksempel på en syklus av den første typen er livet vårt på ukedager (fra mandag til lørdag) - vi utfører nesten de samme handlingene 6 ganger.
Et eksempel på en syklus av den andre typen er algoritmen for saging av en tømmerstokk: vi kan ikke si på forhånd hvor mange ganger vi trenger å flytte sagen bort fra oss og mot oss selv - det avhenger av tettheten til treet, kvaliteten på sagen og vår innsats. Vi vet imidlertid med sikkerhet at vi må fullføre jobben når neste sagede tømmerstokk faller til bakken.

Måter å skrive algoritmer på

Det er tre vanligste metoder for å skrive algoritmer i praksis:

  • verbal(opptak på naturlig språk);
  • grafikk(opptak ved hjelp av grafiske symboler);
  • program(tekster på programmeringsspråk).

Verbal måte å skrive algoritmer på

Verbal metode - en måte å skrive en algoritme i naturlig språk. Denne metoden er veldig praktisk hvis du trenger å omtrent beskrive essensen av algoritmen. Men med en verbal beskrivelse er det ikke alltid mulig å tydelig og nøyaktig uttrykke logikken i handlinger.

Som et eksempel på en verbal måte å skrive en algoritme på, vurder en algoritme for å finne arealet til et rektangel

hvor S er arealet av rektangelet; a, b – lengdene på sidene.

Det er klart at a, b må spesifiseres på forhånd, ellers kan ikke problemet løses.

Den verbale måten å skrive algoritmen på ser slik ut:

  • Begynnelsen av algoritmen.
  • Angi den numeriske verdien for side a.
  • Angi den numeriske verdien for side b.
  • Beregn arealet S av rektangelet ved å bruke formelen S=a*b.
  • Skriv ut resultatet av beregningene.
  • Slutt på algoritmen.

Grafisk måte å beskrive algoritmer på

For en mer visuell representasjon av algoritmen brukes en grafisk metode. Det er flere måter å beskrive algoritmer grafisk på. Den mest brukte grafiske beskrivelsen av algoritmer i praksis er bruken av flytskjemaer. Den utvilsomme fordelen med blokkdiagrammer er klarheten og enkelheten ved å skrive algoritmen.

Hver handling av algoritmen tilsvarer en geometrisk figur (blokksymbol). En liste over de mest brukte symbolene er gitt i tabellen nedenfor.

Siden kommandoene i den lineære algoritmen utføres sekvensielt, vil blokkdiagrammet se slik ut:

Siden i en forgreningsalgoritme kan rekkefølgen på kommandoer være forskjellig avhengig av miljøet, vil flytskjemaet ha formen:

I en syklisk algoritme gjentas noen handlinger flere ganger, og for det vil flytskjemaet ha formen:

Programvaremetode for å skrive algoritmer

For at en algoritme skal være forståelig for en robot, datamaskin eller annen maskin, er det ikke nok bare å skrive kommandoer, det er også nødvendig å formalisere algoritmen i en form som maskinen forstår den (skrive et program), dvs. skriv det ved å bruke kommandoer fra SKI, følg designreglene.

Programdesignregler:

  1. enhver algoritme har et navn;
  2. algoritmen begynner med en åpningskrøllete klammeparentes "(" og slutter med en avsluttende krøllete klammeparentes ")"; kommandoene som er plassert mellom disse parentesene kalles kroppen til algoritmen;
  3. Algoritmen kan bare inkludere de kommandoene som er i utførerens SKI;
  4. hver kommando avsluttes med et ";"-tegn, som indikerer slutten på kommandoen;
  5. For å gjøre det lettere for oss å forstå programmer bruker vi kommentarer - tekstforklaringer som begynner med tegnene "/*" og slutter med tegnene "*/"; utøveren tar ikke hensyn til kommentarene i algoritmen.

Praktiske oppgaver:

  1. Lag et flytskjema for å finne omkretsen til en firkant.
  2. Lag et blokkdiagram for brygging av te.
  3. Lag et blokkskjema for å krysse et kryss med et trafikklys.

Materiale brukt fra bøker:

  1. "Moderne informasjonsteknologier", forfattere: lærere ved "Turbo" -senteret
  2. "Algorithms and executors", forfatter Polyakov K.

I dag skal vi svare på spørsmålet om hva en algoritme er.

Ofte er en algoritme et sett med instruksjoner som beskriver de nødvendige handlingene (så vel som rekkefølgen de utføres i) for å løse et gitt problem. I dag brukes algoritmer ikke bare innen ingeniørfag og vitenskap, men også på andre områder av livet.

Det som kalles en algoritme

Konseptet med en algoritme er ganske gammelt og tilhører et av hoved- og også grunnleggende begreper i matematikk. Begrepet kommer fra den latinske skrivemåten av navnet på den berømte østlige matematikeren fra 787-850 Muhammad al-Khwarizmi - Algorithmi. Denne forskeren var den første som formulerte presise regler for å skrive naturlige tall, samt regler for å summere opp antall i en kolonne. Et ganske interessant faktum er at selve konseptet til tross for sine eldgamle røtter ble presist formulert først på begynnelsen av det tjuende århundre. I dag er algoritmen hovedkomponenten i moderne virksomhet, enhver utdanningsprosess eller forskning. Derfor trenger enhver moderne person ganske enkelt å vite nøyaktig hva en algoritme betyr.

En algoritme er ofte presist formulerte instruksjoner, en prosedyre for bestemte handlinger som skal sikre oppnåelse av et fastsatt mål.

Hva er egenskapene til algoritmer

Men det er verdt å huske at ikke hver sekvens av handlinger kan kalles en algoritme. En sekvens er en algoritme bare hvis den har visse egenskaper. La oss liste dem opp:

  1. En av de viktigste egenskapene er diskrethet. Vi skal se på det litt nedenfor.
  2. Like viktig er sikkerhet. I henhold til denne egenskapen må hver kommando være entydig og lede utøveren til en bestemt handling.
  3. Det er verdt å huske at algoritmen er forståelig. Algoritmen skal kun bruke de nødvendige kommandoene som er relevante for oppgaven.
  4. En viktig egenskap er effektiviteten (også ofte kalt finitet) til algoritmen. Egenskapen "effektivitet" indikerer at algoritmen har et visst, tidligere spesifisert antall trinn, hvis implementering vil føre til fullføring av oppgaven.
  5. Dessuten må enhver algoritme nødvendigvis ha en slik egenskap som massetilgjengelighet. Hvis en algoritme sikrer utførelsen av alle oppgaver av en bestemt type, har den egenskapen til masseproduksjon.

Hva er en algoritme i informatikk

Alle forskere er enige om at konseptet med en algoritme er grunnleggende i moderne informatikk. Når du lager programvare, er det første trinnet alltid å lage en algoritme.

En algoritme skrevet på et formelt språk kalles vanligvis et program. Svært ofte er konseptet med en algoritme nært forbundet med prosessen med å skrive den inn i et program. Det er derfor begrepene algoritme og program ofte anses som synonyme.

Hvordan lage en algoritme

For å lage en effektiv og høykvalitets algoritme, bør flere regler følges:

  1. Algoritmen skal være skrevet i et formelt og tydelig språk. Tvetydighet eller klarhet i instruksjonene er uakseptabelt.
  2. Når du kompilerer en algoritme, er det nødvendig å ta hensyn til hvem den blir kompilert for. Utøveren må forstå alle punkter i algoritmen og kunne implementere dem.
  3. Det er tilrådelig å holde algoritmen kortfattet, presis og klar.

Hva er lineær algoritme

Blant alle algoritmer skilles det mellom lineær og ikke-lineær. En algoritme anses som lineær hvis den opprettholder en konstant rekkefølge av handlinger gjennom hele utførelsesprosessen.

I informatikk kalles programmeringsspråket som en algoritme beskrives med vanligvis en operatør. Det er enkle og strukturerte operatører. Enkle utsagn beskriver bare én handling.

Det er enkle operatorer som oftest brukes i lineære algoritmer.

Algoritmens diskrethetsegenskap og dens betydning

Vi nevnte tidligere at enhver algoritme har en slik egenskap som diskrethet. La oss nå se på begrepet diskrethet mer detaljert.

Diskrethet erstattes ofte av slike begreper som diskontinuitet og separathet av algoritmen. I hovedsak betyr alle tre begrepene det samme, nemlig sekvensiell (alternativ) utførelse av alle kommandoer i algoritmen. Hvis diskrethet observeres, utføres hver handling bare etter fullføringen av den forrige, og implementeringen av alle de angitte punktene fører til det tidligere spesifiserte sluttresultatet (til en fullstendig løsning på problemet).

Nå har vi sett på de grunnleggende begrepene og begrepene som relaterer seg til temaet vårt i dag. Det er sikkert ikke lenger et problem for deg å svare på spørsmålet om hva en algoritme er. Kunnskapen du oppnår vil være nyttig mer enn én gang både i ditt fagfelt og i hverdagen. Som alltid kan du avklare detaljene eller finne svaret på spørsmålet ditt ved å bruke det praktiske kommentarsystemet nedenfor.

Ordet "Algorithm" kommer fra algorithmi - den latinske skrivemåten for navnet al-Khorezmi, som i middelalderens Europa var kjent for den største matematikeren fra Khorezm (en by i moderne Usbekistan) Muhammad ben Musa, som levde i 783-850. I sin bok "On Indian Counting" formulerte han reglene for å skrive naturlige tall ved å bruke arabiske tall og reglene for å operere dem i en kolonne. Senere begynte en algoritme å bli kalt en presis resept som definerer en sekvens av handlinger som sikrer å oppnå det nødvendige resultatet fra de første dataene. Algoritmen kan være designet for å bli utført av et menneske eller av en automatisk enhet. Å lage en algoritme, selv den enkleste, er en kreativ prosess. Det er utelukkende tilgjengelig for levende vesener, og i lang tid trodde man det bare for mennesker. En annen ting er implementeringen av en eksisterende algoritme. Det kan overlates til et subjekt eller objekt som ikke er forpliktet til å fordype seg i sakens essens, og kanskje ikke er i stand til å forstå det. Et slikt subjekt eller objekt kalles vanligvis formell utøver. Et eksempel på en formell utøver er en automatisk vaskemaskin, som strengt utfører handlingene som er foreskrevet for den, selv om du har glemt å legge pulver i den. En person kan også fungere som en formell utøver, men først og fremst er forskjellige automatiske enheter, inkludert en datamaskin, formelle utøvere. Hver algoritme er laget med en veldig spesifikk utøver i tankene. De handlingene som en utøver kan utføre kalles hans hans tillatte handlinger. Settet med tillatte handlinger skjemaer system av utøverkommandoer. Algoritmen må kun inneholde de handlingene som er akseptable for en gitt utøver.

Gjenstander som utøveren kan utføre handlinger på, utgjør den såkalte utøverens miljø. For algoritmer som finnes i matematikk, kan miljøet til en bestemt utøver være tall av forskjellig natur - naturlig, ekte, etc., bokstaver, bokstavelige uttrykk, ligninger, identiteter, etc.

Definisjonen av en algoritme gitt ovenfor kan ikke betraktes som streng - det er ikke helt klart hva en "nøyaktig resept" eller "en sekvens av handlinger som sikrer det nødvendige resultatet" er. Derfor er flere generelle egenskaper ved algoritmer vanligvis formulert for å skille algoritmer fra andre instruksjoner.

Disse egenskapene er:

    Diskrethet (diskontinuitet, adskilthet)- Algoritmen må representere prosessen med å løse et problem som en sekvensiell utførelse av enkle (eller tidligere definerte) trinn. Hver handling levert av algoritmen utføres først etter at den forrige har fullført utførelse.

    Sikkerhet- hver regel i algoritmen må være klar, entydig og ikke gi rom for vilkårlighet. På grunn av denne egenskapen er utførelsen av algoritmen av mekanisk natur og krever ingen tilleggsinstruksjoner eller informasjon om problemet som skal løses.

    Ytelse (lem)- Algoritmen må føre til å løse problemet i et begrenset antall trinn.

    Massekarakter- Algoritmen for å løse problemet er utviklet i en generell form, det vil si at den skal være aktuelt for en viss klasse av problemer som bare er forskjellige i de første dataene. I dette tilfellet kan de første dataene velges fra et bestemt område kalt bruksområde for algoritmen.

Basert på disse egenskapene er det noen ganger gitt en definisjon av en algoritme, for eksempel: "En algoritme er en sekvens av matematiske, logiske eller kombinerte operasjoner som kjennetegnes ved deres determinisme, massekarakter, retningsbestemmelse og som fører til løsning av alle problemer med en gitt klasse i et begrenset antall trinn." Denne tolkningen av begrepet "algoritme" er ufullstendig og unøyaktig. For det første er det feil å knytte en algoritme til løsningen av ethvert problem. Algoritmen løser kanskje ikke noe problem i det hele tatt. For det andre refererer begrepet "masse" ikke til algoritmer som sådan, men til matematiske metoder generelt. Å løse problemer som utgjøres av praksis ved bruk av matematiske metoder er basert på abstraksjon - vi identifiserer en rekke essensielle trekk som er karakteristiske for et visst spekter av fenomener, og bygger en matematisk modell basert på disse funksjonene, og forkaster de uviktige egenskapene til hvert spesifikke fenomen. I denne forstand har enhver matematisk modell egenskapen til masseproduksjon. Hvis vi innenfor rammen av den konstruerte modellen løser et problem og presenterer løsningen i form av en algoritme, vil løsningen være "massiv" på grunn av matematiske metoders natur, og ikke på grunn av "massekarakteren" av algoritmen.

Når de forklarer konseptet med en algoritme, gir de ofte eksempler på "husholdningsalgoritmer": kok opp vann, åpne døren med en nøkkel, kryss gaten osv.: oppskrifter for å tilberede medisin eller kulinariske oppskrifter er algoritmer. Men for å tilberede en medisin etter resept, må du kjenne til farmakologi, og for å tilberede en rett i henhold til en kulinarisk oppskrift, må du vite hvordan du skal lage mat. I mellomtiden er utførelse av en algoritme en tankeløs, automatisk utførelse av instruksjoner, som i prinsippet ikke krever noen kunnskap. Hvis kulinariske oppskrifter var algoritmer, ville vi rett og slett ikke ha en slik spesialitet som kokk.

Regler for å utføre aritmetiske operasjoner eller geometriske konstruksjoner er algoritmer. Samtidig forblir spørsmålet ubesvart: hvordan skiller konseptet med en algoritme seg fra slike konsepter som "metode", "metode", "regel". Du kan til og med komme over påstanden om at ordene "algoritme", "metode", "regel" uttrykker det samme (det vil si at de er synonymer), selv om en slik uttalelse åpenbart motsier "egenskapene til algoritmen".

Selve uttrykket "egenskapene til en algoritme" er feil. Objektivt eksisterende realiteter har egenskaper. Vi kan for eksempel snakke om egenskapene til et stoff. En algoritme er en kunstig struktur som vi konstruerer for å nå våre mål. For at en algoritme skal oppfylle formålet, må den bygges i henhold til visse regler. Derfor må vi ikke snakke om egenskapene til algoritmen, men om reglene for å konstruere algoritmen, eller om kravene til algoritmen.

Første regel– når du konstruerer en algoritme, er det først og fremst nødvendig å spesifisere et sett med objekter som algoritmen skal fungere med. Den formaliserte (kodede) representasjonen av disse objektene kalles data. Algoritmen begynner å jobbe med et visst sett med data, som kalles input, og som et resultat av arbeidet produserer data, som kalles output. Algoritmen konverterer dermed inngangsdata til utdata.

Denne regelen lar deg umiddelbart skille algoritmer fra "metoder" og "metoder". Før vi har formalisert inndata, kan vi ikke bygge en algoritme.

Andre regel– Algoritmen krever minne for å fungere. Minnet lagrer inngangsdataene som algoritmen begynner å fungere med, mellomdata og utdata som er resultatet av algoritmen. Minnet er diskret, dvs. som består av individuelle celler. Den navngitte minnecellen kalles en variabel. I teorien om algoritmer er ikke minnestørrelser begrenset, det vil si at det antas at vi kan gi algoritmen en hvilken som helst mengde minne som er nødvendig for drift.

I skolens "algoritmeteori" vurderes ikke disse to reglene. Samtidig begynner praktisk arbeid med algoritmer (programmering) med implementeringen av disse reglene. I programmeringsspråk utføres minneallokering av deklarative operatorer (variable deklarasjonsoperatorer). I BASIC-språket er ikke alle variabler beskrevet; vanligvis er bare arrays beskrevet. Men likevel, når programmet startes, analyserer språkoversetteren alle identifikatorer i programteksten og tildeler minne for de tilsvarende variablene.

Tredje regel– diskrethet. Algoritmen er bygget fra individuelle trinn (handlinger, operasjoner, kommandoer). Det er mange trinn som utgjør algoritmen, selvfølgelig.

Fjerde regel– determinisme. Etter hvert trinn må du angi hvilket trinn som utføres neste, eller gi en stoppkommando.

Femte regel– konvergens (effektivitet). Algoritmen må avsluttes etter et begrenset antall trinn. I dette tilfellet er det nødvendig å indikere hva som anses som resultatet av algoritmen.

Så en algoritme er et udefinert konsept i teorien om algoritmer. Algoritmen assosierer hvert spesifikt sett med inngangsdata med et bestemt sett med utdata, dvs. beregner (implementerer) en funksjon. Når vi vurderer spesifikke problemstillinger i teorien om algoritmer, har vi alltid i tankene en spesifikk modell av algoritmen.

Alt arbeid på en datamaskin er informasjonsbehandling. Driften av en datamaskin kan skjematisk avbildes som følger:

"Informasjon" til venstre og "informasjon" til høyre er forskjellige opplysninger. Datamaskinen oppfatter informasjon fra utsiden og produserer ny informasjon som et resultat av arbeidet. Informasjonen som en datamaskin jobber med kalles "data".

Datamaskinen transformerer informasjon i henhold til visse regler. Disse reglene (operasjoner, kommandoer) er lagret på forhånd i datamaskinens minne. Samlet kalles disse reglene for å transformere informasjon en algoritme. Dataene som kommer inn i datamaskinen kalles inngangsdata. Resultatet av en datamaskins arbeid er utdata. Dermed konverterer algoritmen inngangsdata til utdata:


Nå kan vi stille spørsmålet: kan en person behandle informasjon? Selvfølgelig kan det. Et eksempel er en vanlig skoletime: læreren stiller et spørsmål (input), eleven svarer (output). Det enkleste eksemplet: læreren gir en oppgave - gang 6 med 3 og skriv resultatet på tavlen. Her er tallene 6 og 3 inngangsdataene, multiplikasjonsoperasjonen er algoritmen, resultatet av multiplikasjonen er utdataene:


Konklusjon: å løse matematiske problemer er et spesielt tilfelle av informasjonstransformasjon. En datamaskin (på engelsk betyr kalkulator, på russisk - datamaskin, elektronisk datamaskin) ble laget spesielt for å utføre matematiske beregninger.

La oss vurdere følgende problem.

Lengden på klassen er 7 meter, bredde – 5 meter, høyde – 3 meter. Det er 25 elever i klassen. Hvor mange kvm. m areal og hvor mange kubikkmeter. m luft per elev?

Løsningen på problemet:

1. Regn ut arealet av klassen:

2. Regn ut volumet til klassen:

3. Regn ut hvor mange kvadratmeter areal per elev:

4. Regn ut hvor mange kubikkmeter. meter luft per elev:

105: 25 = 4,2
Svar: per elev er det 1,4 kvadratmeter. meter areal og 4,2 kubikkmeter. meter med luft.

Hvis vi nå fjerner beregningene og lar bare «handlinger» være igjen, får vi en algoritme – en liste over operasjoner som må utføres for å løse et gitt problem.

Det viser seg at når vi løser et matematisk problem, lager vi en løsningsalgoritme. Men før utførte vi denne algoritmen selv, det vil si at vi brakte løsningen til svaret. Nå skal vi bare skrive hva som skal gjøres, men vi skal ikke gjennomføre beregninger. Datamaskinen vil gjøre beregningene. Algoritmen vår vil være et sett med instruksjoner (kommandoer) til datamaskinen.

Når vi beregner en verdi, skriver vi resultatet på papir. Datamaskinen registrerer resultatet av arbeidet i minnet i form av en variabel. Derfor må hver algoritme-kommando inkludere en indikasjon på hvilken variabel resultatet er skrevet inn. Algoritmen for å løse problemet vårt vil se slik ut:

1. Regn ut arealet av klassen og skriv det til variabelen S.

2. Regn ut volumet til klassen og skriv det til variabelen V.

3. Regn ut hvor mange kvadratmeter areal per elev og skriv det i variabel S1.

4. Regn ut hvor mange kubikkmeter. meter luft per elev og registrert i variabel V1.

5. Vis verdiene til variablene S1 og V1.

Nå gjenstår det bare å oversette algoritmekommandoene fra russisk til et språk som datamaskinen kan forstå, så får du et program. Programmering er oversettelse av en algoritme fra "menneskelig" språk til "datamaskin".

Tolkningen av driften av algoritmen som en transformasjon av inngangsdata til utdata får oss naturligvis til å vurdere konseptet "problemstilling". For å lage en algoritme for å løse et problem, er det nødvendig å velge fra betingelsen de mengdene som vil være inngangsdataene og tydelig formulere nøyaktig hvilke mengder som må finnes. Med andre ord, tilstanden til problemet må formuleres i formen "Gi... Påkrevd" - dette er problemformuleringen.

Algoritme brukt på en datamaskin– eksakt resept, dvs. et sett med operasjoner og regler for deres veksling, ved hjelp av hvilke, starter med noen innledende data, er det mulig å løse ethvert problem av en fast type.

Typene algoritmer som logisk-matematiske verktøy gjenspeiler de angitte komponentene i menneskelig aktivitet og trender, og selve algoritmene, avhengig av målet, de første betingelsene for problemet, måter å løse det på og bestemme handlingene til utøveren, er delt inn som følger:

    Mekaniske algoritmer, eller på annen måte deterministisk, rigid (for eksempel en algoritme for drift av en maskin, motor, etc.);

    Fleksible algoritmer, for eksempel stokastisk, dvs. sannsynlighet og heuristisk.

En mekanisk algoritme spesifiserer visse handlinger, utpeker dem i en enkelt og pålitelig sekvens, og gir derved et entydig nødvendig eller ønsket resultat hvis prosessbetingelsene og oppgavene som algoritmen ble utviklet for, er oppfylt.

    Probabilistisk (stokastisk) algoritme gir et program for å løse et problem på flere måter eller metoder som fører til sannsynlig oppnåelse av et resultat.

    Heuristisk algoritme(fra det greske ordet "eureka") er en algoritme der oppnåelsen av det endelige resultatet av handlingsprogrammet ikke er klart forhåndsbestemt, akkurat som hele sekvensen av handlinger ikke er indikert, og alle handlingene til utøveren ikke er identifisert . Heuristiske algoritmer inkluderer for eksempel instruksjoner og resepter. Disse algoritmene bruker universelle logiske prosedyrer og beslutningsmetoder basert på analogier, assosiasjoner og tidligere erfaring med å løse lignende problemer.

    Lineær algoritme– et sett med kommandoer (instruksjoner) utført sekvensielt i tid etter hverandre.

    Forgreningsalgoritme– en algoritme som inneholder minst én betingelse, som et resultat av å sjekke hvilken datamaskin som gir en overgang til ett av to mulige trinn.

    Round robin-algoritme– en algoritme som involverer gjentatt repetisjon av den samme handlingen (de samme operasjonene) på nye initiale data. De fleste metodene for beregning og oppregning av alternativer er redusert til sykliske algoritmer.

Programsyklus– en sekvens av kommandoer (serie, loop body) som kan utføres gjentatte ganger (for nye kildedata) til en viss betingelse er oppfylt.

Figuren viser i symboler diagrammene over hoveddesignene til algoritmene:

EN). lineær algoritme;

b, c, d). forgreningsalgoritmer (b-gren, c-bifurkasjon, d-switching);

d, f, g). sykliske algoritmer (d, g-sjekk ved begynnelsen av syklusen, e-sjekk på slutten av syklusen).

Hjelpe (slave) algoritme(prosedyre) - en algoritme som tidligere er utviklet og fullstendig brukt i algoritmiseringen av en spesifikk oppgave. I noen tilfeller, hvis det er identiske sekvenser av instruksjoner (kommandoer) for forskjellige data, blir det også tildelt en hjelpealgoritme for å redusere posten.

På alle stadier av forberedelse til algoritmisering av et problem, er den strukturelle representasjonen av algoritmen mye brukt.

Strukturelt (blokk, graf) diagram av algoritmen– en grafisk representasjon av algoritmen i form av et diagram av blokker koblet til hverandre ved hjelp av piler (overgangslinjer) - grafiske symboler, som hver tilsvarer ett trinn i algoritmen. Inne i blokken er det gitt en beskrivelse av den tilsvarende handlingen.

En grafisk representasjon av algoritmen er mye brukt før programmering av en oppgave på grunn av dens klarhet, fordi visuell persepsjon letter vanligvis prosessen med å skrive et program, korrigere det i tilfelle mulige feil, og forstå prosessen med informasjonsbehandling.

Du kan til og med komme over følgende utsagn: "Eksternt er algoritmen et diagram - et sett med rektangler og andre symboler, inne som er skrevet, hva som beregnes, hva som legges inn i maskinen og hva som skrives ut og andre måter å vise informasjon." Her blandes presentasjonsformen av algoritmen med selve algoritmen.

"Topp-ned" programmeringsprinsippet krever at blokkskjemaet spesifiseres trinn for trinn og at hver blokk "beskrives" ned til elementære operasjoner. Men denne tilnærmingen kan implementeres når du løser enkle problemer. Når du løser et alvorlig problem, vil flytskjemaet "spre seg" i en slik grad at det vil være umulig å dekke det med ett blikk.

Det er praktisk å bruke flytskjemaer av algoritmer for å forklare operasjonen til en ferdig algoritme, mens de faktiske blokkene i algoritmen tas som blokker, hvis drift ikke krever forklaring. Flytskjemaet til en algoritme skal tjene til å forenkle skildringen av algoritmen, og ikke komplisere den.

Når du løser problemer på en datamaskin, trenger du ikke så mye evnen til å skrive algoritmer som kunnskap om metoder for å løse problemer (som i matematikk generelt). Derfor må du ikke studere programmering som sådan (og ikke algoritmisering), men metoder for å løse matematiske problemer på en datamaskin. Oppgaver bør ikke klassifiseres etter datatype, slik det vanligvis gjøres (oppgaver for matriser, for tegnvariabler, etc.), men i henhold til delen "Obligatorisk".

I informatikk er prosessen med å løse et problem fordelt mellom to fag: programmereren og datamaskinen. Programmereren lager en algoritme (program), datamaskinen utfører den. I tradisjonell matematikk er det ingen slik inndeling; problemet løses av en person som lager en algoritme for å løse problemet og utfører det selv. Essensen av algoritmisering er ikke at løsningen på et problem presenteres som et sett med elementære operasjoner, men at prosessen med å løse et problem er delt inn i to stadier: kreativ (programmering) og ikke-kreativ (programutførelse). Og disse stadiene utføres av forskjellige fag - programmereren og utøveren

I lærebøker i informatikk skriver de vanligvis at en person også kan utføre algoritmen. Faktisk er det ingen som skriver algoritmer for folk (la oss ikke glemme at ikke hvert sett med diskrete operasjoner er en algoritme). En person kan i prinsippet ikke handle i henhold til en algoritme. Å utføre en algoritme er en automatisk, tankeløs utførelse av operasjoner. En person handler alltid meningsfullt. For at en person skal kunne utføre et bestemt sett med operasjoner, må han bli forklart hvordan det gjøres. En person kan utføre ethvert arbeid bare når han forstår hvordan det gjøres.

Det er i dette – «forklaring og forståelse» – at forskjellen mellom begrepene «algoritme» og «metode», «metode», «regel» ligger. Reglene for å utføre aritmetiske operasjoner er bare regler (eller metoder), ikke algoritmer. Selvfølgelig kan disse reglene angis i form av algoritmer, men dette vil ikke være til noen nytte. For at en person skal kunne telle i henhold til reglene for regning, må han læres opp. Og hvis det er en læringsprosess, så har vi ikke å gjøre med en algoritme, men med en metode.

Når du lager en algoritme, forklarer ikke programmereren noe til noen, og utøveren prøver ikke å forstå noe. Algoritmen er plassert i datamaskinens minne, som henter instruksjoner en om gangen og utfører dem. En person handler annerledes. For å løse et problem, må en person huske på metoden for å løse problemet som helhet, og alle legemliggjør denne metoden på sin egen måte.

Denne funksjonen ved menneskelig psykologi - ikke-algoritmisk tenkning - ble veldig tydelig manifestert i den metodiske håndboken til A. G. Gein og V. F. Sholokhovich. Manualen presenterer løsninger på problemer fra en kjent lærebok. Løsninger på problemer skal presenteres i form av algoritmer. Forfatterne av manualen forstår imidlertid at hvis du bare skriver en algoritme for å løse et problem, vil det være vanskelig å forstå selve løsningen. Derfor gir de først en "fuzzy statement of the algoritme" (dvs. forklarer løsningen på problemet), og skriver deretter selve algoritmen.



L I T E R A T U R A

1. Nesterenko A.V. Datamaskiner og yrket som programmerer.

M., utdanning, 1990.

2. Brudno A.L., Kaplan L.I. Moskva-olympiadene i programmering.

M., Nauka, 1990.

3. Kuznetsov O. P., Adelson-Velsky G. M. Diskret matematikk for en ingeniør.

M., Energoatomizdat, 1988.

4. Gein A.G. og andre Grunnleggende om informatikk og datateknologi.

M., utdanning, 1994.

5. Datavitenskap. Ukentlig bilag til avisen «Første september». 1998, nr. 1.

6. Radchenko N. P. Svar på spørsmål fra avsluttende eksamener. – Informatikk og

Utdanning, 1997, nr. 4.

7. Kasatkin V.N. Informasjon, algoritmer, datamaskiner. M., utdanning, 1991.

8. Kanygin Yu. M., Zotov B. I. Hva er informatikk?

M., Barnelitteratur, 1989.

9. Gein A.G., Sholokhovich V.F. Undervisning i kurset "Grunnleggende om informatikk og informatikk" på videregående. Lærerveiledning.

Jekaterinburg, 1992.

10. Izvozchikov V.A. Datavitenskap i begreper og termer.

11. Avis "Informatikk", nr. 35, 1997.

12. L.Z. Shautsukov Fundamentals of data science i spørsmål og svar.


Forfatter: Bogashova Tatyana, Donets Sergey (KPI, FAX), Kiev, 1999.
Vurdering: utmerket
Utleid: Fagskole nr. 34
E-post: [e-postbeskyttet]





















Tilbake fremover

Merk følgende! Lysbildeforhåndsvisninger er kun til informasjonsformål og representerer kanskje ikke alle funksjonene i presentasjonen. Hvis du er interessert i dette arbeidet, last ned fullversjonen.

Hensikten med leksjonen: Dannelse hos studentene av en korrekt forståelse av algoritmer, deres egenskaper, typer og praktiske ferdigheter i å komponere algoritmer.

Leksjonens mål:

Didaktisk: Oppgi betingelser:

  • å studere og konsolidere grunnleggende konsepter om emnet;
  • for assimilering og konsolidering av emnet.

Pedagogisk: Oppgi betingelser:

  • å fremme en følelse av kollektivisme og gjensidig hjelp, en kommunikasjonskultur;
  • for en kritisk holdning til ens arbeid, evnen til å evaluere det.

Utviklingsmessig: Oppgi betingelser:

  • for utvikling av elevenes mentale aktivitet, evnen til å analysere, sammenligne, generalisere og trekke konklusjoner;
  • for utvikling av uavhengighet, logisk presentasjon av tanker.

Demonstrasjonsmateriell for leksjonen:

  1. Multimedia presentasjon
  2. Portrett av Mohammed Ben Moussa al-Khwarizmi.

I løpet av timene

  1. Organisering av tid. (2 minutter.)
  2. Oppdatering av kunnskap. Sette en læringsoppgave. (3 min.)
  3. Presentasjon av nytt materiale. ( 30 min.)
  4. Konsolidere nytt materiale (10 min.)

Algoritmekonsept

Utseendet til algoritmer er assosiert med opprinnelsen til matematikk.

For mer enn 1000 år siden (825) skapte en vitenskapsmann fra byen Khorezm, Abdullah (eller Abu Zhdafar) Muhammad bin Mussa al-Khorezmi, en bok om matematikk, der han beskrev måter å utføre aritmetiske operasjoner på flersifrede tall .

Algoritme – beskrivelse av en sekvens av handlinger, hvis utførelse fører til løsning av et gitt problem i et begrenset antall trinn.

Algoritme- en klar og presis instruksjon til utøveren om å utføre en siste sekvens av kommandoer som fører fra de første dataene til det ønskede resultatet.

Algoritmeegenskaper

  1. Diskrethet
  2. Determinisme
  3. Massekarakter
  4. Effektivitet
  5. Lem
  6. Diskrethet (fra lat.Discretus –separert, diskontinuerlig) – denne egenskapen antyder at enhver algoritme må bestå av en sekvens av trinn som følger hverandre.
  7. Determinisme (fra latin Determinate - sikkerhet, nøyaktighet) - denne egenskapen indikerer at enhver handling i algoritmen må være strengt og entydig definert og beskrevet for hvert tilfelle.
  8. Massekarakter – denne egenskapen innebærer at den samme algoritmen kan brukes til å løse en hel klasse med problemer som er forskjellige i de opprinnelige dataene.
  9. Ytelse (lem) algoritme- utførelse av algoritmen må fullføres i et begrenset antall trinn.

Verbal metode Algoritmeposter er en beskrivelse av de påfølgende stadiene av databehandling. Algoritmen er spesifisert i fri form i naturlig språk.

Eksempel: Algoritme «Lading»

  1. Strekk ut mens du ligger i sengen.
  2. Sitt på sengen med føttene på gulvet.
  3. Bøy deg fremover, prøv å nå tærne med hendene.
  4. Bøy ryggen.
  5. Tell til 10.
  6. Gå tilbake til startposisjonen.

Med verbal-formular metoden skrives algoritmen i form av tekst med formler punkt for punkt som bestemmer rekkefølgen av handlinger.

La du for eksempel finne verdien av følgende uttrykk:

På en verbal og formel måte kan algoritmen for å løse dette problemet skrives i følgende form:

  1. Skriv inn a- og x-verdiene.
  2. Legg til x og 6.
  3. Multipliser a med 2.
  4. Trekk fra summen (x+6) fra 2a.
  5. Skriv ut y som et resultat av å evaluere uttrykket.

grafikk I representasjon er algoritmen avbildet som en sekvens av sammenkoblede funksjonsblokker, som hver tilsvarer utførelsen av en eller flere handlinger.

Typer algoritme

Lineær algoritme - dette er den der alle operasjoner utføres

sekvensielt etter hverandre.

Eksempel: Treplantingsalgoritme.

  1. Grav et hull i bakken;
  2. Plasser frøplanten i hullet;
  3. Fyll hullet med frøplanten med jord;
  4. Vann frøplanten med vann.

Forgreningsalgoritme er en algoritme der enten en eller annen gruppe handlinger utføres avhengig av sannheten eller usannheten til en tilstand.

Fullstendig format

Hvis<условие>, Det<действие 1>, ellers<действие 2>

Ufullstendig skjema

Hvis <условие>, Det<действия>

Eksempel: Hvis det regner ute, blir vi hjemme, og hvis det ikke er det, går vi en tur.

Round robin-algoritme– handlinger gjentas til den angitte betingelsen er oppfylt.

En syklus med et kjent antall repetisjoner

En syklus med et kjent antall repetisjoner kalles ofte "sykle FOR»

Eksempel: Algoritme "Øyetrening"

  1. Ta en blyant.
  2. Plasser den i sin opprinnelige posisjon på spissen av nesen
  3. Gjenta 10 ganger etter blyantens bevegelse:
    • Flytt blyanten til armlengdes avstand;
    • Sett blyanten tilbake til sin opprinnelige posisjon
  4. Legg ned blyanten
  5. Slutt på algoritmen

Løkke med postcondition

En syklus med et ukjent antall repetisjoner, der løkken avsluttes når en betingelse er oppfylt, kalles vanligvis en "syklus med en postbetingelse" eller "PRI-syklus"

Algoritmen "Puls"

  1. Plasser venstre hånd komfortabelt, håndflaten opp.
  2. Plasser to fingre på høyre hånd på håndleddet på venstre hånd.
  3. Legg merke til posisjonen til sekundviseren
  4. Tell neste slag
  5. Se på klokken
  6. Hvis sekundviseren har gått full sirkel, fullfør trinnene, ellers gå til trinn 4

Slutt på algoritmen

Løkke med forutsetning

En løkke med et kjent antall repetisjoner, der løkken fortsetter så lenge betingelsen er oppfylt, kalles vanligvis "løkke med forutsetning" eller "BYE-syklus"

Tønnealgoritme

  1. Gå til tønnen
  2. Hvis tønnen er ufullstendig (det er plass til vann), så gå til trinn 3, ellers slutten av algoritmen.
  3. Fyll en bøtte med vann
  4. Hell bøtta i tønnen
  5. Gå til trinn 2.

Slutt på algoritmen

Oppgaver for å konsolidere materiale

  1. Handlingssekvens for 6. klasses elev Vasya: "Hvis Pavlik er hjemme, vil vi løse problemer i matematikk. Ellers bør dere ringe Marina og utarbeide en biologirapport sammen. Hvis Marina ikke er hjemme, må du sette deg ned og skrive.»
  2. Lag et flytskjema over handlingene til et skolebarn som bør fullføre matteleksene sine før en kveldstur.

I livet møter vi ofte forskjellige situasjoner der vi utfører de samme spesifikke handlingene. For å våkne i tide må vi huske å slå på alarmen. For å stille sulten vår må vi følge de samme trinnene for å tilberede deilig mat. For å gjøre arbeid som er kjent for oss, gjør vi også ofte det samme.

Denne atferden kan kalles forskjellig, avhengig av konteksten den vurderes i. Hvis vi ser på det fra perspektivet til operasjonell effektivitet, kan disse handlingene kalles vaner eller ferdigheter. Hvis vi vurderer det fra synspunktet om å vise prosessen, kalles beskrivelsen av sekvensen av handlinger, hvis strenge utførelse fører til løsningen av de tildelte oppgavene i et visst antall trinn, en handlingsalgoritme.

Hvordan lages handlingsalgoritmer?

Dette møter vi stadig i hverdagen. Hvilke handlinger gjør vi for å fylle opp mobiltelefonkontoen vår? Hver av oss er forskjellig. Siden det er flere måter å fylle opp en konto på, gjør vi alle det annerledes. Resultatet er imidlertid alltid det samme - utseendet til midler på telefonen.

Eller et annet eksempel: for å kopiere et bilde eller en tekst, høyreklikk på bildet, velg deretter "Kopier", plasser det på ønsket sted, høyreklikk på "Lim inn", og resultatet er oppnådd.

Alt dette er en viss sekvens av handlinger, som et resultat av at oppgaven løses på forskjellige måter. Men foreløpig er dette bare kunnskapen vår, som utvikler seg til ferdigheter og evner, og hvis denne prosessen er beskrevet, vil vi tydelig kunne se algoritmen til handlingene våre og gi den videre til andre mennesker. Ikke alt er klart i ord og er ikke alltid klart.

Beskriv handlingssekvensen - den vil bli husket

Skape algoritme for handlinger mulig ved å beskrive eller avbilde sekvensen. Vet alle hva som må gjøres for å plante et tre? Kanskje de grunnleggende trinnene er klare for alle, men ikke alle husker når de skal vanne et tre, før eller etter planting. Den opprettede algoritmen vil tillate at alle handlinger utføres i riktig rekkefølge.

For å beskrive en mer kompleks sekvens av handlinger, må du prøve å skrive dem alle ned i detalj. Et eksempel kan tas fra alle slags regler og instruksjoner - de staver veldig tydelig frem trinnene vi må ta. Men det er situasjoner der en viss handling ikke følges av ett trinn, men av flere, avhengig av det forrige resultatet. I dette tilfellet er de foreslåtte handlingene også skrevet ned slik at personen enkelt kan navigere i ulike situasjoner og vite hva som må gjøres.

Algoritmen for handlinger i grafikk er et flytskjema

Hvis vi avbilder handlingsalgoritmer grafisk, ved å bruke geometriske former med forbindelseslinjer som viser rekkefølgen handlingen utføres i, får vi et flytskjema. Et flytskjema er langt overlegent regler, instruksjoner og sekvenserte handlingsalgoritmer når det gjelder klarhet og lesbarhet.

Tenk deg at du trenger å lære noe til en annen person. Du kjenner utmerket godt alle handlingene i en bestemt rekkefølge. Din oppgave er å vise hvordan det skal gjøres og formidle kunnskapen din slik at den andre husker den og vet den akkurat som deg. Muntlig overføring av kunnskap gir mulighet for improvisasjon og noe vilkårlighet. Den beste måten er å bruke et flytskjema som forklarer rekkefølgen og mulige alternativer. Som et eksempel, her er en morsom guide for å lære bloggopplegg:

Den beste betingelsen for å oppnå resultater er gjentakelse av handlinger. Dette påvirker definitivt hastigheten på å oppnå resultater i fremtiden. Jo oftere du må gjenta de samme handlingene, jo raskere vil du lære å utføre handlingssekvensen, noe som betyr at du for hver påfølgende gang trenger mindre tid for å fullføre.

Flytskjemaer brukes i salg

I salg er slik opplæring ved å utvikle algoritmer og avbilde dem i form av flytskjemaer utbredt. Oftest brukes de i telefonsamtalescenarier i callsentre og for "kalde" samtaler. Bedriftskulturen får fart, så mange selskaper tillater ikke lenger ansatte å lage "gags", selv talentfulle, men tilbyr dem å handle i henhold til et forhåndsutviklet scenario, som representerer "bedriftens ansikt" på forskjellige stadier. Effekten vises bokstavelig talt etter flere dager med å gjøre ting "på papiret". Over tid huskes mange av de beskrevne algoritmene av den ansatte, og i fremtiden kan han fritt kommunisere uten frykt for hvilken retning samtalen kan gå.

Handlingsalgoritmer og bloggopplegg utvikles ikke bare i salg. De er mye brukt i opplæring og praksis av leger, programmerere, informatikere og mange tekniske spesialiteter.

Det er verdt å prøve å lære hvordan du bruker lignende flytskjemaer. Når alt kommer til alt, når du først møter en overflod av handlinger og oppgaver som er uforståelige til å begynne med, tenker du på hvor mye du mangler et utviklet flytskjema. Etter mye pine tåler du det ikke, og du begynner å utvikle og skape på egen hånd. Effektive mennesker liker ikke nedetid. Og flytskjemaer forenkler livet i stor grad og lar deg forstå hvordan du løser komplekse problemer.

Tjenester for utvikling av flytskjemaer

Det finnes tjenester på Internett som kan hjelpe deg med å lage slike flytskjemaer. En av dem er Сacoo. Med dens hjelp kan du enkelt gjøre om algoritmene dine til ulike diagrammer, flytskjemaer og grafer. Du vil finne at det er en veldig hyggelig og gledelig aktivitet å forvandle det du kan til vitenskap for andre mennesker.

- Det er garantert godt humør. I det innledende stadiet kan du bruke funksjonene til en gratis konto, men i fremtiden må du betale for tilgang. Naturligvis har gratis tilgang begrensninger sammenlignet med betalte. Men for læring og de første trinnene er funksjonaliteten nok.

Etter å ha utviklet handlingsalgoritmer og konvertert dem til blokkskjemaer ved hjelp av Cacoo kan du skape en god stemning i lang tid, ikke bare for deg selv, men også for andre mennesker som lærer det grunnleggende.

Lag lekeblokkdiagrammer for barna dine

For å oppsummere det ovenstående, noterer jeg meg at nå kan du bruke handlingsalgoritmer og flytskjemaer i ulike livssituasjoner. Selv barna dine vil ha stor glede av å utføre ikke de mest interessante oppgavene, etter klare oppfordringer. Hvis du har noen ideer hvor og hvordan du kan bruke den algoritme for handlinger, del i kommentarene, kjære lesere. Jeg vil veldig gjerne vite om algoritmene dine.

Mitt flytskjema

Dette er flytskjemaet jeg kom på første gang. For å forstørre et bilde, klikk på det. Etter å ha gått til Cacoo, under "se figur"-oppføringen, klikk på bildet. Den åpnes i et stort vindu. Lykke til!