s-101
| Corpul buclei este format dintr-o singură instrucțiune. |
s-102
| Repetarea se face cel puțin o dată. |
s-103
| Plasarea acestei instrucțiuni în corpul unui ciclu are ca efect terminarea iterației curente și trecerea la iterația următoare. |
s-104
| O secvență de numere întregi este terminată prin 0. |
s-105
| Să se calculeze suma termenilor pozitivi din secvență. |
s-106
| Are ca efect ieșirea dintr-o instrucțiune de ciclare sau dintr-o instrucțiune switch, pentru a face alternativele disjuncte (în caz contrar dintr-o alternativă se trece în următoarea). |
s-107
| Permite implementarea unor cicluri cu mai multe ieșiri plasate oriunde în interiorul ciclului. |
s-108
| Orice funcție nedeclarată void va trebui să întoarcă un rezultat. |
s-109
| Tipul acestui rezultat este specificat în antetul funcției. |
s-110
| Transmiterea acestui rezultat este realizată de o instrucțiune return inclusă în corpul funcției. |
s-111
| De pe mediul de intrare se citește un număr real R reprezentând un unghi exprimat în radiani. |
s-112
| Să se convertească în grade, minute și secunde centesimale. |
s-113
| Se citesc trei numere reale pozitive ordonate crescător. |
s-114
| Să se verifice dacă acestea pot să reprezinte laturile unui triunghi și în caz afirmativ să se stabilească natura triunghiului: isoscel, echilateral, dreptunghic sau oarecare și să se calculeze aria sa. |
s-115
| În C noțiunea de funcție este esențială, deoarece asigură un mecanism de abstractizare a controlului: |
s-116
| rezolvarea unei părți a problemei poate fi încredințată unei funcții, moment în care suntem preocupați de ce face funcția, fără a intra în detalii privind cum face funcția anumite operații. |
s-117
| Însăși programul principal este o funcție cu numele main (), iar programul C este reprezentat de o mulțime de definiri de variabile și de funcții. |
s-118
| În utilizarea curentă, o funcție trebuie să fie definită înainte de a fi apelată. |
s-119
| Aceasta impune o definire a funcțiilor programului în ordinea sortării topologice a acestora: |
s-120
| astfel mai întâi se vor defini funcțiile care nu apelează alte funcții, apoi funcțiile care apelează funcții deja definite. |
s-121
| O funcție se definește prin antetul și corpul funcției. |
s-122
| Funcțiile nu pot fi incluse unele în altele. |
s-123
| Toate funcțiile se declară pe același nivel cu funcția main. |
s-124
| În versiunile mai vechi ale limbajului, în antetul funcției parametrii sunt numai enumerați, urmând a fi declarați ulterior. |
s-125
| Lista de parametri, în acest caz, este o enumerare de identificatori separați prin virgule. |
s-126
| În cazul în care apelul funcției precede definiția, trebuie dat, la începutul textului sursă, un prototip al funcției, care să anunțe că definiția funcției va urma și să furnizeze tipul rezultatului returnat de funcție și tipul parametrilor, pentru a permite compilatorului să facă verificările necesare. |
s-127
| Așadar, un efect lateral (sau secundar), reprezintă modificarea de către funcție a unor variabile externe. |
s-128
| În multe situații aceste efecte sunt nedorite, duc la apariția unor erori greu de localizat, făcând programele neclare, greu de urmărit, cu rezultate dependente de ordinea în care se aplică funcțiile care prezintă efecte secundare. |
s-129
| Astfel într-o expresie în care termenii sunt apeluri de funcții, comutarea a doi termeni ar putea conduce la rezultate diferite! |
s-130
| Pentru programele mari este mai comod ca acestea să fie constituite din mai multe fișiere sursă, întrucât programul este conceput de mai mulți programatori (echipă) și fiecare funcție poate constitui un fișier sursă, ușurându-se în acest mod testarea. |
s-131
| Reamintim că o funcție nu poate fi împărțită între mai multe fișiere. |
s-132
| Un program C este un ansamblu de obiecte externe: variabile și funcții. |
s-133
| O variabilă externă este o variabilă definită în afara oricărei funcții, fiind astfel accesibilă din orice funcție. |
s-134
| Am văzut că funcțiile pot comunica între ele prin variabile externe sau globale. |
s-135
| Orice funcție poate accesa o variabilă externă, referindu-se la aceasta prin numele ei, dacă acest nume a fost declarat. |
s-136
| Prin urmare, variabilele externe au ca domeniu (sunt văzute și pot fi accesate din) întregul fișier sursă în care sunt definite. |
s-137
| Durata de viață a unei variabile externe (adică intervalul în care memoria este alocată) coincide cu durata în care programul C este activ. |
s-138
| Variabilele externe sunt permanente: ele rețin valori între apelurile diferitelor funcții. |
s-139
| Spre deosebire de variabilele externe, variabilele interne (numite și automatice sau locale) au un domeniu mult mai restrâns - ele sunt cunoscute numai în interiorul funcției în care sunt definite. |
s-140
| Durata de viață a variabilelor interne este mult mai scurtă ca a variabilelor externe – alocarea de memorie se face la intrarea în funcție, pentru ca la părăsirea funcției, memoria ocupată de variabilă să fie eliberată. |
s-141
| Între ele, funcțiile sunt întotdeauna externe, pentru că nu pot fi definite în interiorul altor funcții (ca în Pascal). |
s-142
| Programarea orientată pe obiecte constă în identificarea unor obiecte, cu operații (metode) specifice asociate și realizarea comunicării între aceste obiecte prin intermediul unor mesaje. |
s-143
| Elementul constructiv – obiectul este o instanță a unei clase (tip de dată definită de utilizator). |
s-144
| Clasele sunt membre ale unei ierarhii și sunt corelate între ele prin relații de moștenire. |
s-145
| Un limbaj de programare pune la dispoziția utilizatorilor un număr de tipuri primitive (sau predefinite). |
s-146
| Astfel în C avem ca tipuri primitive char, int, float, etc. |
s-147
| O clasă reprezintă un tip definit de utilizator. |
s-148
| Declararea unei clase se face într-o manieră asemănătoare declarării structurilor și conține atât date cât și funcții (metode) și putem declara variabile de acest tip nou. |
s-149
| Un obiect este un exemplar sau o instanță a unei clase (în vechea terminologie obiectul este echivalent unei variabile, iar clasa este echivalentul unui tip definit de utilizator). |
s-150
| Clasa de memorare arată când, cum și unde se alocă memorie pentru o variabilă. |
s-151
| Orice variabilă are o clasă de memorare care rezultă fie din declarația ei, fie implicit din locul unde este definită variabila. |
s-152
| Citește instrucțiunea - pe durata acestui ciclu se transmite adresa instrucțiunii de executat și se aduce, din memorie, instrucțiunea în CPU (ciclul Fetch). |
s-153
| Decodifică instrucțiunea (și în paralel citește un posibil operand de 16 biți). |
s-154
| Transmite adresa și citește un operand sursă din memorie, dacă se specifică în instrucțiune, și citește valoarea registrului destinație (ciclul Read). |
s-155
| Execută instrucțiunea (ciclul Execution). |
s-156
| Transmite adresa și scrie rezultatul în memorie, dacă instrucțiunea cere (ciclul Write). |
s-157
| Se activează pe magistrala de adrese adresa unei locații de memorie sau a unui port I / O și se memorează într-un registru de adrese extern. |
s-158
| Se generează semnalul de comandă corespunzător pentru citire / scriere date. |
s-159
| Dispozitivul selectat (memoria sau portul I / O) realizează transferul de date și transmite procesorului un semnal de răspuns, pentru a încheia ciclul. |
s-160
| La procesorul 386 / 486 acest registru (EFLAGS) are 32 biți, dintre care ultimii 16 sunt identici cu aceștia, dar în plus mai sunt utilizați încă doi biți (16 și 17) care au următoarea semnificație: |
s-161
| RF (Resume Flag) - acest indicator dezactivează, temporar, excepțiile de depanare (debug), astfel încât să se poată restarta o instrucțiune după o excepție de depanare, fără a se genera, imediat, o altă excepție de depanare. |
s-162
| VM (Virtual 8086 Mode) - acest bit indică că se execută un program 8086, dacă este poziționat pe 1. |
s-163
| Bitul VM furnizează modul V86, în modul protejat de operare. |
s-164
| Un TSS este un segment special de memorie pe care procesorul îl utilizează pentru a suporta mutitasking. |
s-165
| Acesta conține o copie a tuturor registrelor ce trebuie salvate, pentru a reface starea unui task. |
s-166
| El mai conține valori ce sunt asociate task-ului, dar nu sunt memorate în registrele CPU. |
s-167
| TSS conține trei selectori de segment de stivă, adiționali, (SS0, SS1, SS2), și trei pointeri de stivă corespunzători (ESP0, ESP1, ESP2). |
s-168
| Când un apel sau întrerupere, printr-o poartă, determină o modificare în privilegiu, noile ESP sunt încărcate din TSS. |
s-169
| Registrul de task (TR) conține selectorul TSS activ, curent. |
s-170
| Când apare o comutare de task, toate registrele task-ului curent executat sunt salvate în TSS-ul activ. |
s-171
| Registrul task se încarcă apoi cu selectorul unui nou TSS, și fiecare registru general este încărcat cu valorile respective, din noul TSS. |
s-172
| Procesorul are două spații de adrese fizice distincte: memoria și I / O (intrări / ieșiri). |
s-173
| Locațiile din spațiul I / O sunt denumite registre dispozitiv sau porturi de I / O. |
s-174
| În general perifericele sunt plasate în acest spațiu deși procesorul poate permite maparea (suprapunerea) în memorie a perifericelor. |
s-175
| Pentru a accesa acest spațiu nu se utilizează registre segment, și deci nici mecanismul de segmentare sau paginare. |
s-176
| Pinul M specifică spațiul de memorie adresat (fizică sau I / O). |
s-177
| Instrucțiunile I / O IN și respectiv OUT pot furniza adresa direct în instrucțiune, ca o constantă de 8 biți (deci pentru porturile din spațiul 0-255), sau indirect prin registrul DX (deci pentru tot spațiul de 64 K). |
s-178
| Aceste instrucțiuni permit scanarea biților din cel de-al doilea operand direct, începând cu bitul mai puțin semnificativ (forward) sau invers (reverse), pentru a determina primul bit egal cu 1. |
s-179
| Dacă toți biții sunt zero, ZF = 1, altfel ZF = 0 și registrul destinație va reține indexul primului bit 1 din operandul sursă. |
s-180
| Deplasările pot fi aritmetice sau logice. |
s-181
| Se poate deplasa operandul destinație cu până la 31 de biți, corespunzător operandului contor, codificat în instrucțiune (sunt luați în considerare numai ultimii 5 biți ai acestuia). |
s-182
| În cazul rotațiilor, biții deplasați în afara operandului nu sunt pierduți, ca în cazul deplasărilor, ci sunt rotiți (circulați) înapoi către celălalt capăt al operandului. |
s-183
| Începând cu procesoarele 286, contorul, chiar dacă este diferit de 1, poate fi specificat în instrucțiune, ca dată imediată. |
s-184
| Există cinci operații de bază care operează pe șiruri de lungime de până la un segment (64K la 286, respectiv 4G la 386 / 486), și permit: mutare, comparare de șiruri, scanarea unui șir pentru o valoare și transfer la / de la acumulator. |
s-185
| Aceste operații de bază pot fi precedate de un prefix special de un octet care are ca efect repetarea instrucțiunii prin hardware. |
s-186
| Repetiția se poate termina printr-o varietate de condiții, iar o operație repetată poate fi întreruptă sau suspendată. |
s-187
| O instrucțiune pe șir poate avea un operand sursă, un operand destinație sau pe amândoi. |
s-188
| Șirul sursă este în DS sau într-un alt segment. |
s-189
| Șirul destinație se află, întotdeauna, în segmentul dat de registrul ES. |
s-190
| Transferă un element din acumulator (AL, AX, EAX) în șirul destinație, și actualizează DI pentru a referi următorul element. |
s-191
| Instrucțiunea poate fi precedată de prefixul REP și astfel se poate inițializa un șir cu o constantă. |
s-192
| Orice spațiu normat are o structură naturală de spațiu metric și orice spațiu prehilbertian are o structură naturală de spațiu normat. |
s-193
| Constanta q se numește ordinul quantilei. |
s-194
| Mediana este quantila de ordinul doi. |
s-195
| Quantilele de ordinul patru împart setul de date în patru grupe egale și se numesc quartile. |
s-196
| Quartilele sunt în număr de trei, notate de obicei cu Q1, Q2, Q3. |
s-197
| Quartila Q1 este un număr cu proprietatea că o pătrime din date au valori mai mici decât Q1 și trei pătrimi din date au valori mai mari decât Q1. |
s-198
| Quartila Q2 este un număr cu proprietatea că jumătate din date au valori mai mici decât Q2 și jumătate din date au valori mai mari decât Q2. |
s-199
| Quartila Q2 este chiar mediana. |
s-200
| Quartila Q3 este un număr cu proprietatea că trei pătrimi din date au valori mai mici decât Q3 și o pătrime din date au valori mai mari decât Q3. |