Forskellen mellem en algoritme og et program kan sammenfattes som følger:
algoritme:
* Definition: En trin-for-trin, veldefineret procedure eller sæt instruktioner til at løse et specifikt problem eller udføre en bestemt opgave. Det er en logisk plan eller en plan.
* fokus: "Hvad" skal man gøre. Den beskriver * -metoden * eller * logik * til løsning af et problem.
* Repræsentation: Kan udtrykkes i forskellige former:
* Naturligt sprog (som engelsk)
* Pseudocode (uformel, menneskelig læsbar kode)
* Flowcharts (diagrammer)
* Matematisk notation
* eksekverbar? Nej. En algoritme er konceptuel. Det er ikke noget, du direkte kan køre på en computer.
* abstraktion: Mere abstrakt. Det fokuserer på kerne trin i løsningen uden at være optaget af specifik programmeringssprogssyntaks eller hardwareoplysninger.
* Eksempel:
* algoritme for at finde det største antal på en liste:
1. Antag, at det første nummer på listen er det største.
2. iterere gennem resten af listen.
3. For hvert nummer skal du sammenligne det med den nuværende "største".
4. hvis det aktuelle nummer er større, skal du opdatere "største".
5. Efter iterering gennem hele listen er "største" resultatet.
Program:
* Definition: En konkret implementering af en algoritme på et specifikt programmeringssprog (f.eks. Python, Java, C ++). Det er et sæt instruktioner, som en computer kan forstå og udføre.
* fokus: "Hvordan" at gøre det. Den beskriver de * nøjagtige * trin, der skal tages ved hjælp af syntaks og semantik i et programmeringssprog.
* Repræsentation: Skrevet på et specifikt programmeringssprog.
* eksekverbar? Ja. Et program samles (eller fortolkes) til maskinkode, som en computer kan udføre.
* abstraktion: Mindre abstrakt. Det omhandler de specifikke detaljer om programmeringssprog, biblioteker og hardware.
* Eksempel:
* Python -program for at finde det største antal på en liste (implementering af ovenstående algoritme):
`` `Python
def find_largest (tal):
Hvis ikke tal:# Håndter tom listetilfælde
Returner ingen
Største =tal [0]
For nummer i tal:
Hvis nummer> Største:
Største =nummer
returnerer størst
my_list =[10, 5, 20, 8, 15]
Største_number =find_largest (my_list)
Print (F "Det største antal er:{Største_number}")
`` `
Analogi:
Tænk på det sådan:
* algoritme: En opskrift på en kage. Den beskriver ingredienserne og de trin, man skal tage (bland, bage osv.).
* Program: Den faktiske kage, der er lavet ved at følge opskriften og bruge specifikke køkkenværktøjer og ingredienser.
Nøgleforskelle i en tabel:
| Funktion | Algoritme | Program |
| --------------- | --------------------------------------------------------------------------------------------------------- |
| Definition | Trin-for-trin Problemløsningsprocedure | Implementering af en algoritme i kode |
| fokus | Hvad skal man gøre (logik) | Sådan gør du det (implementering) |
| Repræsentation | Naturligt sprog, pseudocode, flowcharts | Programmeringssprogkode |
| eksekverbar? | Nej | Ja |
| abstraktion | Høj | Lav |
| afhængighed | Sproguafhængig | Sprogafhængig |
Kortfattet:
En algoritme er * IDEA * eller * Planen * til at løse et problem. Et program er den * konkrete realisering * af denne plan, skrevet på et specifikt sprog, som en computer kan forstå og udføre. Du har brug for en algoritme, før du kan skrive et program for at implementere det.