Internet Windows Android

Prezentare pe tema programarii Pascal. Prezentare Mediu de programare Pascal

1 tobogan

„CUNOAȘTERE CU LIMBAJUL PASCAL” LECȚIA PE TEMA: Profesor de matematică și informatică, MBO USOSh Nr. 2, Kalach-on-Don, regiunea Volgograd Anisimova N.A.

2 tobogan

SCOPUL LECȚIEI: pentru a afla structura programului, operatori, regulile de formatare și punctuația limbajului Turbo Pascal.

3 slide

Sistem de programare TURBO PASCAL. Pascal este un limbaj de programare universal care vă permite să rezolvați o mare varietate de probleme de procesare a informațiilor.

4 slide

1) limbaj de programare Turbo Pascal; 2) un mediu de programare integrat (compilator: traduce programul în cod mașină și interpret: execută comenzi) COMPOZIȚIA SISTEMULUI DE PROGRAMARE TR:

5 slide

1) Litere latine - mari și mici; 2) litere ale alfabetului rus - mari și mici; 3) numere - de la 0 la 9; 4) semne de operații - +, -, /, *, =, =; 5) separarea caracterelor - () ( ) ; . , ‘ _% & # etc. Alfabetul limbajului de programare TURBO PASCAL

6 slide

7 slide

Antetul programului Secțiunea declarației variabilei Secțiunea declarației (corpul principal)

8 slide

Secțiunea de declarare a variabilelor începe cu cuvântul Var urmat de o listă de nume de variabile de același tip, separate prin virgulă. Există două tipuri de numere în Pascal: real și întreg. Numele variabilelor sunt compuse din litere și cifre latine, primul caracter fiind o literă. VAR lista de variabile de acelasi tip: INTEGER; lista de variabile similare: REAL;

9 slide

Secțiunea operator este partea principală a programului. Începutul și sfârșitul unei secțiuni sunt marcate cu cuvintele de serviciu BEGIN și END , care sunt paranteze operator. Între aceste cuvinte sunt plasate toate comenzile algoritmului scrise în Pascal (operatori). Separatorul operatorului este punct și virgulă. Un punct este plasat chiar la sfârșitul programului. BEGIN READ(lista de intrare); READLN(lista de intrare); variabilă:=expresie aritmetică; WRITE(lista de iesiri); WRITELN(lista de iesiri); SFÂRȘIT.

10 diapozitive

Introducerea datelor inițiale de la tastatură are loc pe operatorul READ sau READLN (citire). Declarația READLN diferă de READ doar prin faptul că cursorul se deplasează la începutul unei noi linii după ce au fost introduse datele. variabilă:=expresie aritmetică; WRITE(lista de iesiri); WRITELN(lista de iesiri); SFÂRȘIT. CITEȘTE(listă de intrare); READLN(lista de intrare);

11 diapozitiv

variabilă:=expresie aritmetică; Operator de atribuire aritmetică: în stânga este o variabilă, în dreapta este o expresie aritmetică de evaluat. Caracterul compus:= este citit ca „atribuie”. Mai întâi se evaluează expresia aritmetică, apoi valoarea rezultată este atribuită unei variabile.Exemplu: a:= sqr (x) + sin (y) / (12*z + 5)

12 slide

mod div / * - + SIN (x) COS (x) SQR (x) SQRT (x) ABS (x) Sin x Cos x x 2 |x| x adunare scădere înmulțire împărțire împărțire întreg restul împărțirii

13 diapozitiv

Reguli de scriere a expresiilor aritmetice O expresie aritmetică este scrisă într-un șir Nu puteți pune două semne de operații aritmetice la rând Nu puteți omite semnul de înmulțire între factori Se folosesc doar paranteze Secvența operațiilor este determinată de prioritățile lor () F(x ) * / + - div mod

14 slide

Ieșirea rezultatelor are loc prin WRITE sau WRITELN (scriere). Rezultatele sunt afișate în ordinea în care sunt listate. Diferența în execuția instrucțiunilor WRITE și WRITELN este că după ce operația de ieșire este efectuată pe instrucțiunea WRITELN, cursorul se deplasează la începutul unei noi linii. WRITE(lista de iesiri); WRITELN(lista de iesiri);

15 slide

Sarcina 1: AXby 6) TU154 2) R&B 3) 4Wheel 4) Vasya 5) „PesBarbos” 7) 8) _ABBA 9) A+B

16 diapozitiv

program task1; var a, b: întreg; x, y: real; începe a:= 5; 10:=x; y:= 7,8; b:= 2,5; x:= 2*(a + y); a:= b + x; Sfârșit. numele variabilei trebuie să fie în stânga semnului:= părțile întregi și fracționale sunt separate prin virgulă și nepotrivire de tip Tip nepotrivire SARCINA 2: Găsiți erori în intrarea în program.

