luni, 6 mai 2019

Change MAC address


Identificarea unică a unui calculator într-o rețea se face prin adresa MAC (Media Access Control) a adaptorului de rețea. Uzual această adresă se scrie în format hexazecimal (cifre 0-9 și litere A-F) 6 grupuri de câte 2 caractere separate prin : sau - de exemplu 00-0D-DB-60-6A-11.
Această adresă este stabilită de către fabricant și fiecare adaptor are propria adresă MAC din fabrică (burned-in address - BIA) și este denumită și adresă Ethernet hardware (EHA), adresă hardware sau adresă fizică.
MAC 48 Address.png
Aceată adresă este stocată într-o memorie ROM (acces doar pentru citire) sau în firmware. Intervalele de adrese se alocă fiecărui fabricant de către IEE cu cerința (obligatorie) ca fiecare adaptor să aibă o adresă MAC unică. Termenele actuale folosite sunt EUI48 (adrese IPv4) și EUI64 (adrese Ipv6).
EUI48 to EUI64.png
NU poate fi schimbată adresa MAC a unui adaptor de rețea dar sistemul de operare poate emula o altă adresă lucru necesar în anumite situații.
Pentru a afla adresa MAC în Windows dintr-un command prompt se tasteaza getmac și apar adresele MAC ale adaptoarelor de rețea.
Sunt 2 modalități de schimbare a adresei MAC în sistemul de operare Windows :
1.Editând regiștrii
- într-un command prompt cu drepturi de administrator tastați regedit.exe
-navigați la HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control\Class \{4D36E972-E325-11CE-BFC1-08002BE10318} \
-localizați adaptorul de rețea dorit (în cazul meu era 007)
-dacă nu există cheia în regiștrii cu numele NetworkAddress selectați New - String Value tastați NetworkAddress și apăsați Enter.
- Faceți dublu clic pe cheia nouă ( NetworkAddress) și introduceți noua adresă MAC folosind numai caractere hexazecimale.
-dacă există cheia NetworkAddress editați doar valoarea hexazecimală
-faceți clic pe OK.
- închideți editorul de registri.
- dezactivați/activați placa de rețea sau reporniți calculatorul.
capture_002_10012019_205157
2. Utilizând un software specializat.
a) Technitium MAC Address Changer permite schimbarea (emularea unei noi adrese) adresei MAC.
tehnitium
Restaurarea adresei MAC originale este facilă se selectează adaptorul de rețea și se activează Restore Original (Alt+O)
2.MAC Address Changer este un alt software free care permite schimbarea adresei MAC.
changemac
3.SMAC MAC Address Changer etc ...
NB Comunicațiile utilizatorilor sunt filtrate uzual de ISPs folosind adresa MAC.

marți, 10 iulie 2018

Utilizare NAS pentru backup foldere partajate






O modalitate practica și rapidă de efectuare back-up foldere partajate. Se folosete un Network attached storage (NAS) și utilitarul rsync. Această soluție este, poate, cea mai ieftină implementare a unei scheme de back-up.
Se creaza două foldere din File Station – e.g NetBackup si Folder_destinatie





 Poziționându-ne pe folderul NetBackup se acceseaza din Tools maparea unui folder partajat.

Se introduc credențialele de acces la acel folder(cred că acum nu mai există foldere cu acces everyone :) ).

Unde xxx.xxx.xxx.xxx este adresa IP/nume_computer  folder partajat. În cazul domeniului se introduce nume domeniu. În cazul unui workgroup se introduce nume computer. Se apasă Mount.
Astfel am mapat intern un folder partajat pentru a ocoli principala limitare a utilitarului rsync.
„Singura limitare a programului rsync este ca el NU poate copia de pe un sistem remote în alt sistem remote”
Devine evident că dacă mapăm  încă un folder partajat putem folosi utilitarul rsync pentru a copia de pe un system remote în alt system remote. În cazul de față vom folosi ca folder destinație un folder creat pe NAS.
Pentru a seta operația de back-up trebuie accesat panoul de control.

Se acceseaza Task Scheduler pentru programare operații back-up





Accesând Create creăm un task repetitiv de back-up

Setăm un nume pentru noul task.

Setăm intervalul de back-up

În cazul de față back-up se va realiza zilnic la ora 3 dimineata. (Atenție la suprapuneri operații programate)
Se va  defini scriptul de back-up. Opțiunea rsunc --delete  se va folosi dacă sunt limitări de spațiu pe unitatea de discuri.(volume1 în cazul de față).


luni, 9 iulie 2018

Metodă alternativă (rapidă) de creare a unui nou administrator local sub Windows 8/10


Sintetic -  o succesiune de doua comenzi prin care se creeaza un administrator local

net user nume_user parola  /add /enable:yes
net localgroup administrators nume_user /add 


Pentru crearea unui nou administrator local sub Windows 8/10 (fără a folosi conturi live) se poate folosi comanda net user

