duminică, 21 decembrie 2014

Domeniul de vizibilitate

Prin domeniul de vizibilitate (valabilitate) se intelege zona de program in care e valabila declararea sau definirea unui identificator. Toti indentificatorii definiti sau declarati intr-un bloc sunt cunoscuti in blocul respectiv si se numesc variabile locale. Daca blocul cuprinde blocuri incluse in care identificatorii (variabile locale ale acestora) nu se definesc sau redenumesc, atunci acestea sunt cunoscute in blocurile incluse si se numesc variabile globale pentru acesta. Daca o variabila declarata intr-un bloc se redefineste atunci in blocul in care a fost redeclarata va fi variabila atribuita generata la redeclarare.

Domeniul de vizibilitate al variabilelor
In PHP o variabila poate fi accesata doar in contextul in care a fost definita. De exemplu, o variabila definita in interiorul unei functii nu va putea fi accesata decat de instructiunile din interiorul acelei functii. Mai mult, in mod implicit, o variabila definita in exteriorul unei functii nu va putea fi accesata in interiorul functiei chiar daca ea nu este redefinita in cadrul functiei.
Pentru ca o functie sa aiba acces la o variabila definita in afara ei, variabila trebuie redeclarata ca variabila globala in interiorul functiei.
Sa consideram urmatorul exemplu:
Scriptul PHP
Rezultatul scriptului
<?php
    $a = 1;
    function test () {
      echo $a;
    }
    test ();
?>
Eroare
Observam ca nu se afiseaza valoarea 1 deoarece instructiunea echo $a se refera la variabila locala $a care nu este definita, deci nu are nici o valoare. In continuare, este o versiune in care instructiunea echo $a va accesa variabila $a definita in afara functiei test ():
Scriptul PHP
Rezultatul scriptului
<?php
    $a = 1;
    function test () {
      global $a;
      echo $a;
    }
    test ();
?>
1
O a doua posibilitate de a accesa o variabila definita in afara functiei este folosirea vectorului $GLOBALS:

Scriptul PHP
Rezultatul scriptului
<?php
    $a = 1;
    function test () {
      echo $GLOBALS ["a"];
    }
    test ();
?>
1

Proceduri

O procedura Pascal poate avea uan din urmatoarele sintaxe.
Forma a) fara parametrii formli cu sintaxa
Forma b) cu parametrii formali, cu sintaxa
unde
-nume este un indentificator Pascal, unde si este numele procedurii;
-(l1:t1; ;ln: tn) reprezinta listele parametrilor formali si a tipurilor acestora, daca multimea acestora nu e vida; li : ti, i=1,2, ,n sint separate prin caracterul “i”( punct si virgula) si se numesc parametric formali.
Parametrii formali dintr-o procedura(si functie) se declara numai in antetul de procedura(functie) si nu in sectiunea declaratiei ca celelalte obiecte Pascal.
Observatii:
1) O procedura are o structura asemanatoare cu a unui program diferit doar prin antet (instructiunea de inceput).
2) Intr-o declaratie de procedura sunt obligatorii doar antetul de procedura si instructiunea compusa BEGIN END.
3) Orice identificator folosit in zona de instructiuni a procedurii, exceptand parametrii formali, trebuie sa fie declarat fie in sectiunia de decalratii a procedurii(cand are valoare locala-numai in corpul procedurii), fie in programul din care face parte procedura in care caz variabila are valoare gloabla –dac aceiasi variabila nu este declarata si in procedura
4) Daca un identificator cu acelas nume figureaza si este declarat si in programul principal si in subprogram(procedura functie), atunci semnificatiiele lui sunt diferite in programul principal si subprogram



Functii

Functia este un subprogram care calculeaza si returneaza o singura  valoare.Ea extinde notiunea de
 de expresia Pascal.
