Schema algoritmico e pseudocodice per la rappresentazione di algoritmi mediante geometria e sintassi e strutture di threading nella programmazione
- 24-07-2022
- Toanngo92
- 0 Comments
Mục lục
Il concetto di pseudo codice (pseudo codice):
Questo è un concetto di codice sorgente ma non il vero codice sorgente di qualsiasi linguaggio di programmazione, per una facile visualizzazione, capiremo quanto segue: Immagina nella vita, con una lingua reale una parola per favore ciao in vietnamita può essere tradotta in diverse lingue ad esempio ciao in inglese, bonjour in francese …., lo stesso per descrivere un saluto. Anche nella programmazione, ogni linguaggio di programmazione capirà e compilerà lo stesso lavoro, ma ci sono differenze sintattiche a seconda delle caratteristiche e della struttura di ogni linguaggio. Pertanto, quando ci avviciniamo alla programmazione, possiamo utilizzare il concetto di pseudocodice per descrivere generalmente un contenuto di lavoro in uno stile di codifica ma più conciso e di facile comprensione. E questo linguaggio non è compilato da compilatori di computer, ma principalmente per la comunicazione tra programmatori. (In effetti, quando si scambiano competenze di programmazione, i programmatori scrivono anche raramente pseudocodice per comunicare, ma parlano principalmente per descrivere e comprendere il problema, ma in alcuni casi il problema è complicato. o per i nuovi programmatori, vale anche lo pseudocodice per descrivere il problema) .
Chi di voi ha un po' di capacità di programmazione o ha accesso ad alcuni linguaggi di programmazione potrebbe non aver bisogno di fare riferimento a questo articolo.
L'esempio più semplice di scrittura di pseudocodice:
BEGIN DISPLAY "hello world" END
Questo è un semplice esempio di dare comandi al computer, ma con lo stile dell'uso di pseudo codice, questa scrittura sarà breve, facile da capire e il compito del programmatore sarà basato sulla sintassi del codice ogni specifico linguaggio di programmazione da scrivere la riga di comando richiede che il computer stampi le parole "hello world" .
Il flusso in esecuzione (eseguito in sequenza) dello pseudocodice:
- BEGIN : avvia il programma
- DISPLAY "hello world" : stampa il testo "hello world" sullo schermo
- FINE : Fine del programma
Le parole chiave dello pseudocodice possono essere modificate in modo flessibile secondo i gusti di ogni persona, ma possiamo capire START o BEGIN o addirittura vietnamitarlo come BATDAU che è anche uno pseudocodice per rappresentare la sintassi per iniziare il capitolo.unico programma. Lo stesso vale per END/STOP/KETTHUC, e questa coppia di parole chiave spesso va insieme perché nella programmazione deve esserci una fine con un inizio.
Alcune parole chiave comuni durante la rappresentazione di pseudocodice:
- BEGIN/START => Avvia il programma
- END/STOP => Fine del programma
- INPUT => Richiede l'input dell'utente e lo salva in memoria (interazione con la tastiera)
- VISUALIZZA/SCRIVI => Stampa sullo schermo
- IF/ELSE => If/then utilizzato per eseguire il fork del thread in esecuzione (eseguendo in sequenza il programma in base a una condizione calcolata)
- BEGIN LOOP/END LOOP => inizio e fine del ciclo (un concetto in programmazione che verrà trattato più avanti nell'articolo)
Esempio di base di pseudocodice con un problema che calcola la somma di 2 numeri inseriti dall'utente:
BEGIN INPUT A INPUT B C = A + B DISPLAY C END
Lo pseudocodice sopra indica al computer di eseguire i lavori in sequenza:
- Avvia il programma
- Chiedere all'utente di inserire 2 numeri e nominare 2 risorse di archiviazione A, B per memorizzare il valore immesso dall'utente,
- Serve anche una risorsa C, calcolata dalla somma di A e B
- quindi visualizzare sullo schermo il valore della risorsa denominata C.
- Fine programma
Il concetto di diagramma dell'algoritmo (diagramma dell'algoritmo):
Questa è una forma di rappresentazione dell'algoritmo in forma geometrica, durante la lettura del diagramma dell'algoritmo, il programmatore visualizzerà il flusso del programma e ogni azione nel processo di esecuzione sarà rappresentata da un simbolo corrispondente.
La tabella descrive i simboli nello schema dell'algoritmo :
Simbolo | Descrizione del concetto |
Inizio/fine del programma (Terminator) | |
Input, output/stampa sullo schermo (Input/Output) | |
Fasi di elaborazione | |
Decisione di diramare il programma in base alla condizione (Decisione) | |
Connessione in-page, usata per connettersi a un altro elemento dello schema quando lo schema è troppo lungo o complesso (connettore on-page) | |
Connettore fuori pagina, utilizzato per connettersi a un altro elemento dello schema quando lo schema è troppo lungo o complesso (connettore fuori pagina) |
Ecco il diagramma dell'algoritmo con il problema di calcolare la somma di 2 numeri inseriti dall'utente:
Lo schema algoritmico di cui sopra richiede che il computer esegua in sequenza le seguenti attività:
- Avvia il programma (Terminator)
- Chiedere all'utente di inserire 2 numeri e di nominare 2 risorse di archiviazione A, B per memorizzare il valore immesso dall'utente. (Ingresso)
- Serve anche una risorsa C, calcolata dalla somma di A e B (Elaborazione)
- quindi visualizzare sullo schermo il valore della risorsa denominata C. (Produzione)
- Terminatore (Terminatore)
Costrutti di threading avanzati nella programmazione
Come descritto sopra, il programma gira in una struttura sequenziale, l'esecuzione andrà dall'alto verso il basso, un po' più avanzata, proviamo ad immaginare:
- Risolvi il problema di verificare se i dati di input dell'utente sono pari o dispari .
- Risolvi il problema di stampare 1000 volte un contenuto "dong 1', 'dong 2' … 'dong 100' sullo schermo.
Con questi problemi, dovremo avvicinarci ad alcuni concetti strutturali più avanzati nella programmazione, questa struttura si applica a quasi tutti i linguaggi di programmazione e i programmatori la conoscono a memoria.
Per risolvere il problema numero 1, utilizziamo la struttura IF (se), possiamo immaginare come la realtà se la condizione è soddisfatta, quindi fare qualcosa.
Struttura IF (se), IF – ELSE (se allora – altrimenti), IF – ELSE IF – ELSE (dividere il flusso del programma in più rami in base alla condizione)
La struttura IF viene sempre fornita con la stessa condizione di test, il computer farà affidamento sulla condizione di test per eseguire il fork del programma secondo le intenzioni del programmatore. Se la condizione è vera, il thread che esegue il programma salterà nelle istruzioni del corpo all'interno della struttura IF da eseguire, il programma identificherà il corpo con la parola chiave ENDIF . Una struttura IF deve sempre terminare con la parola chiave ENDIF .
Il primo pseudocodice utilizza la struttura IF per il problema di verificare se i dati inseriti dall'utente sono pari o dispari :
BEGIN DISPLAY "Nhap vao so can kiem tra" INPUT A RES = A/2 IF (R == 0) DISPLAY "So vua nhap vao la so chan" ENDIF END
Lo pseudocodice è più compatto quando si controlla direttamente l'espressione A MOD 2 è zero o meno, non è necessario passare una risorsa RES per memorizzare il valore
BEGIN DISPLAY "Nhap vao so can kiem tra" INPUT A IF (A MOD 2 == 0) DISPLAY "So vua nhap vao la so chan" ENDIF END
IF ELSE struttura (se – allora / altrimenti – allora)
Nell'esempio di pseudocodice sopra, vediamo che se la condizione non è soddisfatta, il programma terminerà senza stampare la riga "So scaglionato", per gestire questo problema, se viene utilizzato solo IF lo pseudocodice sarebbe:
BEGIN DISPLAY "Nhap vao so can kiem tra" INPUT A IF (A MOD 2 == 0) DISPLAY "So vua nhap vao la so chan" ENDIF IF (A MOD 2 !=0) DISPLAY "So vua nhap vao la so le" ENDIF END
Tuttavia, possiamo utilizzare la soluzione di aggiungere la parola chiave ELSE all'interno della struttura IF per eseguire il fork del programma quando il risultato della divisione è diverso da zero, lo pseudocodice è il seguente:
BEGIN DISPLAY "Nhap vao so can kiem tra" INPUT A IF (A MOD 2 == 0) DISPLAY "So vua nhap vao la so chan" ELSE DISPLAY "So vua nhap vao la so le" ENDIF END
Inoltre, con questa situazione possiamo eseguire completamente la struttura IF come segue, l'output è sempre lo stesso.
BEGIN DISPLAY "Nhap vao so can kiem tra" INPUT A IF (A MOD 2 != 0) DISPLAY "So vua nhap vao la so le" ELSE DISPLAY "So vua nhap vao la so chan" ENDIF END
Con la struttura IF ELSE , lo pseudocodice sarà in qualche modo conciso e facile da leggere e capire, e da una prospettiva logica, il modo per fare IF sopra il programma deve ancora una volta verificare la presenza di condizioni diverse da zero, e con IF ELSE , abbiamo solo è necessario controllare una volta, quando la condizione non è soddisfatta, il programma andrà immediatamente nel blocco del corpo all'interno dell'altro e di solito i programmatori scelgono questo modo.
Diagramma dell'algoritmo per il problema precedente:
Struttura SE ALTRO SE ALTRO
Con questa struttura, è possibile eseguire il fork del programma in più di 2 thread che vengono eseguiti in base alle condizioni del programma, fare riferimento al seguente pseudocodice:
BEGIN IF ( DIEUKIEN1 ) // LAM GI DO ELSEIF ( DIEUKIEN2) // LAM GI DO ELSE // TRUONG HOP CON LAI ENDIF END
E/O struttura (verifica più condizioni contemporaneamente)
Abbiamo appena affrontato la struttura IF nella sezione precedente, ma l'abbiamo utilizzata solo per il problema di verificare 1 condizione che sia il risultato di divisione e resto uguale a 0 o meno, in questa introduzione arriviamo alla soluzione concettuale. utilizzando AND/OR per controllare più condizioni nel programma contemporaneamente.
Esempio di pseudocodice informatico che risolve il seguente problema per spiegare la struttura AND :
Testare uno studente inserito dall'utente includendo nome, età, voto, in base alla scala da classificare. La scala dei punteggi è la seguente:
- Grado A: 8<=punti<=10
- Grado B: 6<=punti<=8
- Grado C: <6
BEGIN DISPLAY "NHAP VAO SINH VIEN" DISPLAY "NHAP VAO TEN"; INPUT NAME DISPLAY "NHAP VAO TUOI"; INPUT AGE DISPLAY "NHAP VAO DIEM"; INPUT MARK IF (MARK >= 8 AND MARK <= 10) DISPLAY "SINH VIEN " + NAME + " XEP HANG A" ELSE IF(MARK >= 6 AND MARK <=8) DISPLAY "SINH VIEN " + NAME + " XEP HANG B" ELSE DISPLAY "SINH VIEN " + NAME + " XEP HANG C" ENDIF END
Esempio di pseudocodice informatico che risolve il seguente problema per spiegare la struttura OR :
Controllare i dati dello studente inseriti dall'utente inclusi nome, età, verificare se l'età dell'utente inserita, se maggiore di 0 e minore di 18 la stampa non è valida
BEGIN DISPLAY "NHAP VAO SINH VIEN" DISPLAY "NHAP VAO TEN"; INPUT NAME DISPLAY "NHAP VAO TUOI"; INPUT AGE IF(AGE < 0 OR AGE > 18) DISPLAY "TUOI NHAP VAO KHONG HOP LE" ENDIF // DO SOMETHING END
Struttura NESTED IF (nidificata IF).
Esempio di pseudocodice che risolve il problema delle strutture IF annidate
Risolvi il problema del controllo dei dati degli studenti inseriti dall'utente inclusi nome, età e voti,
Step 1: se il nome non è soddisfatto, stampa il nome e termina
Passaggio 2: se il nome è soddisfatto, chiedi di inserire l'età se l'età non soddisfatta è maggiore di 0 e minore di 18, quindi stampa la schermata non valida e termina
Step 3: se soddisfatto, chiedi di inserire il punteggio, continua a controllare il punteggio per classificarti
- Grado A: 8<=punti<=10
- Grado B: 6<=punti<=8
- Grado C: <6
BEGIN DISPLAY "NHAP VAO TEN SINH VIEN" INPUT NAME IF ( COUNTCHARACTERS(NAME) <= 0 ) DISPLAY "NHAP VAO TUOI SINH VIEN" INPUT AGE IF (AGE < 0 OR AGE > 18) DISPLAY "TUOI KHONG THOA MAN YEU CAU" ELSE INPUT MARK IF(MARK >= 8 AND MARK =< 10) DISPLAY "SINH VIEN XEP HANG A" ELSE IF(MARK >= 6 And MARK <= 8) DISPLAY "SINH VIEN XEP HANG B" ELSE DISPLAY "SINH VIEN XEP HANG C" ENDIF ENDIF ELSE DISPLAY "CHUA NHAP TEN SINH VIEN" ENDIF END
Struttura LOOP (ciclo).
Come le strutture che abbiamo appreso sopra, qui possiamo capire le basi del programma per computer che eseguirà le istruzioni in sequenza, più avanzate, per rendere il programma più potente, il concetto di loop, fornire una soluzione che fa lo stesso lavoro oltre e ancora una volta. Più facile a dirsi è dire al computer di eseguire e ripetere continuamente un lavoro fino a quando non diamo un segnale di arresto, in questo contesto utilizziamo il risultato del condition test come segnale sopra.
Considera lo pseudocodice del problema sopra con la soluzione usando i loop per una migliore comprensione. Con il problema di cui sopra, quando l'utente inserisce i dati, dovremmo chiedere all'utente di rientrare quando l'input dell'utente non è soddisfatto, ma non dovrebbe interrompere il programma, lo pseudocodice mostra quanto segue:
BEGIN NAME = "" WHILE (COUNTCHARACTERS(NAME) <= 0) DO LOOP DISPLAY "NHAP VAO TEN SINH VIEN" INPUT NAME ENDLOOP AGE = 0 WHILE (AGE < 0 OR AGE > 18) DO LOOP DISPLAY "NHAP VAO TUOI SINH VIEN" INPUT AGE ENDLOOP // THUC THI NHAP VAO VA KIEM TRA DIEM END
Ecco un riassunto della struttura di threading in esecuzione nella programmazione web888 da presentare ai lettori, se ti senti bene, condividilo per favore con l'autore, grazie per la lettura, ti auguro buon studio!