Se lanseaza un command prompt admin (click-dreapta pe start) si se tasteaza

net user nume_user parola  /add /enable:yes

Parola este optionala. Optiunile adăugate sunt -adăugare și activare utilizator. In aceasta forma se creeaza un utilizator. Pentru atașarea utilizatorului la un grup se foloseste comanda

net localgroup administrators nume_user /add 

Listare grupurilor locale se face cu comanda

net localgroup

Listarea continutului grupului administrators se face cu comanda

net localgroup administrators 

 Similar listarea continutului unui grup se face cu comanda

 net localgroup nume_grup


Stergerea unui utilizator se face cu comanda

 net user nume_user /delete

Aceasta comanda sterge automat si afilierile la grupurile de utilizatori pentru utilizatorul respectiv.


miercuri, 28 decembrie 2016

Configurare NTP cu sursă externă


Dacă dorim configurarea serviciului NTP cu sursă externă și nu riscantul CMOS clock comenzile sunt simple.

Setarea se efecuează din command prompt (cu drept de administrator) cu succesiunea de comenzi

w32tm /config /manualpeerlist:”time-c.nist.gov, 0.europe.pool.org.ntp, 1.europe.pool.org.ntp” /syncfromflags:manual /reliable:yes /update
net stop w32time
net start w32time

Verificați starea serverelor NTP multe din serverele utilizate frecvent pot fi „bussy”. Dar mai pot fi si alte surse majore de erori.

A.Registri
Dacă apar erori cea mai frecventă cauză o reprezintă înregistrările din regiștri.
1.Modificați tipul serverului la NTP. Pentru aceasta, urmați acești pași:
  1. Faceți clic pe Start, pe Executare (run as administrator), tastați regedit, apoi faceți clic pe OK.
  2. Identificați, apoi faceți clic pe următoarea subcheie de registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
    1. În panoul din dreapta, faceți clic dreapta pe Type, apoi faceți clic pe Modify.
    2. În Edit Value, tastați NTP în caseta Value data, apoi faceți clic pe OK.
2.Setaţi AnnounceFlags la 5. Pentru aceasta, urmaţi aceşti paşi:
    1. Identificați, apoi faceți clic pe următoarea subcheie de registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
    1. În panoul din dreapta, faceți clic dreapta pe AnnounceFlags, apoi faceți clic pe Modify.
    2. În Edit DWORD Value, tastați 5 (10 sau A in hexa pentru rețele lente) în caseta Value Data, apoi faceți clic pe OK.


3.Activați NTPServer. Pentru aceasta, urmați acești pași:
    1. Identificați, apoi faceți clic pe următoarea subcheie de registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
    1. În panoul din dreapta, faceți clic dreapta pe Enabled, apoi faceți clic pe Modify.
    2. În Edit DWORD Value, tastați 1 în caseta Value Data, apoi faceți clic pe OK.
4.Specificați sursele de timp. Pentru aceasta, urmați acești pași:
    1. Identificați, apoi faceți clic pe următoarea sub-cheie din registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
    1. În panoul din dreapta, faceți clic dreapta pe NtpServer, apoi faceți clic pe Modify.
    2. În Edit DWORD Value, tastați time-c.nist.gov,0x1 în caseta Value data, apoi faceți clic pe OK.


5.Selectați intervalul dintre sondaje. Pentru aceasta, urmați acești pași:
    1. Identificați, apoi faceți clic pe următoarea subcheie de registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
    1.  În panoul din dreapta, faceți clic dreapta pe SpecialPollInterval, apoi faceți clic pe Modify.
    2. În Edit DWORD Value, tastați de exemplu 120 (intervalul de sondare) în caseta Value data, apoi faceți clic pe OK.


6.Configurați setările de corecție a timpului. Pentru aceasta, urmați acești pași:
    1. Identificați, apoi faceți clic pe următoarea subcheie de registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
    1.  În panoul din dreapta, faceți clic dreapta pe MaxPosPhaseCorrection, apoi faceți clic pe Modify.
    2. În Edit DWORD Value, faceți clic pentru a selecta Decimal în caseta Base.
    3. În Edit DWORD Value, tastați TimpulÎnSecunde(1800 de exemplu) în caseta Value data, apoi faceți clic pe OK.
      Valoarea implicită a MaxPosPhaseCorrection este de 48 de ore în Windows Server 2008 R2 sau o versiune ulterioară.
    4. Identificați următoarea subcheie de registry și faceți clic pe ea:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
    1.  În panoul din dreapta, faceți clic dreapta pe MaxNegPhaseCorrection, apoi faceți clic pe Modify.
    2. În Edit DWORD Value, faceți clic pentru a selecta Decimal în caseta Base.
    3. În Edit DWORD Value, tastați TimpÎnSecunde în caseta Value data, apoi faceți clic pe OK
      • TimpulÎnSecunde este un substituent pentru o valoare rezonabilă, cum ar fi o oră (3600) sau 30 de minute (1800). Valoarea pe care o selectați va depinde de intervalul dintre sondaje, de condiția rețelei și de sursa externă de timp.
      • Valoarea implicită a MaxNegPhaseCorrection este de 48 de ore în Windows Server 2008 R2 sau o versiune ulterioară.