O functie Turbo Pascal are o structura sintactica asemanatoare cu a unui proceduri Turbo Pascal. Sintaxa functiei este urmatoarea: 
unde:
tip nume este valorii pe care o ia nume sip e care o va returna programului apelat. El poate fi : intreg, real, CHAR, BOOLEAN, pointer, STRING. O functie calculeaza o valoare ce se asociaza numelui functiei nume, prin urmare este necesara precizarea tipului numelui. De asemenea este necesara, in cadrul sectiuni de instructiuni, prezenta numelui functiei: nume cel putin odata, in membrul sting a unei instructiuni de atribuire. Specificarea tipului de functie se face in antet. In urma executiei unei functii rezultatul obtinut este atribuit numelui functiei, prin intermediul caruia se face returnarea acestui rezultat.
li:ti sint declaratori de tip aiparametrilor formali si au aceeai semnificatie ca la proceduri. La functii lista parametrilorformali nu poate fi vida.
Exemplu. Sa se elaboreze o functie Turbo Pascal care sa calculeze minimul a doua numere reale.
Functia este urmatoarea :
FUNCTION min(z,y:REAL) : REAL;
BEGIN
IF X<Y
THEN min:=x
ELSE min:=y
END.
In acest exemplu numele functia sint x si y tip REAL acest lucru fiind precizat astfel:
FUNCTION min( ) :REAL;
Parametrii functiei sint x si y de tip REAL si sunt parametrii formali-constante.
Se observa ca in cazul functiei numele min apare de doua ori partea stanga a unei instructiuni de atribuire.
IF X <Y
THEN
ELSE
END.
Apelul functiei se face prin numele sau, urmat in paranteza de lista parametrilor actuali, nume ce apare in cadrul unei expresii. In apelul functiei parametrii actuali nume ce apare in cadrul unei expresii de acelasi tip cu parametrul formal corespunzator. Ca si la apelul procedurilor parametri actuali trebuie sa se corespunda cu parametrii formali in numar, ordine si tip.


Functii predefinite