PASCAL INTRODUCERE ÎN LIMBAJUL DE PROGRAMARE 2006 STRUCTURA CURSULUI Interfață și definiții principale; structura programului; afișarea informațiilor text; intrare de la tastatură; conectarea și utilizarea modulelor de sistem; lucrul cu tipuri de date de bază (întreg, real, șir, matrice, fișier); lucrul cu grafică; utilizarea subrutinelor (proceduri și funcții); utilizarea modulelor. 2 INTERFAȚA MEDIULUI PASCAL Limbajul de programare Turbo Pascal 7.0 este închis într-o carcasă de instrumente. Include: un editor de text cu mai multe ferestre; program linker; depanator de programe; sistem de ajutor; compilator. 3 PASCAL ENVIRONMENT INTERFACE 4 Lista fișierelor deschise: Alt + 0 Acces rapid la fișierele deschise: Alt +<№ окна> DEFINIȚII DE BAZĂ Un cuvânt rezervat este un cuvânt special folosit de un limbaj de programare pentru a separa zonele logice ale unui program. Un operator este o comandă de limbaj care efectuează o acțiune (verificarea unei condiții, organizarea unei bucle etc.) Un identificator este un nume liber ales de un programator pentru elementele programului. Tipul de date este o caracteristică a unui identificator care definește setul de valori pe care acesta le poate lua (numere întregi sau fracționale, șiruri de caractere, expresii logice etc.). 5 STRUCTURA GENERALĂ A PROGRAMULUI Program Program_name; Utilizează secțiunea de pluginuri; Secțiunea de descriere a etichetelor; Secțiunea Const a declarației constantelor; Secțiunea de tip care descrie tipuri de date native; Secțiunea declarație a variabilei Var; Începe Corpul principal al programului; Sfârșit. Cod minim: 6 IEȘIRE ECRAN Pentru a afișa informații pe ecran, se folosesc următorii operatori: Write sau Writeln. F9 - Compilare + Verificare Ctrl+F9 - Executare F9 → Ctrl+F9 - Evitare erori Afișează rezultatele rulării programului 7 ECRAN Rezultatul instrucțiunilor: Instrucțiunea WRITE „Gol” WRITELN adaugă o linie goală WRITELN 8 EXERCIȚI Afișează informații pe ecran așa cum se arată mai jos Bună ziua! Mă bucur să te văd! suna-ma calculator. Material utilizat: Instrucțiuni de ieșire: Write, WriteLn Operatorul „Empty” WriteLn; inserează un șir gol. 9 CONECTAREA MODULELOR SUPLIMENTARE Modulele suplimentare extind capacitățile programelor dumneavoastră prin introducerea de operatori suplimentari. Modulele sunt conectate în secțiunea Utilizări. ProgramMy; Utilizează Modulul1, Modulul2; ________________________ ________________________ ________________________ ____________________________ MODULUL 1 Setul de resurse 1 … MODULUL N Modulele: Setul de resurse propriu al sistemului N Ștergerea ecranului de text Așteptați apăsarea tastei Modulul conectat numit CRT 10 IEȘIRE ALEATORĂ ECRAN GotoXY (X, Y: întreg) Unde X, Y – familiaritate coordonate pe ecran. X poate lua valori de la 1 la 80, iar Y de la 1 la 25. De exemplu: Program My_program; (Conexiune la modul) Utilizează Crt; Începe (Șterge ecranul) ClrScr; (ieșire de date) GotoXY(1, 1); scrie ("▒"); GotoXY(80, 1); scrie ("▒"); GotoXY(1, 25); scrie ("▒"); GotoXY(80, 25); scrie ("▒"); (întârziere ecran) ReadKey; Sfârșit. Programul afișează simbolul „▒” (cod 177) în colțurile ecranului. 11 IEȘIRE ÎN CULOARE TextColor (Culoare); Specifică culoarea caracterelor. TextBackground(Culoare); Specifică culoarea familiarității. ProgramMyProgram; Utilizează crt; Începeți culoarea textului (roșu); TextBackGround(Albastru); Scrie ("Afara"); TextColor(Alb); Scrie ("iarbă, "); TextColor(Verde); TextBackGround(Galben); Scrie ("pe iarba"); TextBackGround(Magenta); Scrie ("lemne de foc. "); Sfârșit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Culori Negru Albastru Verde Cyan Roșu Magenta Maro Gri deschis Gri închis Albastru deschisVerde deschisCyan deschis Roșu deschisMagenta Galben Alb 12 – negru – albastru – verde – cyan – roșu – liliac - maro - gri deschis - gri închis - albastru - verde deschis - cyan deschis - roz - liliac deschis - galben - alb VALORI Operațiuni de date IDENTIFICATORI Termenul identificator se aplică constantelor, variabilelor, funcțiilor, procedurilor, componentelor și altor elemente definite de utilizator obiecte Caractere permise: litere latine, numere, liniuță de subliniere Restricții: nu trebuie să înceapă cu o cifră, dar pot începe cu o liniuță de subliniere Nu pot fi mai multe cuvinte Nu se potrivesc cu niciunul dintre cuvintele cheie Identificatorii nu fac distincție între majuscule și minuscule . Identificatori incorecți: Date Numele meu 2Matrice Var ( ( ( ( sunt folosite caractere rusești ) Există un spațiu ) Începe cu un număr ) Se potrivește cu cuvântul cheie ) numere, șiruri de caractere, expresii logice etc.). 16 TIP DE DATE INTEGER 17 Set finit de valori posibile tip octet scurt cuvânt întreg interval lung 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647 ! În afara intervalului, rezultă o eroare! dimensiune DECLARAȚIA DE VARIABILE O variabilă este un identificator capabil să stocheze o anumită valoare (un număr, un șir etc.) și să o modifice în timpul funcționării programului. Sintaxă: Var<имя переменной> : <тип переменной>; Program program_name; Utilizează secțiunea de pluginuri; Secțiunea declarație a variabilei Var; Începe Corpul principal al programului; Sfârșit. Spațiu rezervat în memoria computerului pentru 3 variabile 18 SETAREA VALORILOR LA VARIABILE Pentru a seta valoarea unei variabile, trebuie să utilizați operatorul de atribuire:= Sintaxa de înregistrare:<Переменная> := <Значение>; Valoarea 3 este introdusă în variabila (întreg) numită A 19 OPERAȚII CU VARIABILE INTEGER 20 Operații aritmetice: + - * / Operații standard: div | mod | sqr Nu poate fi utilizat cu tipuri întregi O variabilă numită S este setată la suma valorilor stocate în variabilele X și Y Valoarea stocată într-o variabilă numită S este afișată pe ecran EXERCIȚIUL 21 1. Scrieți un program care afișează rezultat al înmulțirii numerelor 15 și 20 2. Scrieți un program care să afișeze valoarea funcției f 2 x 3 y , când x=11, y=3 Material folosit: Variabilele sunt declarate în secțiunea Var Tipul întreg se numește Integer Sintaxa pentru atribuirea unei valori unei variabile este:<Переменная> := <Значение> ; După fiecare operator este plasat un semn; (cu excepția începutului și ultimului sfârșit) TIP DE DATE REALE Set de valori √ √ Tip ordinal Tip real Compatibilitate unidirecțională: Întreg real Real! Ieșirea în rază și nerespectarea regulilor de compatibilitate duce la o eroare! 22 OPERAȚII CU VARIABILE REALE 23 Operații standard: pi | Pătrat | păcat | Cos | abs | exp | Ln Round | Trunc (real → întreg) De exemplu (X, S – Tip real): X:= pi/3; S:= Sin(X) * 100; Scrie(Rundul(S)); Raportul valorilor stocate în variabilele X și Y este introdus într-o variabilă numită S. Poziția numărului și numărul de caractere din partea fracțională a numărului E indică puterea numărului. 5.6E-5 = 5.6·10-5 ȘIR DE DATE TIP 24 Șirurile sunt un set ordonat de caractere. Șirurile sunt închise în apostrofe. Șirurile nu sunt compatibile cu tipurile întregi și reale. Tip Interval String 255 caractere ( Operatori șir de bază ) + ( concatenare ) Lungime (S); ( lungimea șirului ) De exemplu: X:= 'Vasya'; Scrie('În numele tău', Lungime(X), 'lit.'); S:=X; X:=S; EXERCIȚIU Scrieți un program care afișează rezultatul împărțirii numerelor 12,89 și 0,22 cu doar trei cifre semnificative după virgulă, în următorul format: primul număr împărțit la al doilea număr = rezultat Scrieți (X:1:3, ' razdelit na ' ' , y:1 :3, ' = ' z:1:3) Materialul utilizat: tipul șirului se numește șir Șirurile sunt incluse în postrofe Șirurile sunt concatenate cu semnul + În instrucțiunea de afișare, diferitele tipuri sunt separate prin virgulă 25 TASTATURĂ INPUT 26 Pentru a introduce informații de la tastatură, trebuie să utilizați operatorul de intrare: Read sau ReadLn. Sintaxă: Citiți (N1, N2, ... Nn); Unde N1, N2, ... Nn sunt variabile (intreg, real, sir) In variabila X se introduce valoarea introdusa de la tastatura.Dupa introducerea valorii trebuie sa apasati tasta Enter.Daca sunt mai multe variabile in operatorului, acestea se introduc printr-un spațiu sau prin apăsarea unei taste Enter EXERCIȚIUL 27 1. Scrieți un program de minicalculator care calculează suma a două numere introduse de la tastatură. 2. Scrieți un program care vă cere numele, iar după ce vă scrieți numele afișează un salut. De exemplu, dacă ați introdus numele Vanya, programul va afișa fraza: Bună, Vanya!!! Material folosit: Operatori de intrare: Read, ReadLn OPERATORI OPERATOR CONDIȚIONAL 29 Operatorul condiționat implementează „branching”, adică schimbă ordinea de execuție a operatorilor în funcție de adevărul sau falsitatea unei anumite condiții. Verificare stare NU Acțiune 1 Voi merge la plajă Plouă DA Acțiunea 2 Voi lua o umbrelă Acțiunea 3 Voi merge la cinema VERIFICAȚI CONDIȚII Operațiuni de comparare: > - mai mult< - меньше = - равно >= - mai mare sau egal<= - меньше или равно <>- nu este egal cu 30 Operații logice: Nu Și Sau - Nu -Și - Sau De exemplu: Dacă înălțimea mea > înălțimea lui Petya, atunci sunt mai înalt decât Petya Dacă (plouă) Sau (ninge), atunci voi rămâne la acasă Dacă nu ((plouă) ȘI (vânt)), atunci voi merge la o plimbare Când folosesc operații logice, condițiile sunt cuprinse între paranteze SINTAXA OPERATORULUI CONDIȚIONAT Forma scurtă: Dacă<условие>atunci<оператор>; De exemplu, dacă valoarea din variabila X este mai mică decât 0, atunci valoarea 1 este scrisă în aceeași variabilă: Dacă X<0 Then X:= 1; Полная форма: If <условие>atunci<оператор_1>altfel<оператор_2>; De exemplu: Dacă X>5 Atunci X:= X - 1 Altfel X:= X + 1; Un singur operator poate fi folosit după cuvintele Then și Else Înainte de cuvântul Else, semn; lipsesc 31 EXERCIȚIUL 32 1. Scrieți un program care primește o sumă de intrare în dolari și o sumă în euro, apoi afișează în ce monedă suma este mai mare (1 dolar = 28 ruble, 1 euro = 35 ruble) 2. Scrieți un program , care ia trei numere ca intrare și apoi afișează numărul maxim dintre ele. Material folosit: Forme ale operatorului condiţional: Dacă<условие>Atunci<оператор>; Dacă<условие>Atunci<оператор_1>Altfel<оператор_2>; Semn înainte de altceva; nesetat Operații de comparare: >< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Apoi Începe X:= 1; Y:= -1; WriteLn('Informații acceptate'); End Else WriteLn('Eroare'); 33 CASE SELECT OPERATOR Instrucțiunea choice este folosită pentru a înlocui constructele de instrucțiuni condiționale imbricate. Sintaxa de notare a cazului<порядковая_переменная>de<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>Altfel<оператор_N+1>; Sfârșit; Puteți folosi paranteze în instrucțiunea select Șir opțional 34 SELECTARE INSTRUCȚIUNE CASE Caz Înălțimea elevului de 16..30: Sunteți elev de școală primară; 31,32,33: Sunteți în clasa 5-6; 34..50: Sunteți un elev de liceu O virgulă este folosită pentru a enumera valorile, se utilizează două puncte pentru a selecta un interval Altfel Nu sunteți în mod clar student; Sfârșit; Cazul x din -128..-1: writeln('Negativ'); 0: writeln('Nil'); 1..127: writeln('Pozitiv') Else WriteLn('În afara intervalului'); Sfârșit; 35 EXERCIȚIU Scrieți un program care, dat un număr, afișează ziua corespunzătoare a săptămânii. De exemplu, introduceți numărul 2, programul ar trebui să iasă „Marți”. Dacă numărul este în afara 1..7, atunci ar trebui să fie afișat un mesaj că nu există o astfel de zi. Material folosit: Operator de selecție: Carcasă<порядковая_переменная>de<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; Altfel<оператор_N+1>; Sfârșit; 36 CICLURI 37 Se numesc algoritmi ciclici, în care execuția unor operatori se realizează în mod repetat cu aceleași date modificate (de exemplu, procedura de înmulțire a numerelor prin adunarea multiplă a acestora). Există trei operatori de buclă în Pascal: For (buclă cu un parametru sau pentru un număr dat de repetări) While (WHILE bucla) Repeat (ÎNAINTE de buclă) Dacă numărul de repetări este cunoscut, atunci este mai bine să utilizați operatorul buclă cu un parametru. BUCLĂ CU PARAMETRUL 38 Buclă pentru un număr specificat de repetări cu valoarea parametrului crescător sau descrescător For (param) := (start_value) To (end_value) Do (operator) ; Corpul buclei Observații Parametrul este un tip întreg; Puteți utiliza paranteze operator într-o buclă; Nu puteți modifica parametrul buclei din corpul buclei; Parametrul ciclului este incrementat cu unu; Valoarea de început > valoarea finală, în caz contrar, corpul buclei este ignorat; Pentru a reduce parametrul, în loc de To, utilizați DownTo. BUCLĂ CU PARAMETRUL 39 Scrieți un program care cere numere întregi (a, b), unde a := <нач_зн>La<кон_зн>Do<оператор>; Parametrul este un tip întreg (de obicei Integer); Puteți utiliza paranteze operator într-o buclă; Parametrul de buclă este incrementat cu unu. 40 WHILE LOOP Bucla While testează mai întâi condiția și numai dacă este adevărată execută corpul buclei. while (condiție) do (afirmație); În corpul codului scris mai jos, bucla nu va fi niciodată executată: x:=1; În timp ce x>1 face x:=x-1; Puteți obține o buclă infinită. De exemplu: x:=1 În timp ce x>0 face x:=x+1; 41 WHILE LOOP Un program care afișează suma numerelor de la a la b. În timp ce nu este apăsată tasta, începe Delay(2000); Sfârșit; Bucla se desfășoară până când variabila f variabilă devine mai mare decât valoarea b 42 EXERCIȚIUL 43 1. Astronauții au decis să planteze mesteceni pe Lună, iar în fiecare an să dubleze numărul de mesteacănuri, în primul an au plantat 3 mesteacăni. Tipăriți pe ecran în câți ani numărul mesteacănilor va depăși 10 000. 2. Scrieți un program care determină maximul numerelor introduse de la tastatură (introducerea numărului se termină cu cifra 0). Mai jos este un aspect recomandat pentru ecran: Introduceți numere. Introduceți 0 pentru a finaliza intrarea. 89 15 0 Numărul maxim este 89. Material folosit: Declarație de buclă While: While<условие>do<оператор>; Bucla While testează mai întâi condiția și numai dacă este adevărată execută corpul principal al buclei. REPEAT LOOP 44 Bucla Repeat execută mai întâi corpul buclei și abia apoi verifică condiția Repeat (loop_body) Until (condiție); Nu este nevoie să folosiți o instrucțiune compusă în bucla Repeat, deoarece această construcție prevede executarea nu a unuia, ci a mai multor enunțuri cuprinse între cuvintele Repeat și Până la. REPEAT LOOP ("Până atunci") Un program care afișează suma numerelor de la a la b. Bucla rulează până când variabila în schimbare f devine mai mare decât b 45 COMPARAȚIA BULELOR For While Repeat 46 Alegerea unui model de buclă depinde numai de comoditatea utilizării acestuia într-o anumită situație. Aproape întotdeauna putem folosi un alt tip de buclă în loc de una.EXERCIȚIU Calculați valoarea funcției y x 3 x 2 16 x 43 pentru x variind în intervalul de la -4 la 4 inclusiv cu un pas de 0,5. Material utilizat: Instrucțiune buclă Repetare: Repetare<тело_цикла>Pana cand<условие>Bucla Repeat execută mai întâi corpul buclei și abia apoi verifică condiția 47 ÎNTRERUPEREA CICLURILOR 48 Pentru controlul flexibil al operatorilor ciclici se folosesc proceduri: Break - ieșire din buclă; Continuare - finalizarea următoarei treceri a ciclului; Exemple: Găsiți numărul minim i pentru care suma numerelor de la 1 la i este mai mare de 100. De îndată ce s (suma numerelor de la 1 la i) devine mai mare de 100, instrucțiunea break este declanșată și bucla iese . s:=0; pentru I:= 1 la 100 începe dacă s>100 apoi se întrerupe; s:= s + i; Sfârșit; Writeln ('numărul minim i astfel încât (1+2+..+i)>100 este egal cu ',i); Se introduc 10 numere de la tastatură și suma numai numerelor pozitive este luată în considerare în buclă. Dacă numărul este negativ, atunci este executată instrucțiunea continue, care începe următoarea trecere a buclei. s:=0; pentru I:= 1 la 10 începe Readln(k); dacă k<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс>] A := 7; MATRII Un tablou este declarat in sectiunea Var: (Nume) : Matrice [ (start_value) .. (end_value) ] of (type) ; Exemple de declarații de matrice: Var A: Array of String; B: Array of Real; C: Matrice de întreg; Exemple de umplere a tablourilor cu valori: A:='Vasya'; A:='Petya'; A:='Masha'; A:='Olesya'; Scrie o); Pentru f:=1 până la 10 faceți C[f] := f*2; Pentru f:=1 la 10 faceți WriteLn(C[f]); 51 EXERCIȚIUL 52 Scrieți un program care solicită utilizatorului 7 numere întregi și le stochează într-o matrice. Matricea conține elementul maxim și este afișată pe ecran. De exemplu: Introduceți primul număr: 4 Introduceți al 2-lea număr: 8 Introduceți al 3-lea număr: 9 Introduceți al 4-lea număr: 2 Introduceți al 5-lea număr: 4 Introduceți al 6-lea număr: 5 Introduceți al 7-lea număr: 0 Număr maxim: 9 Material utilizat: Declarații de matrice:<Имя>:Matrice[<нач_зн> … <кон_зн>] de<тип>; Acces la matrice:<Имя массива> [ <Индекс>] RANDOM NUMBER GENERATOR (RNG) Pentru a genera numere aleatoare în program, se folosesc următorii operatori: Randomize – Inițializarea RNG. Se declară doar la începutul programului; Aleatoriu - generează un număr aleator de la 0 la 1 (tip real); Aleatoriu (N) - generează un număr aleator de la 0 la N-1 (tip întreg); 53 MATRII MULTIDIMENSIONALE 54 Lista de intervale pentru fiecare dimensiune a matricei (Nume) : Matrice [ (start_value) .. (end_value) , (start_value) .. (end_value) , (etc) ] din (tip) ; Un exemplu de declarare a unui tablou bidimensional (matrice, tabel) cu 4 rânduri și 6 coloane: Var A: Array of Integer; Un exemplu de completare a unui tablou: Pentru i:=1 la 4 faceți Pentru j:=1 la 6 faceți A := i+j; Ai , j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 EXERCIȚIU Scrieți un program care umple o matrice bidimensională cu numere aleatoare de la -10 la 20 și imprimă suma a elementelor situate pe diagonala mesei . Material utilizat: Inițializare RNG: Randomize Număr aleatoriu de la 0 la N-1: Aleatoriu (N) 55 LUCRU CU FIȘIERE LUCRU CU FIȘIERE 57 [email protected]$ku⌂|"Hd9v*9(L*M=BYGRMxduB █ 8e*BOtCDrTVzHGJ1aBD>@B\(r8sE) █ :wcJvAmRa"v/.Wai;$`SWI=y2]sub █ ?Hq>vF(Lm4Pc4V^Ad) .6b]o(QkВ8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF(LmBcAdz4wcP]o(QkВ █ 8c8df]e"v,su>+),VAEFБjFV,W$Q- █ y0G1GjN$-eБ|sqZ0`QnВ%\BD%y █ █ █ █ terminator file █ - linie terminator - linie Creare, citire, scriere, închidere LUCRU CU FIȘIERE Secvența de acțiuni la lucrul cu fișiere: 1. Declararea unei variabile de fișier (FP) 2. Asocierea unui FP cu un fișier 3. Deschiderea unui fișier pentru citire/scriere 4. Operații cu fișier 5. Închiderea dosarului (se întrerupe și legătura dintre dosar și FP) 1. Declarația FP<Имя>: Dosarul de<тип> ; <Имя>:text; Varf: Text; h: Fișierul întregului; 2. Asocierea FP cu fișierul Assign (<ФП>, <имя файла>); Atribuiți (f, 'c:\my\Data.ghm') 58 LUCRUL CU FIȘIERE 3. Deschiderea unui fișier pentru citire/scriere Resetare (<ФП>); - deschide fișierul pentru citirea Rescrie (<ФП>); - deschide fisierul pentru scriere 4. Operatii cu fisierul Read (<ФП>, <П1> , <П2>, …); - citește în variabile<П1>, <П2>etc. un element în poziția pointerului. Scrie(<ФП> , <П1> , <П2>, …); - scrie valorile variabilelor în fișier<П1>, <П2>etc. un element în poziția pointerului. EoLn(<ФП>); - returnează True dacă a fost atins sfârșitul șirului. EoF(<ФП>); - returnează True dacă s-a ajuns la sfârșitul fișierului. 5. Închiderea fișierului Închidere (<ФП>); 59 LUCRU CU FIȘIERE Simplificați programul dacă știți că matricea este 5x5 (utilizați bucla For) 60 EXERCIȚIUL 61 Scrieți programul „DOM-3”. Primul dosar conține numele participanților la dosarul nominativ. În al doilea, aceleași nume, dar în acuzativ. În al treilea - o listă de expresii de sentimente sau un fel de acțiune (iubește, nu iubește, sărută, vrea să muște, iubește, respectă, urăște, vrea să vadă, îmbrățișează). Programul ar trebui să preia aleatoriu informații din aceste fișiere și să creeze unul nou conform următorului principiu:<имя в им. пад> <чувство/действие> <имя в вин. пад> Olga îl iubește pe Sergey Oleg vrea să-l vadă pe Roman Katya îl respectă pe Nastya etc. Material utilizat: Numele operatorilor: Atribuire, Rescrie, Resetare, Scriere, Citire, Închidere. GRAFICA GRAFICA Pentru a lucra cu grafica in Pascal, sunt necesare doua fisiere - modulul graph.tpu si driverul adaptorului grafic egavga.bgi. Primul se află în directorul \UNITS și al doilea se află în \BGI. ! driver egavga.bgi. Necesar când rulați un fișier exe! Pentru a desena, trebuie să: 1. conectați modulul GRAPH (în secțiunea Utilizări); 2. inițializați grafica (InitGraph); 3. desenează ceva; 4. închideți modul grafic (CloseGraph) 63 GRAFICA Inițializarea modului grafic Desenați o linie. Pixul merge de la punctul (0,0) la punctul (639, 479). PROGRAM Primer_1; Utilizați grafic, crt; VarGd,Gm: întreg; ÎNCEPE Gd:=0; InitGraph (Gd,Gm,'d:\BP\bgi"); Linie (0,0,639,479); ReadKey; CloseGraph; END. 639 px. Sistem de coordonate 479 px. triunghi 2. Desenați un dreptunghi în centrul ecranului cu laturi de două ori mai mici decât laturile corespunzătoare ale ecranului Material utilizat: Modul grafic: Graph Inițializare grafică: InitGraph Mod grafic de închidere: CloseGraph;GRAFĂ + CULOARE SetColor(Color: word); Setează culoarea stiloului GetColor: word; Returnează culoarea stiloului SetBkColor(culoare: cuvânt); Setează culoarea de fundal GetBkColor: cuvânt; returnează culoarea de fundal Culori Negru Albastru Verde Cyan Roșu Magenta Maro Gri deschis Gri închis Albastru deschisVerde deschisCyan deschisRoșu deschisMagenta Galben Alb 66 - negru - albastru - verde - cyan – roșu – liliac – maro – gri deschis – gri închis – albastru cer – verde deschis – cyan deschis – roz – liliac deschis – galben – alb PRIMITĂȚI GRAFICE Linia (x, y); Desenează o linie de la coordonatele curente ale stiloului până la coordonatele (x,y). Mutare la(x, y); Setează creionul la coordonatele (x,y). PutPixel(x, y, Culoare); Desenează un punct la coordonatele (x,y) cu Color. GetPixel(x, y): cuvânt; Returnează culoarea punctului la coordonatele (x,y). dreptunghi (x1, y1, x2, y2); Desenează conturul unui dreptunghi. Cercul (x, y, r); Desenează un cerc cu centrul la (x,y) și raza r. SetLineStyle (Ln, 0, T) Modifică parametrii contururilor. Ln - stil de linie (0..3): 67 x1, y1 T - grosime de linie: 1 = normal; 3 = gros. FillElipse(x, y, xr, yr); Desenează o elipsă plină centrată pe (x,y) cu raze Xr și Yr. SetFillStyle(Tip, Culoare); Setează tipul (0..11) și culoarea hașurii formelor închise ClearDevice; Șterge ecranul grafic pictându-l în culoarea curentă de fundal x2, y2 PRIMITĂȚI GRAFICE 68 EXERCIȚIU 69 1. Scrieți un program care desenează o casă pe ecranul monitorului; 2. Scrieți un program care desenează un cer înstelat pe ecranul monitorului cu stele de rază aleatorie (de la 1 la 5 pixeli) și locație aleatorie. Culoarea este, de asemenea, aleatorie (alb, gri deschis, gri închis); Material folosit: SetColor(Color: word); - Setează culoarea desenului SetBkColor (culoare: cuvânt); - Setează culoarea curentă de fundal. linie (x, y); - Desenează o linie de la coordonatele curente ale stiloului până la coordonatele (x,y). Mutare la(x, y); - Setează stiloul la coordonatele (x,y). PutPixel(x, y, Culoare); - Desenează un punct cu coordonatele (x,y) cu Color. dreptunghi (x1, y1, x2, y2); - Construiește un contur dreptunghi din linii de culoarea curentă. Cercul (x, y, r); - Desenează un cerc cu centrul la (x,y) și raza r. FillElipse(x, y, xr, yr); - Desenează o elipsă plină centrată pe (x,y) cu raze Xr și Yr. GRAFICA + ANIMAȚIE Pauză în msec. 70 SUBPROGRAME SUBPROGRAME Subprogramele vă permit să selectați o parte repetată a codului în fragmente separate și să le introduceți în locurile necesare din program. O funcție, spre deosebire de o procedură, returnează rezultatul apelului. Proceduri Funcții Subrutine: sunt scrise între cuvintele cheie Început Sfârșit; sunt identificate prin nume, care sunt scrise conform regulilor de specificare a identificatorilor; poate avea parametri de intrare și de ieșire; repeta complet structura programului principal. 72 Program My; Subprogram 1 [Cod subrutină 1] Subprogram 2 [Cod subrutină 2] Începe subrutină 2 Subrutină 1 Exemplu de rutine de sistem: Write("OK"); ClrScr; Lungime (S); Aleatoriu; // // // // procedură cu un parametru procedură fără parametri funcția cu un parametru funcție fără parametri Subrutine 2 End. SUBPROGRAME (SPR) Imbricarea subprogramelor Program Subprogram 1 Subprogram 3 Subprogram 4 Subprogram 2 . Numele variabilelor descrise în DEP pot fi aceleași cu numele variabilelor din alte DEP (aceeași variabilă poate fi declarată în fiecare dintre DEP). Numele variabilei descrise în PPR protejează variabilele cu același nume de PPR-ul care o include pe cea dată (dacă aceleași variabile sunt declarate în PPR1 și PPR3, atunci aceste variabile vor fi unice în fiecare PPR). Variabilele de program sunt numite globale, iar variabilele de subprogram sunt numite locale. PROCEDURI FĂRĂ PARAMETRI Sintaxa înregistrării: Procedure (numele procedurii); (Secțiunea de variabile, constante, tipuri, etichete, module) Begin (Corpul procedurii); Sfârșit; Un exemplu de utilizare a unei proceduri fără parametri: 74 PROCEDURI FĂRĂ PARAMETRI Un exemplu de escape de variabile cu același nume: Program My_program; Utilizează crt; varA:string; // Descrierea procedurii Procedure My_Procedure; varA:string; Începeți A:= „Subrutină”; WriteIn(A); Sfârșit; Begin A:= „Corpul”; WriteIn(A); procedura_mea; WriteIn(A); Sfârșit. // Apel de procedură 75 PROCEDURI CU PARAMETRI 76 Pentru a face subrutinele mai universale, sunt folosite mecanisme speciale de schimb de date între program și subrutinele sale. Proceduri de sistem cu parametri: SetColor (Red); ( Procedura cu dreptunghi (0, 0, 639, 479); ( Procedura cu InitGraph (Gd,Gm,'d:\BP\bgi"); ( Procedura cu (parametri un parametru) mai mulți parametri) mai multe tipuri diferite) ) Înregistrare proceduri de sintaxă cu parametri Procedură (Nume) ((Zona variabilelor de intrare) Var (Zona variabilelor de ieșire (fiecare variabilă are propriul Var))); Structura zonelor: Variabila_1, Variabila_2, … : Tip; .. ......... ............. Variabila_N-1, Variabila_N, ... : Tip; Oricare dintre regiuni poate fi absentă PROCEDURI CU PARAMETRI Utilizarea parametrilor de intrare Procedură pentru desen un dreptunghi care mărginește ecranul, culoarea specificată Fără parametri Cu parametrii Procedura Cir; Început SetColor (i); SetBkColor (b); Dreptunghi (0, 0, 639, 479); Sfârșit; Procedura Cir (i, b:Integer); Început SetColor (i); SetBkColor (b); Dreptunghi (0, 0, 639, 479); End; Apelarea unei proceduri într-un program: Apelarea unei proceduri într-un program: i:=6; b:=12; Cir; Cir (6, 12); 77 PROCEDURI CU PARAMETRI Utilizarea parametrilor de ieșire ai unei proceduri ra de conversie a unui unghi din grade în radiani. PROGRAM EX_26_3; VAR x,a: real; PROCEDURA Rad(alfa: real; var betta: real); (variabila de iesire) BEGIN Betta:= pi*alfa/180; SFÂRȘIT; BEGIN Write("Introduceți unghiul în grade: "); readln(x); Rad(x, a); (Apel de procedură) Writeln("El este egal cu unghiul în radiani = ",a:6:4); SFÂRȘIT. 78 EXERCIȚIUL 79 1. Scrieți o procedură pentru a desena un triunghi în următorul format: Triunghi (x1,y1, x2,y2, x3,y3, Color) 2. Scrieți o procedură pentru a calcula aria unui dreptunghi în următoarele format: SRect (a, b, S) unde, S este parametrul de ieșire al procedurii. Material utilizat: Procedură (Nume) ((Zona variabilă de intrare) Var (Zona variabilă de ieșire)); Structura zonei: Variabila_1, Variabila_2, … : Tip; ........................ Variabila_N-1, Variabila_N, … : Tip; FUNCȚII 80 Sintaxa funcției Funcție ((Zona variabilă de intrare) Var (Zona variabilă de ieșire)): (Tip) ; Proiectarea procedurii Proiectarea funcției Procedura S(a,b:real; var s:real); Începe s:= a+b; Sfârșit; Funcția Sum(a,b: real): real; Începe suma:= a+b; Sfârșit; Apel de procedură Apel de funcție S(10, 20, A); Scrie o); A:= S(10, 20); ScrieLN(A); WriteLN (S(20, 30)); Este recomandabil să proiectați o anumită subrutină ca funcție numai dacă se așteaptă un rezultat al muncii sale. Dacă o subrutină se concentrează doar pe efectuarea unei anumite secvențe de acțiuni (afișare, desenare etc.), este mai bine să o scrieți ca procedură. EXERCIȚIU Scrieți o funcție pentru a calcula aria unui dreptunghi în următorul format: SRect (a, b) Material utilizat: Funcție (Nume) ((Aria variabilă de intrare) Var (Aria variabilă de ieșire)): (Tip) ; Structura zonei: Variabila_1, Variabila_2, … : Tip; ........................ Variabila_N-1, Variabila_N, … : Tip; 81 MODULE MODULE 83 O unitate (UNITATE) este o unitate de program independentă ale cărei resurse (proceduri și funcții) pot fi utilizate de alte programe. ProgramMy1; Utilizează Modulul1, Modulul2; __________________________ __________________________ ________________________________ __________________ MODULUL 1 Kit de resurse 1 … Programul My2; Utilizează Modulul1, Modulul2; __________________________ __________________________ ________________________________ __________________ MODUL N Setul de resurse N Modulele sunt conectate la program prin secțiunea MODULE DE UTILIZARE. STRUCTURA 84 Modulul este format din următoarele părți: 1. Antetul modulului. 2. Partea de interfață. (descrieri ale obiectelor vizibile) 3. Partea de implementare. (descrieri ale obiectelor ascunse) 4. Partea de inițializare (opțional). Unitate (numele modulului); Interfață ( Secțiunea variabile globale, constante, tipuri) ( Module ) ( Lista antetelor procedurilor și funcțiilor ) Implementare ( Secțiunea variabilelor locale, constantelor, tipuri) ( Implementarea procedurilor și funcțiilor ) Început (partea de inițializare) Sfârșit. ! Numele antetului modulului trebuie să se potrivească cu numele fișierului modulului! MODULE Exemplu de modul: Unit My_Unit; Interfață Varms: Array of Real; ( Matrice globală ) Funcție Cub(x:integer):Integer; ( Funcția Cub = x^3 ) Funcția ext4(x:integer):Integer; ( Funcția ext4 = x^4 ) Funcția de implementare Cub(x:integer):Integer; ( Implementarea funcției Cub ) Begin Cub:= x*x*x; Sfârșit; Funcția Ext4(x:integer):Integer; ( Implementarea funcției ext4 ) Begin Ext4:= x*x*x*x; Sfârșit; Sfârșit. 85 EXERCIȚIUL 86 Scrieți un modul cu o funcție și o procedură: ( Calculul funcției X1=1/x ) X1(a:real):real; ( Procedura de tipărire a cuvântului S pe ecran, în poziția X, Y WriteXY(S: String; X, Y: Iteger); Material utilizat (structura modulului): Unitate (Numele modulului); Interfață ( Secțiunea variabilelor globale, constante, tipuri) ( module ) ( Lista antetelor procedurilor și funcțiilor ) Implementare ( Secțiunea de variabile locale, constante, tipuri) ( Implementarea procedurilor și funcțiilor ) Început (partea de inițializare ) Sfârșit )