7.Închideți editorul de registry.
8.În linia de comandă, tastați următoarea comandă pentru a reporni serviciul Windows Time, apoi apăsați pe Enter:
net stop w32time && net start w32time
B.Firewall
O confuzie des întâlnită este legată de portul utilizat de w32tm.
 Pentru a verifica status port 123 UDP, click Start, selectează  Administrative Tools, și după aceea click Windows Firewall with Advanced Security.
  1. Click Inbound RulesVerifică dacă este activă regula de firewal și dacă nu este blocată Active Directory Domain Controller - W32Time (NTP-UDP-In) 
    • Dacă este dezactivată (culoare gri), click dreapta the rule, și după aceea click Enable.
    • Dacă este în setarea de blocată (block conections), click dreapta, și după aceea click PropertiesÎn câmpul Action, click Allow the connectionsși după aceea click OK.
    • Dacă regula nu există se procedeaza selectând New rule → Predefined → Active directory domain services Active Directory Domain Controller - W32Time (NTP-UDP-In) Allow the conection→Finish. După aceea click dreapta →Advanced →Allow edge transversal
  1. To check outbound UDP poart status on the domain controller, click Outbound Rules.
  2. Pentru a permite conexiuni de ieșire pe 123 UDP
    • In Windows Firewall with Advanced Security, click dreapta Outbound Rulesși după aceea click New.
    • În caseta New Outbound Rule Wizard, click Portși după aceea click Next.
    • Click UDP, click Specific local ports, type 123și după aceea click Next.
    • Click allow the conection
    • Click pe profilele utilizate (domeniu, privat, public)
    • Tastează un nume de exemplu w32tm 123 UDP out și finish.


Dacă în eventuri apar „no valid response from NTP servers” este posibil ca un firewall să blocheze în continuare traficul ( of course call ISP).


joi, 1 decembrie 2016

Remediere eroare C381 Toshiba 2330C


Remediere eroare C381 Toshiba 2330C
Codul de eroare C381 – Auto-toner sensor-K abnormality (lower limit) poate apărea după o recondiționare a unității de imagine black. Codurile de eroare similare pentru unitățile de imagine C391 – cyan, C3A1 – magenta și C3B1 – yellow.
Pentru remediere se accesează „adjustment mode”. Se oprește copiatorul și se apasă butoanele 0 și 5 simultan la pornire. (Pentru diagnoză se apasă 0+3 sau 0+4). Se rulează comanda 204 cu tonerul negru scos din copiator. Se așteaptă aproximativ 2 minute și la finalizare comandă se repornește copiatorul.
O listă utilă pentru coduri de eroare imprimante/copiatoare la adresa http://printcopy.info

miercuri, 12 august 2015

Primul pas în informatică




or Informatica




Sistemele de calcul datorită vitezei mari de prelucrare a datelor și capacității de stocare ridicate pot fi foarte utile pentru rezolvarea problemelor atât din activitatea cotidiană cât și din activitatea stiințifică și tehnologică modernă.
Rezolvarea problemelor cu ajutorul calculatorului presupune parcurgerea mai multor etape:
1)              analiza problemei (cu stabilirea datelor de intrare/ieşire) şi modelarea ei matematicã;
2)              descrierea algoritmului de rezolvare cu ajutorul schemei logice şi (sau) a pseudocodului;
3)              scrierea programului într-un limbaj de programare evoluat;
4)              compilarea programului;
5)              asamblarea programului;
6)              execuţia programului.
Etapele 1.-3. sunt etape realizate de programator, iar etapele 4.-6. sunt realizate de către software sistem de calcul.


Algoritmi
Un algoritm (cuvântul algebra are la origine o lucrare fundamentală în domeniul aritmeticii a matematicianului persan Al-Khwarizmi iar cuvântul algoritm provine din numele autorului ) înseamnă în matematică și informatică o metodă sau o procedură de calcul, alcătuită din pașii elementari necesari pentru rezolvarea unei probleme sau categorii de probleme.
Algoritmul este noțiunea fundamentală a informaticii. Totul este construit în jurul algoritmilor chiar și reprezentarea datelor se efectuează după algoritmi specializați.
Câteva exemple de algoritmi:
·  algoritmul de determinare al celui mai mare divizor comun a două numere;
·      algoritmul de determinare a numerelor prime;
·      algoritmul de asamblare a unei mașini;

Proprietăți


