Proprietățile unui algoritm:
- generalitatea;
- claritatea;
- finitudinea;
- eficiența.
Date cu care lucrează algoritmii
Date: de intrare (DI) , de manevră (DM) și de ieșire (DE).
Operația de atribuire:
nume_variabilă ← expresie.
- începe cu o literă sau cu underscore (_);
- nu se folosește spațiul;
- poate conține litere, cifre și alte underscore-uri;
1 octet (byte) = 8 biți
Prezentarea algoritmilor. Operatori. Structuri de control.
Tipuri de date:
- numeric: întreg, real
- caracter (între apostrofuri)
- șir de caractere (între ghilimele)
Operatori:
- aritmetici : +, -, /, *, %.
- logici : not (unar), or și and (binari).
- relaționali : =, >, <, <=, >=, <>.
- rezultat de tip logic.
p | q | p and q |
A | A | A |
F | F | F |
A | F | F |
F | A | F |
p | q | p or q |
A | A | A |
F | F | F |
A | F | A |
F | A | A |
Reprezentarea algoritmilor
posibilă folosind schemă logică sau pseudocod
Schema logică
- bloc terminal.
start, stop
- bloc de intrare/ieșire
citește, scrie
- bloc de calcul
calculează
- conector
- săgeată
- blocul de decizie
cl – condiție logică
Structuri de control
- structura alternativă
dacă cl atunci
acțiune 1
altfel
acțiune 2
- structura de selecție multiplă
în caz că selector
var 1: acțiune 1
var 2: acțiune 2
var 3: acțiune 3
….
var n: acțiune n
altfel: acțiune
- structura repetitivă cu test inițial
cât timp cl execută
acțiune
- structura repetitivă cu test final
repetă
acțiune
până când cl
- structura repetitivă cu nr. finit de pași
pentru c ← vi, vf execută // vi <= vf
acțiuni
Exemple
- citirea unui șir de valori cât timp nu s-a întâlnit valoarea 0 sau o valoare specificată
citește x
cât timp x<>0/val_specif execută
prelucrează x
citește x
- determinare maxim sau minim dintr-un șir de valori
citește x
max ← x
cât timp x<>0 execută
dacă x>max atunci
max ← x
citește x
scrie max
citește n, x
min ← x
pentru i ← 2, n execută
citește x
dacă min>x atunci
min ← x
scrie min
- extragere de cifre dintr-un număr
citește x
cât timp x>0 execută
uc ← x%10
x ← x/10
prelucrează uc
- determinarea celei mai mari cifre din număr și numărul ei de apariții
citește x
max ← 0
nr ← 0
cât timp x<>0 execută
uc ← x%10
x ← x/10
dacă uc>max atunci
max ← uc
nr ← 1
altfel
dacă uc = max atunci
nr ← nr + 1
scrie max, nr
- determinarea c.m.m.d.c.
citește a, b
cât timp b>0 execută
r ← a%b
a ← b
b ← a
cmmdc ← a
prelucrează cmmdc
- algoritm de testare număr prim
citește x
prim ← 1
d ← 2
cât timp d<= x/2 and prim=1 execută
dacă x%d = 0 atunci
prim ← 0
d ← d+1
dacă prim=1 atunci
scrie “e prim”
altfel
scrie “nu e prim”
- algoritm de descompunere în produs de factori primi
citește x
f ← 2
cât timp x>1 execută
p ← 0
cât timp x%f=0 execută
x ← x/f
p ← p+1
dacă p>0 atunci
scrie f, ‘^’, p
f ← f+1
- algoritmul de trecerea unui nr din bază 10 într-o bază 2 < q < 9
citește n10, q
nq ← 0
p ← 1
cât timp n10>0 execută
nq ← nq + p*(n10%q)
n10 ← n10/q
p ← p*10
scrie nq
- algoritm de prelucrarea divizorilor unui nr
citește x
pentru d ← 2,x/2 execută
dacă x%d=0 atunci
prelucrează d
- algoritm de trecere dintr-o bază q în bază 10
citește nq, q
n10 ← 0
p ← 1
cât timp nq>0 execută
n10 ← n10 + p*(nq%10)
nq ← nq/10
p ← p*q
scrie n10
- algoritm de generarea șirurilor recurente, șirul lui Fibonacci
citește n
fib1 ← 1
fib2 ← 1
scrie fib1, fib2
pentru i ← 3, n execută
fib3 ← fib1 + fib2
fib1 ← fib2
fib2 ← fib3
scrie fib3
Sper că ți-a fost de ajutor, iar dacă vrei să te pregătești în detaliu la matematică nu ezita să folosești profesorii noștri de top de pehttps://meditatii.ro/informatica/online