Functiile predefinite reprezinta formule speciale care respectand o anume sintaxa, executa operatii si prelucrari specifice, fiind destinate rezolvarii unor probleme si aplicatii ce contin elemente predefinite de calcul.
Unele functii predefinite sunt echivalente formulelor: de exemplu, formula de adunare a continutului celulelor A1, A2 si A4, adica =A1+A2+A4 este echivalenta cu functia =Sum(A1:A2;A4). Alte functii (majoritatea cazurilor) nu au echivalent în randul formulelor, rezultatul scontat neputand fi obtinut decat prin aplicarea functiilor predefinite sau putand fi obtinut pe cale obisnuita, prin aplicarea succesiva a mai multor operatii si formule.
Folosirea functiilor predefinite este supusa unor reguli foarte stricte, a caror nerespectare poate conduce la un rezultat incorect sau generator de eroare.
Cea mai mare parte a functiilor predefinite au trei componente:
- semnul "egal"= (sau semnul "plus" +, pentru compatibilitate cu 1-2-3);
- numele functiei;
- unul sau mai multe argumente;
Nici un spatiu nu este admis ca separator între cele trei componente ale functiilor predefinite. Argumentele se afla închise între paranteze rotunde si sunt separate printr-un separator zecimal. Acest separator poate fi virgula sau punct si virgula, dupa cum a fost configurat initial sistemul. In exemplele luate, se va lua în consideratie ca separator zecimal caracterul "punct si virgula".
Exista si functii care nu au nevoie de precizarea argumentului, de exemplu:=NOW(), =TRUE(), =TODAY(), etc.
Exemplul urmator ilustreaza diferite argumente care se pot întalni la o functie predefinita:
Functie predefinita Tip argument
=SUM(A2:A7) plaja continua de celule
=SUM(A2:A7;A9;A11:A20) plaja discontinua de celule
=MAX(59;36;84) lista de valori
=DATE(62;10;18) lista de valori data calendaristica
=IF(A1=A2;"Bun";Rau") valoare logica
=INT(SUM(D1:D9) functie predefinita
=UPPER("Ionescu") sir de caractere
=REPT("Ionescu",3) sir si valoare numerica
=FACT(6) valoare numerica
Excel accepta urmatoarele tipuri de argumente:
- o conditie: este o expresie logica care foloseste unul din operatorii logici =, <, >, <>, <=, >=, NOT( ), AND( ), OR( ) pentru o adresa de celula sau un nume de camp. Conditia argumentului poate fi deci o formula, un numar, un nume de camp, un text. Functia evalueaza conditia si procedeaza la diferite operatii în functie de faptul daca conditia este adevarata sau falsa.
o locatie: este o adresa, un nume de camp, o formula sau functie care genereaza o adresa sau un nume de camp.
un text: orice secventa de caractere inclusa între ghilimele, adresa sau un nume de camp ce contine o eticheta tip sir de caractere sau o formula sau functie care returneaza o eticheta. Un sir de caractere folosit într-o functie trebuie pus între ghilimele pentru a nu fi confundat cu un nume de camp.
o valoare: un numar, adresa sau numele unei celule care contine un numar, o formula sau functie predefinita care returneaza un numar.
Toate tipurile de argumente pot fi folosite împreuna într-o functie atunci cand sintaxa este respectata.
O functie predefinita se poate introduce într-o celula tastand-o ca atare (conform sintaxei) sau prin intermediul generatorului de functii.
Cea mai simpla metoda o reprezinta introducerea nemijlocita a functiilor predefinite, corespunzator sintaxei, în celula unde se va opera calculul respectiv (metoda recomandata).
In cel de-al doilea caz, se activeaza selectorul functiilor predefinite aflat pe bara de editare sau se activeaza comanda Insert Function. Apoi, se alege functia respectiva, din caseta de dialog Paste Function, se valideaza si se completeaza sintaxa generata automat.
Apelarea selectorului de functii se face prin apasarea butonului = (egal) aflat pe bara de editare, dupa care se deschide lista functiilor predefinite, se alege functia dorita, dupa care se completeaza interactiv argumentele.
Functia poate fi aleasa din lista functiilor cele mai utilizate (Most Recently Used), din lista tuturor functiilor disponibile ordonate alfabetic (All), sau din categoriile de functii specializate (Financial, Date & Time, Math & Trig, Statistical ...)
In celula din care s-a apelat functia predefinita va apare sintaxa functiei selectate si validandu-se operatia prin butonul OK se va genera rezultatul respectivei functii..
De regula, utilizarea asistentului de functii presupune parcurgerea a doi pasi:
pasul 1 semnifica alegerea tipului de functie;
pasul 2 presupune completarea interactiva a sintaxei functiei

Operatori logici,aritmetici si cuvinte cheie







Combinatii de taste

Combinațiile de taste ale sistemului Windows

  • F1: ajutor
  • CTRL + ESC: Deschide START meniu
  • ALT + TAB: Comutare între programe deschise
  • ALT + F4: Închide programul
  • SHIFT + DELETE: Ștergerea definitivă a elementului
  • Siglă Windows + L: Blocare calculator (fără a folosi CTRL + ALT + DELETE)

Combinațiile de taste ale programului Windows

  • CTRL + C: Copiază
  • CTRL + X: Decupează
  • CTRL + V: Lipește
  • CTRL + Z: anula
  • CTRL + B: Bold
  • CTRL + U: Underline
  • CTRL + I: Italic

Combinații de modificatoare mouse/tastatură pentru obiecte shell

  • SHIFT + clic dreapta: afișează un meniu de comenzi rapide care conţine comenzi alternative
  • SHIFT + dublu clic: execută comanda implicite alternative (al doilea element din meniul)
  • ALT + dublu clic: afişează proprietăţi
  • SHIFT + DELETE: Şterge un element imediat, fără a-l plasa în Coșul de reciclare

Comenzi generale de tastatură

  • F1: Lansează Ajutor Windows
  • F10: Activează opţiunile bării de meniu.
  • SHIFT + F10 deschiderea unui meniu de comenzi rapide pentru elementul selectat (aceasta este aceeași cu clic-dreapta pe un obiect
  • CTRL + ESC: Deschiderea meniului Start (utilizaţi tastele săgeată pentru a selecta un element)
  • CTRL + ESC sau ESC: selectează butonul Start (apăsaţi TAB pentru a selecta bara de activități sau apăsați SHIFT + F10 pentru un meniu contextual)
  • CTRL + SHIFT + ESC: Deschide Manager activități Windows
  • ALT + săgeată în jos: Deschide o casetă listă verticală
  • ALT + TAB: Comutare la alt program în execuție (ţineţi apăsată tasta ALT, apoi apăsați pe tasta TAB pentru a vizualiza fereastra de comutare activități)
  • SHIFT: Apăsați și țineți apăsată tasta SHIFT când introduceți un CD-ROM se evită caracteristica de executare
  • ALT + bară de spațiu: Afișează meniul de sistem al ferestrei principale (din meniul de sistem , puteți restaurare, muta, redimensiona, minimiza, maximiza sau închide fereastra)
  • ALT +-(ALT + cratimă): afişează meniul de sistem fereastra fiu interfață pentru documente Multiple (MDI) (din meniul desistem fereastra copil MDI, puteți restaurare, muta, redimensiona, minimiza, maximiza sau închide fereastra fiu)
  • CTRL + TAB: Comutare la următoarea fereastră fiu a programului interfață pentru documente Multiple (MDI)
  • ALT +litera subliniată din meniu: deschiderea meniului
  • ALT + F4: Închide fereastra curentă
  • CTRL + F4: Închiderea ferestrei curente de interfață pentru documente Multiple (MDI)
  • ALT + F6: Comutare între mai multe ferestre din același program (de exemplu, când Notepad se afișează caseta de dialog Find , ALT + F6 comută între găsiți caseta de dialog şi fereastra principală Notepad)

Tablouri bidimensionale

Un tablou bidimensional este o succesiune de locatii de memorie recunoscute prin acelasi  identificator si prin  pozitia fiecareia in cadrul sirului. Pozitia este data printr-o suita de numere pozitive(indecsi), care reprezinta cele doua dimensiuni (linie si coloana).Tabloul are un nr. determinat de elemente si se identifica printr-un  singur nume.Valorile atribuite elementelor trebuie sa fie de acelasi tip. Tablourile bidimensionale se numesc MATRICE.

Sintaxa de declarare a unei matrice este: tip nume[m][n], unde:
 * tip – tipul de data folosit; poate fi unul din tipurile de baza (int, char, …) sau un tip definit de utilizator (articole, obiecte)
 * nume – numele prin care va fi referita matricea
 * m – numarul de linii din matrice
 * n- numarul de coloane din matrice

Blocul de introducere:
For i:=1 to n do
For j:=1 to m do begin
write('A[,'i,j',]=');
readln(A[i,j];
end;
Blocul de afisare:
For i:=1 to n do begin
For j:=1 to m do
write(A[i,j]:4);
writeln;
end;



Program P7;
var A:array [1..100,1..100] of integer;
var i,j,n,m,s:integer;
begin
writeln ('Introduceti n'); readln (n);
writeln ('íntroduceti m'); readln (m);
For i:=1 to n do
For j:=1 to m do begin
write('A[,'i,j',]=');
readln(A[i,j];
end;
For i:=1 to n do begin
For j:=1 to m do
write(A[i,j]:4);
writeln;
end;

Program P7;
var A:array [1..100,1..100] of integer;
var i,j,n,m,s:integer;
begin
writeln ('Introduceti n'); readln (n);
writeln ('íntroduceti m'); readln (m);
For i:=1 to n do
For j:=1 to m do begin
write('A[,'i,j',]=');
readln(A[i,j];
end;
For i:=1 to n do begin
For j:=1 to m do
write(A[i,j]:4);
writeln;
end;