Cele mai importante proprietăți ale unui algoritm sunt următoarele:
a) Eficiența - este proprietatea unui algoritm de a obține un rezultat după un număr optim de pași.
b) Claritate – la fiecar pas operațiile efectuate să fie clar definite, fără ambiguități și fără posibilitate de execuție arbitrară a unor operații;
c)  Generalitate - este proprietatea unui algoritm de a rezolva o clasă sau categorie de probleme, și nu doar o singură problemă particulară. Spre exemplu, un algoritm care rezolvă doar ecuația x2 + 5x − 6 = 0 este mai puțin general decât unul care rezolvă ecuația ax2 + bx + c = 0, oricare ar fi valorile lui a,b,c.
d) Finititudine - algoritmul trebuie să furnizeze rezultatele într-un număr finit (cât mai mic) de paşi;
e) Unicitate - etapele algoritmului trebuie să fie definite în mod unic.
f)   Verificabilitatea - acea proprietate a algoritmilor care permite ca fiecare pas să poată fi verificat într-un timp rezonabil de către om.

Clasificări

În funcție de modul de implementare, un algoritm poate fi:
·      recursiv – în execuția algoritmului un pas îl reprezintă apelul la sine însuși
·      iterativ ( conține o structură liniară/mai multe structuri liniare și una sau mai multe structuri repetitive)
·      serial sau paralel
·      determinist sau aleatoriu (probabilistic)
·      exact sau aproximativ
În funcție de modul de rezolvare , ei pot fi:
·      algoritmi backtracking
·      algoritmi 'divide et impera'
·      algoritmi de programare dinamică
·      algoritmi 'greedy'
·      algoritmi specializați (probabilistici, genetici, euristici ș.a.)


 Reprezentarea algoritmilor

        Pentru reprezentarea algoritmilor se pot utiliza mai multe metode:
·   schema logică;
·   pseudocodul (sau limbajul algoritmic);
·   limbajul de programare.
       Primele două sunt independente de tehnica de calcul, nu respectă o sintaxă rigidă şi sunt utile programatorului doar în faza de proiectare a algoritmilor.
Algoritmul scris într-un limbaj de programare este singura formă direct utilizabilă pe calculator, fiind un text codificat, pe baza unor legi sintactice bine determinate.


 

 




Noțiuni despre algoritmi și programare structurată
Schema logică

Schema logică este o reprezentare grafică ce permite vizualizarea înlănţuirii şi subordonării secvenţelor de operaţii. Schema logică foloseşte simboluri grafice numite blocuri, care prin forma lor indică tipul operaţiei, iar prin textul conţinut specifică semantica acesteia.
Schema logică conține blocuri terminale START/STOP care identifică în mod unic începutul/ sfârșitul algoritmului.
·   blocul delimitator sau terminal (fig. 2.1.a) - defineşte începutul (fig. 2.1.b)  sau sfârşitul (fig. 2.1.c) unui algoritm, proceduri sau funcţii;


 




                a)                             b)                            c)
 Blocuri delimitatoare

Operaţiile de bază care apar într-un algoritm sunt următoarele:
·      operaţii de intrare/ieşire - datele de intrare se citesc, iar datele de ieşire se afişează (se tipăresc);


 blocul de citire/scriere - se mai numeşte şi bloc de intrare/ieşire şi este utilizat pentru descrierea operaţiilor de citire, respectiv, scriere. De exemplu, în fig. b, se citesc valorile variabilelor a şi b , iar în fig. c, se scriu valorile variabilelor a şi b;

                      a)                           b)                       c)

Blocuri de citire/scriere
·      operaţii de atribuire - unei variabile i se atribuie valoarea unei expresii;
  blocul de calcul - este utilizat pentru reprezentarea operaţiei de atribuire . Efectul acestei operaţii constă în evaluarea expresiei e şi atribuirea rezultatului obţinut variabilei v.
De exemplu, în cazul operaţiei din fig. b, se adună valorile variabilei a cu valoarea variabilei b şi rezultatul se atribuie variabilei x. Efectul operaţiei din  fig. c constă în creşterea cu o unitate a valorii variabilei i;
                          a)                         b)                           c)
Blocuri de calcul

·      operaţii de decizie - se determină valoarea de adevăr a unei expresii logice şi, funcţie de rezultatul obţinut, se ramifică rezultatul algoritmului.

         blocul de decizie - are o intrare şi două ieşiri, câte una pentru fiecare valoare de adevăr. Dacă în urma evaluării condiţiei rezultatul este “fals“, se urmează calea “NU“. În caz contrar, se urmează calea “DA“.

                        a)                                           b)

Blocuri de decizie.

Un bloc special îl reprezintă blocul de apel procedură/funcție

 blocul de procedură - reprezintă apelul unei proceduri P. Procedura este o secvenţă de instrucţiuni descrisă printr-o schemă logică separată şi care are înscris în blocul terminal de început numele procedurii şi eventualii parametrii.



Blocul de procedură.

Programare structurată