Pentru a utiliza previzualizarea prezentărilor, creați un cont Google (cont) și conectați-vă: https://accounts.google.com


Subtitrările diapozitivelor:

Limbajul de programare Pascal Concepte de bază A. Zhidkov

Limbajul de programare Un limbaj de programare (PL) este un sistem formalizat de descriere a algoritmilor care definește un Alfabet (un set de caractere) Un lexicon (un set de elemente lexicale) Sintaxă (reguli pentru scrierea instrucțiunilor) Semantică (reguli pentru executarea instrucțiunilor)

ALFABET LIMBĂ Un alfabet este un set ordonat de simboluri. Cifre 0 1 2 …. 9 litere latine a b c …. z A B C …Z Semne de operare + * / - >

Elemente lexicale ale cuvintelor cheie de limbă (început, sfârșit, dacă, pentru…) constante (2, „ABC”, #5) identificatori (a, b1) caractere speciale (:= += * + /) comentarii (3 tipuri ( . . ) (* .. *) // ..)

Cuvinte cheie de limbă (Atenție!!! Nu pot fi folosite ca identificatori) și matrice ca start break case class const constructor continua destructor div do downto else end exit external externalsync finalizarea fișierului pentru funcția de redirecționare dacă inițializarea moștenită nu este mod sau proprietate privată a programului înregistrare publică protejată repetă set shl shr sizeof șir apoi pentru a tasta unit până când folosește var while cu xor

Structura unui program de program Pascal În primul rând; const Pi = 3,14; varr: real ; S, C: real; begin write("Introduceți raza cercului: "); readln(r); S:= Pi*r*r; C:= 2*Pi*r; writeln("Circumferința este C=",C); writeln("Aria cercului este S= ",S); Sfârșit. Nume program Titlu Descriere Secțiune Instrucțiuni (bloc) Începutul blocului de instrucțiuni Sfârșitul blocului de instrucțiuni Atenție!!! Operatorii de limbă sunt despărțiți printr-un semn; Atenţie!!! Programul se termină cu sfârșit.

Instrucțiune compusă (bloc) O instrucțiune compusă este un grup de instrucțiuni cuprinse între „paranteze operator” Begin … . Sfârșit . O instrucțiune goală conține doar; , nu efectuează nicio acțiune.

Identificatori (nume) Un identificator este numele unui obiect (modul, funcție, variabilă). Sintaxă: Identificator - o succesiune de litere și numere latine care încep cu o literă. Compilatorul nu face distincție între majuscule și minuscule. Limită de lungime a identificatorului (63 de caractere). Recomandat!!! Utilizați identificatori semnificativi și abrevieri comune - acest lucru îmbunătățește lizibilitatea programelor. Exemple: mediu; V; F; m; masa; m1; viteză

Constante O constantă este o valoare care nu se poate modifica. Constantele numerice sunt numere 3 3.5 1.75e2 $4ff Constantele șirurile sunt caractere din apostrofe „ Hello cadet ” . ATENŢIE!!! Constantele numite trebuie declarate în secțiunea declarație const. Sintaxă: const = ; De exemplu: const Pi = 3,14; Număr = 10; Nume = "Mike";

Variabile și descrierea lor O variabilă este un grup de celule de memorie care are un nume, un tip și o valoare. Numele variabilei este un identificator. Tipul variabilei - determină: setul de valori pe care îl acceptă, numărul de celule de memorie asociate acesteia. Valoarea unei variabile este conținutul unui grup de celule de memorie alocate pentru aceasta. ATENŢIE!!! Variabila trebuie declarată în secțiunea declarații din VAR.

Secțiunea de declarații de variabile VAR - un grup de nume de variabile separate prin virgule. ATENŢIE!!! Semne: și; necesar. Exemplu: var a,b,c: integer ; d:real e,f: întreg ; s,s1: șir ch: char; Sintaxă: VAR: ;

Tipuri de variabile boolean (boolean) real (real) complex (complex) șir (șir) tip „array” tip „record” tip „pointer” Tipurile ordinale sunt singurele tipuri care pot fi indicii de matrice, comutatoare de caz și parametri de buclă.

Tipuri necesare pentru noi tastați lungime șir de comentarii (text) 256 octeți O secvență de caractere, lungimea șirului este stocată în octetul zero. întreg (întreg) 4 octeți Întregi de la - 2 147 483 648 la 2 147 483 647 real (real) 8 octeți C conține 15-16 cifre zecimale și modulo

Tipuri de date Care dintre următoarele numere sunt constante de tip întreg? 1 2.1E3 4 0.7E-1 7 22.78 2 128 5 +0.9 8 -2100 3 -350 6 +71 9 1E5 2 3 6 8

Tipuri de date Care dintre următoarele numere sunt constante reale în formă exponențială? 1 11 4 -0,5E-2 7 2,7E05 2 1,3 5 1050 8 -1,38 3 -1,2E5 6 37,75 9 +3,21E-03 3 7 9

Identificatori Care dintre următoarele expresii pot servi drept nume de variabile? 1 5B 4 SIN 7 1AB 2 E6 5 G 8 +LN 3 L1 6 10 9 L5 2 5 9

Funcții standard Pascal Nume și parametri Acțiune Modul Abs(x) |x| Sqr(x) pătrat x 2 Sqrt(x) rădăcină pătrată a lui Sin(x) sinus Sin x Cos(x) cosinus Cos x Ln(x) logaritm natural Ln(x) Exp(x) (unde e =2,718281... ) Arctan(x) arctangent arctg x Puterea(x,y) x la puterea lui yxy Int(x) parte întreagă a lui x Frac(x) parte fracțională a lui x Număr aleator aleatoriu în intervalul )