Odată cu dezvoltarea informaticii a apărut şi noţiunea de programare structurată. La baza acestui concept stă ideea întocmirii algoritmilor folosind câteva structuri elementare, având o singură intrare şi o singură ieşire.
În cazul programării structurate, problema de rezolvat se descompune în subprobleme, a căror rezolvare duce la rezolvarea problemei iniţiale. Algoritmul, în acest caz, apare ca o secvenţă liniară de structuri elementare.
Structurile elementare sunt următoarele:
·   structura liniară - constă în execuţia necondiţionată a unei secvenţe de instrucţiuni, un algoritm liniar fiind un algoritm în care etapele de calcul se succed una după cealaltă;
·   structura alternativă - constă în ramificarea execuţiei algoritmului în funcţie de valoarea de adevăr a unei condiţii evaluate, algoritmii ramificaţi presupunând luarea unei anumite decizii în funcţie de care se continuă execuţia pe ramuri distincte;
·   structura repetitivă - constă în execuţia repetată, de un număr finit de ori, a unei secvenţe de instrucţiuni. Un algoritm repetitiv presupune repetarea unor etape de calcul de un anumit număr de ori. Ansamblul etapelor ce se repetă alcătuiesc o buclă. Dacă numărul de repetări este cunoscut, bucla se numeşte cu număr cunoscut de paşi, iar dacă nu este cunoscut, bucla se numeşte cu condiţie sau cu număr necunoscut de paşi.
Subproblemelor obţinute prin descompunerea unei probleme le corespunde conceptul de subprogram.
Subprogramele pot fi tip funcţie sau tip procedură. Diferenţa dintre funcţie şi procedură constă în faptul că funcţia transmite programului apelant o singură valoare, în timp ce procedura poate să nu transmită programului apelant nici o valoare, sau să transmită una sau mau multe valori.
Referirea unui subprogram poartă denumirea de apel.
O noţiune de bază în programare o constituie noţiunea de variabilă. O variabilă este caracterizată de patru elemente: nume, tip, valoare şi adresă în memorie.
Numele unei variabile este format din unul sau mai multe caractere (litere şi cifre, primul fiind literă), de exemplu: A, o ,min, X3.
Tipul indică mulţimea de valori posibile: întreg, real, şir de caractere, boolean etc.
Un tip variabilă poate fi elementar sau structurat.
Tipurile structurate se obţin prin gruparea tipurilor elementare. Dintre acestea amintim tabloul, în care variabilele au acelaşi nume şi tip, deosebindu-se prin indici. Un tablou cu o singură dimensiune se numeşte şir, iar un tablou cu două dimensiuni se numeşte matrice.
Adresa variabilei este adresa fizică din memoria calculatorului la care se află valoarea variabilei. De obicei adresa este invizibilă pentru programator.
Valoarea variabilei reprezintă valoarea efectivă pe care aceasta o are la un moment dat. Valoarea unei variabile se poate modifica numai printr-o instrucţiune de citire sau atribuire.

Structuri elementare

În schemele logice pot să apară următoarele structuri elementare:
a)      structura liniară sau secvenţa - este o înşiruire de una sau mai multe acţiuni (A, B, …) ce se execută secvenţial.


 Structura liniară.

Acţiunile (A, B, …)  pot fi blocuri: de calcul, de intrare-ieşire, de procedură, sau combinaţii liniare ale acestora. Structura liniară se execută necondiţionat.

b)      structura alternativă sau decizia - utilizează un bloc de decizie. Atunci când este îndeplinită condiţia, execuţia programului se continuă pe ramura “DA“, adică se execută instrucţiunile din secvenţa A. În caz contrar, se execută instrucţiunile din secvenţa B.


 

Structura alternativă.


        Structura alternativă poate să apară şi în una din variantele din fig.a sau fig. b

                           a)                                b)

Variante de structuri alternative.


c)     structura repetitivă sau bucla - se bazează pe executarea repetată a unei secvenţe de blocuri. Această structură trebuie să conţină o condiţie care, la un moment dat, să determine ieşirea din structura repetitivă.

Există trei tipuri de bucle: while, repeat şi for.
·      bucla while(repeta cât timp (este valida condiţia))  este caracterizat prin faptul că secvenţa de instrucţiuni A se repetă atâta timp cât condiţia c este îndeplinită. Se spune că este un ciclu cu test iniţial deoarece, mai întâi, se verifică dacă este îndeplinită condiţia din blocul de decizie, după care se execută secvenţa de instrucţiuni A;
·      bucla repeat (repeta până când (este valida condiţia)) este caracterizat prin faptul că secvenţa de instrucţiuni A se repetă atâta timp cât condiţia c nu este îndeplinită. Acesta este un ciclu cu test final deoarece, mai întâi, se execută secvenţa de instrucţiuni A, după care se verifică dacă este îndeplinită condiţia din blocul de decizie;
                        a)                                             b)

 Structuri repetitive: a) de tip while; b) de tip repeat.

·      bucla for (repeta pentru valorile) () este caracterizat prin faptul că secvenţa de instrucţiuni A se execută pentru fiecare valoare pe care o poate lua o variabilă, numită contor. Contorul pleacă de la o valoare iniţială şi creşte/descreşte cu o anumită valoare, până la o valoare finală. Ieşirea din ciclu are loc atunci când valoarea contorului devine mai mare/mică decât valoarea variabilei finale.

În cazul buclei repeta contorul are valoarea iniţială vi, rata de creştere/descreştere  r şi valoarea finală vf. În cazul exemplului din imagine, ieşirea din buclă are loc atunci când i > vf.
Buclele de tip while şi de tip repeat sunt bucle cu un număr necunoscut de paşi deoarece, de cele mai multe ori, nu se cunoaşte după câte execuţii ale secvenţei A are loc ieşirea din buclă.
        Bucla de tip for este o buclă cu un număr determinat de paşi, deoarece se poate calcula de câte ori se execută secvenţa A.
        În cazul buclei while, secvenţa A poate să nu fie executată niciodată, dacă iniţial condiţia de buclă nu este îndeplinită. 





 Structură repetitivă de tip for.

        În cazul buclelor repeat şi for, secvenţa A este executată cel puţin o dată, chiar dacă iniţial condiţia de buclă nu este îndeplinită.



Pseudocodul

Pseudocodul permite o descriere mai fidelă a algoritmului, folosind o serie de cuvinte cheie specifice. Astfel se face tranziția de la limbajul natural la limbajul de programare folosit pentru scrierea programului, uşurând atât reprezentarea cât şi transpunerea acestuia. Sintaxa pseudocodului se apropie de limbajul de programare PASCAL,  dar transpunerea într-un alt limbaj de programare este ușor de realizat.
Punctul forte al pseudocodului este că nu are o sintaxă rigidă permițând creionarea rezolvării algoritmului la un nivel personal de abstractizare neexistând restricțiile de sintaxă ale unui limbaj de programare.
Pentru a realiza transpunerea facilă într-un limbaj de programare cuvintele cheie folosite de pseudo-cod sunt reprezentări ale operațiilor de bază efectuate de sistemul de calcul, precum și ale setului de instrucțiuni ale procesorului. Pentru exemplificare cuvinte cheie pseudocod vom folosi algoritmul de determinare al celui mai mare divizor comun a două numere. Varianta folosită în exemplificare rezolvă problema determinării c.m.m.d.c. prin împărțiri sucesive ale celor două numere până când restul împărțirii este 0. Ultimul împărțitor fiind chiar c.m.m.d.c.
Cuvintele cheie din pseudocodu sunt următoarele:

1. algoritmul nume algoritm  este :
Cu aceast cuvânt cod începe un algoritm scris în pseudocod şi are rolul de a defini programul (corespunde blocului START din schema logică).
        Exemplu: algoritmul c.m.m.d.c. al 2 numere întegi este :

2. citeşte listă variabile;
Prin acest cuvânt cod se definește o operație de intrare de date. Astfel datele sunt citite de la tastatură, din memoria internă sau externă și transmise programului pentru prelucrare (corespunde blocului de citire din schema logică) . Prin listă variabile se înţelege un șir de variabile separate prin virgulă (cuvintele ȘI/SAU sunt cuvinte cheie utilizate ân operații de logică) .
Exemplu:  instrucţiunea corespunzătoare algoritm c.m.m.d.c. pentru citire date este:
 citeşte a,b;

3. scrie listă variabile;
Prin acest cuvânt cod se definește o operație de transfer de date din program către un periferic al sistemului de calcul (display, unitate de memorie externă, imprimantă). Această operație de ieșire date corespunde blocului de scriere din schema logică.
Exemplu, instrucţiunea corespunzătoare algoritm c.m.m.d.c. este următoarea:
scrie ”c.m.m.d.c. este =” , b;
Se observă particularizarea sintaxei în funcție de tipul datelor afișate. Un program lucrează în principal cu două tipuri de date: date variabile și date constante. O variabilă este o dată a cărei valoare se modifică sau nu în cursul execuției programului. O constantă este o dată a cărei valoare nu se modifică în cursul execuției programului. De asemenea deosebim date numerice (conțin numere) și alfanumerice (conțin cuvinte). Observăm că o constantă alfanumerică este încadrată de ghilimele duble la operațiile de transfer de date (de intrare sau de ieșire).
4. dată ¬  expresie;
Efectul acestui cuvânt cod este de modificare a valorii datei cu valoarea expresiei (corespunde blocului de calcul din schema logică). Prin această operație valoarea expresiei se atribuie variabilei specificate prin cuvântul dată.
 Exemplu, instrucţiunea corespunzătoare algoritmului c.m.m.d.c. este următoarea:
a ¬ a/ b;

5. dacă condiţie atunci listă de instrucţiuni A
                      [altfel listă de instrucţiuni B]
 sfârşit dacă;
Aceste cuvinte cod corespunde structurii de decizie din schema logică.Operațiile care se execută sunt următoarele:
-se determină valoarea logică de adevărat sau fals a condiţiei specificate;
-dacă condiția este adevărată se execută lista de instrucţiuni A;
-dacă condiţia este falsă  se execută lista de instrucţiuni B;
-execuția algoritmului după efectuarea listei de instrucțiuni A sau B continuă cu instrucțiunea descrisă de cuvîntul cod imediat următor după cuvîntul cod sfărșit dacă.

Ramura asociată cuvântului cod  altfel este opţională (de aceea s-a pus între paranteze pătrate), adică, în anumite cazuri, aceasta poate lipsi. În asemenea situaţii, instrucţiunea este următoarea:
dacă condiţie
atunci listă de  instrucţiuni A
sfârşit dacă;
Exemplu pentru algoritmul c.m.m.d.c.:
dacă (a<b)
atunci
aux¬a
a¬b
b¬a
sfârşit dacă;
Prin această secvență de cod asigurăm rularea algoritmului c.m.m.d.c. atunci când prin împărțiri succesive ale numerelor a și b a devine mai mic decât b dar restul împărțirii este diferit de 0 (nu s-a obținut încă c.m.m.d.c.)

6. caz  condiţie 1 : listă de instrucţiuni 1
         condiţie 2 : listă de instrucţiuni 2
         
         condiţie n : listă de instrucţiuni n
                 [implicit listă de instrucţiuni n+1]
  sfârşit caz;

Această instrucţiune este o structură de decizie multiplă. Este implementată diferit în limbajele de programare. Modul de excuție pentru această structură de cuvinte cod este următorul:
-se verifică condiția 1 dacă este adevărată se execută lista de instrucțiuni 1;
-se verifica condiția 2 dacă este adevărată se execută lista de instrucțiuni 2;
.........................................
-se verifica condiția n dacă este adevărată se execută lista de instrucțiuni n;
-se execută lista de instrucțiuni n+1.
Implementarea este diferită în funcție de limbajul de programare. Implementarea în C este foarte restrictivă. Avem o variabilă de tip întreg. Condițiile 1,2,... n reprezintă valori ale variabilei de caz. Cazul implicit nu tebuie să lipsească altfel compilatorul va da eroare. Aceste restricții previn injectare de cod în program.

Exemplu folosit în algoritmul c.m.m.d.c.
n<-0
Dacă ((a=0) SAU (b=0))
          n¬1
Sfârșit dacă

Dacă (a=b)
          n¬2
Sfârșit dacă

Caz n
1:       scrie ”Date intrare incorecte”
          ieșire
2:       scrie”c.m.m.d.c=”, a
          ieșire
Implicit...............................
 Sfârșit caz
În acest exemplu se observă de ce se folosește semnul „/” pentru împărțire. Pentru că semnul „:” intră în construcția unei instrucțiunii foarte restictive.
De asemenea în exemplu mai apare cuvântul cod ieșire cu sensul de părăsire a instrucțiunii caz și de a continua execuția cu cuvintul cod ce urmează după sfărșit caz.
Instrucţiunea caz nu are un bloc corespondent în schema logică. Totuşi ea poat fi asimilată cu mai multe structuri alternative conectate în cascadă.

7. cât timp condiţie execută
        listă de instrucţiuni A
   sfârşit cât timp;

Această structură de cuvinte cod corespunde unei structuri repetitive de tip buclă condiționată anterior.
Execuţia aloritmului descris de aceste cuvinte cod este următoarea:
-se verifică valoarea de adevăr a condișiei -condiţia;
-dacă condiția este adevărată se execută lista de instrucțiuni A, după care se verifică valoarea de adevăr a condiției condiție după aceea se execută execută lista de instrucțiuni A, se verifică valoarea de adevăr a condiției condiție ș.a.m.d;
-dacă valoarea de adevăr a condiției condiție este falsă execuția algoritmului continuă cu cuvântul cod ce urmează după sfârșit dacă.
Observație:
 Dacă,la prima iterație,  condiţia nu este îndeplinită, lista de instrucţiuni A nu se execută.

Exemplu
cât timp (a%b≠ 0) execută
        a¬a/b
                  dacă (a<b)
atunci
aux¬a
a¬b
b¬aux
sfârşit dacă;

         sfârşit cât timp

8. repetă
     listă de instrucţiuni  A
până când condiţie;

Această instrucţiune corespunde structurii repetitive de tip structuri repetitive de tip buclă condiționată posterior.
Execuţia aloritmului descris de aceste cuvinte cod este următoarea:
- se execută lista de instrucțiuni A, după care se verifică valoarea de adevăr a condiției condiție, dacă e adevărată se execută execută lista de instrucțiuni A, se verifică valoarea de adevăr a condiției condiție ș.a.m.d;
-dacă valoarea de adevăr a condiției condiție este falsă execuția algoritmului continuă cu cuvântul cod ce urmează după sfârșit dacă.
        Chiar dacă iniţial condiţia nu este îndeplinită, secvenţa A se execută cel puţin o dată.

Exemplu:
repetă
        a¬a/b
                  dacă (a<b)
atunci
aux¬a
a¬b
b¬aux
sfârşit dacă;

până când (a%b≠ 0);



9. pentru i=vi, vf [, r] execută
       listă de instrucţiuni A
 sfârşit  pentru;

Această instrucţiune corespunde structurii repetitive de tip buclă condiționată de contor buclă.
Bucla se va executa până când contorul de bucle va depăși o valoare stabilită.
Execuţia aloritmului descris de aceste cuvinte cod este următoarea:
-se dă contorului de bucle i valoarea iniţială vi;
-se execută lista de instrucţiuni A;
-se creşte valoarea variabilei i cu pasul r (i¬i+r);
-dacă valoarea variabilei i este mai mică sau egală cu valoarea finală vf, se execută lista de instrucțiuni A,în caz contrar, se trece la execuţia instrucţiunii ce urmează după sfârşit pentru.
Observație:
Specificarea valorii pasului r este opţională. În cazul în care valoarea lui r nu se specifică, se consideră r =1.

10. stop;
Această instrucţiune determină terminarea execuţiei programului, deci este ultima instrucţiune dintr-un program (corespunde blocului STOP din schema logică).

11. procedura nume [(listă parametri )];
           listă de instrucţiuni
   sfârşit procedură

Prin procedură se înțelege un subprogram independent de programul principal apelat ca atare de programul de bază. Prin acest cuvânt cod se declarară o procedură. Există si declarare formală care  constă în declararea numelui procedurii şi declararea listei parametrilor (listă care este opţională), parametrii care sunt preluați din programul apelant, sau transmiși la apel procedură. În listă, parametri se separă prin virgulă. Implementarea procedurilor diferă de limbajul de programare. Avem o implementare sub formă de funcții dar și implementări sub formă de clase și obiecte ca în C++.

12. nume listă parametri;
Acest cuvânt de cod redă apelul unei proceduri se face specificând lista parametrilor. În listă, parametri actuali se separă prin virgulă.

13. salt;
Cu această instrucţiune se determină salt la inceputul/sfârşitul buclei ce conţine această instrucţiune (deci la un repetă cât timp, la un sfârşit până când, sau la un sfârşit pentru), fără a se produce ieşirea din buclă.

14. ieşire;
Această instrucţiune determină ieșirea din buclă execuția programului continuă cu următorul cuvânt cod după sfârşit cât timp,  până când, sau  sfârşit pentru;

15. //Comentariu;
Încadrate de /* și */ sau începând pe fiecare linie cu //, comentariile pot să apară oriunde în program. La execuţia programului, rezultatul comentariilor este nul, acestea având o valoare de reper pentru programator.

16.   Salt necondiționat etich,
Acest cuvânt cod determină saltul execuției algoritmului la cuvântul cod cu eticheta etich. (sintaxa este salt la și este insoțită de o eticheta)


17.   Etichetă etich
Această cuvânt cod marchează acea linie din algoritm cu eticheta etich. Poate să fie chiar o linie vidă, la care să nu se execute nici o operație (de exemplu un comentariu).

Etich j10: j=10
.
  .
dacă (condiție)
salt la Etich j10

Exemple de algoritmi descrişi în pseudocod

1.Suma a n numere reale

Cu ajutorul pseudocodului, algoritmul de calcul a sumei a n numere reale rezultă:

algoritmul suma a n numere reale este :
citeşte n;
s¬0
                 pentru i =1, n execută
                                citeşte a
                        s¬s+a
sfârşit pentru;
        scrie s;
sfârşit;

2.Calcul c.m.m.d.c. a 2 numere întregi
algoritmul c.m.m.d.c. al 2 numere întegi este :
citeşte a,b;
  n<-0
dacă ((a=0) SAU (b=0))
          n¬1
sfârșit dacă

dacă (a=b)
          n¬2
sfârșit dacă
caz n
1:       scrie ”Date intrare incorecte”                //cazul de excepție
          ieșire
2:       scrie”c.m.m.d.c=”, a                   //cazul cel mai favorabil
          ieșire
Implicit
                             cât timp (a%b≠ 0) execută
                          dacă (a<b)
atunci
aux¬a
a¬b
b¬aux
sfârşit dacă;
                   a¬a/b
                                      sfârşit cât timp
scrie”c.m.m.d.c=”, b
sfârșit caz
sfârșit
Această rezolvare nu este cea mai optimă întrucât nu se ține cont de 2 factori:
-există o posibilitate mare ca ambele numere să fie pare;
-operațiile de împarțire la 2 se efectueaza foarte rapid (o deplasare către dreapta cu un bit).