Nivelul inferior de prelucrare a fişierelor
|
|
- Tracy Hudson
- 6 years ago
- Views:
Transcription
1 INTRĂRI ŞI IEŞIRI Operaţiile de I/E în limbajul C se realizează prin intermediul unor funcţii din biblioteca standard a limbajului. Majoritatea operaţiilor de I/E se realizează în ipoteza că datele sunt organizate în fişiere. Prin fişier întelegem o colecţie ordonată de elemente, numite înregistrări, care sunt păstrate pe diferite suporturi externe. Cele mai utilizate suporturi pentru fişiere sunt cele magnetice (discuri, benzi magnetice); ele se numesc suporturi reutilizabile deoarece zona utilizată pentru a păstra înregistrările unui fişier poate fi ulterior reutilizată pentru a păstra înregistrările altui fişier. Datele introduse de la tastatura unui terminal, se consideră că formează un fişier de intrare. Înregistrarea în acest caz, de obicei este formată din datele tastate la terminal pe un rând, deci caracterul de rând nou (newline) este terminator de înregistrare. Analog, datele care se afişează pe terminal formează un fişier de ieşire. Înregistrarea, şi în acest caz, poate fi formată din caracterele unui rând. Datele care se scriu la imprimantă formează şi ele un fişier de ieşire. Un rând scris la imprimantă este o înregistrare. Un fişier are o înregistrare care marchează sfârşitul de fişier. În cazul fişierului de intrare de la tastatură sfârşitul de fişier se generează prin secvenţa: <Ctrl> Z De obicei, prin intrare standard se întelege tastatura terminalului de la care s-a lansat programul şi ieşirea standard este ecranul aceluiaşi terminal. Limbajul C permite operarea cu fişiere: de tip text ; un astfel de fişier este o succesiune de linii, separate prin Newline ( \n ) şi de tip binar ; un astfel de fişier conţine o succesiune de octeţi, fără nici o structură
2 Prelucrarea unui fişier presupune asocierea acestuia cu un canal de I/E (numit flux sau stream). Există două canale predefinite, care se deschid automat la lansarea unui program: stdin fişier de intrare, text, intrarea standard (tastatura) stdout fişier de ieşire, text, ieşirea standard (ecranul) Prelucrarea fişierelor implică operaţii specifice: deschiderea (orice fişier înainte de a fi prelucrat, trebuie deschis); închiderea (terminarea prelucrării unui fişier); crearea unui fişier, citirea (consultarea) înregistrărilor unui fişier, actualizarea unui fişier, adăugarea de înregistrări într-un fişier, poziţionarea într-un fişier, ştergerea unui fişier. Toate aceste operaţii pot fi realizate prin funcţii standard existente în biblioteca limbajului C. Tratarea fişierelor se poate face la două niveluri: - primul nivel face apel direct la SO, acesta este nivelul inferior de prelucrare a fişierelor, iar -al doilea nivel se realizează prin intermediul unor proceduri specializate de prelucrare a fişierelor care utilizează structuri speciale de tip FILE (fişier). Acesta este nivelul superior de prelucrare a fişierelor. Până acum am utilizat funcţii pentru prelucrarea la nivel superior a fişierelor standard de intrări /ieşiri la terminalul de la care s-a lansat programul. De exemplu, pentru a citi un şir de caractere (o înregistrare) am folosit funcţia gets, pentru a afişa o
3 înregistrare am folosit funcţia puts, iar pentru conversii din format intern în cel extern şi invers, am utilizat funcţiile scanf şi printf. Nivelul inferior de prelucrare a fişierelor Înainte de a face orice prelucrare asupra unui fişier, acesta trebuie deschis. Deschiderea unui fişier se realizează cu ajutorul funcţiei open. La revenirea din funcţie se returnează descriptorul de fişier, care este un număr întreg pozitiv. El identifică în continuare fişierul respectiv în toate operaţiile realizate asupra lui. Funcţia open are prototipul: int open (const char * cale, int acces); unde cale este un pointer spre un şir de caractere care defineşte calea spre fişierul care se deschide şi acces este o variabilă de tip întreg care poate avea una din următoarele valori: O_RDONLY ne arătă că fişierul se deschide numai în citire (read only); O_WRONLY indică faptul că fişierul se deschide numai în scriere (write only); O_RDWR determină deschidea fişierului în citire/scriere; O_APPEND determină deschiderea fişierului pentru adăugarea de înregistrări la sfârşitul lui; O_BINARY ne indică faptul că fişierul se prelucrează binar; O_TEXT arată că fişierul se prelucrează pe caractere, adică este de tip text. Aceste valori se pot combina cu ajutorul operatorului sau logic pe biţi ( ) De exemplu, O_RDWR O_BINARY va indica faptul că fişierul este deschis în citire/scrierea binară. În modul implicit se consideră că un fişier este de tip text, deci O_TEXT se poate
4 omite. Utilizarea funcţiei open în programe implică includerea fişierelor io.h şi fcntl.h: #include <io.h> #include <fcntl.h> Argumentul cale al funcţiei open trebuie să respecte convenţiile SO: MS DOS şi anume: numefişier.extensie dacă fişierul se află în directorul curent sau litera:\nume_1\nume_2\...\nume_k unde litera defineşte discul (A, B, C, D,...), iar nume_i reprezintă numele subdirectoarelor spre fişierul de lucru. Observaţii: Deoarece calea se include între ghilimele, caracterul \ se dublează. Dacă unul din parametrii este eronat, deschiderea eşuează; în acest caz funcţia open returnează valoarea -1. Apelul funcţiei open se realizează astfel: df = open (lista_par); unde df este o variabilă de tip întreg, numită descriptorul de fişier. Exemple: 1. char nume[] = fis1.dat ; int df; df = open (nume, O_RDONLY) 2. int d; d = open ( C:\\User\\Test.CPP, O_RDWR); Şirul de caractere ce reprezintă calea se păstrează într-o zonă de memorie specială rezervată şirurilor de caractere. Adresa de început a acestei zone de memorie se atribuie primului parametru al funcţiei open în momentul apelului. 3. int x;
5 x= open ( c:\\text\\text.h, O_APPEND); 4. int c; c = open ( exemplu.c, O_WRONLY); În acest caz, în directorul curent trebuie să existe fişierul exemplu.c; prin deschiderea lui numai în scriere, acesta se crează din nou, vechiul conţinut al fişierului se pierde. Pentru crearea unui fişier nou, se utilizează funcţia creat în locul funcţiei open. Acesta are prototipul: int creat (const char * calea, int mod); unde calea este un pointer spre un şir de caractere care defineşte calea spre fişierul care se deschide în creare, iar mod reprezintă un întreg care poate fi definit folosind următoarele constante simbolice: S_IREAD în acest caz, proprietarul poate citi fişierul; S_IWRITE în acest caz, proprietarul poate scrie în fişier; S_IEXE în acest caz, proprietarul poate executa programul conţinut în fişierul respectiv Aceşti indicatori pot fi combinaţi folosind operatorul sau logic pe biţi ( ) De exemplu, S_IREAD S_IWRITE Funcţia creat returnează descriptorul de fişier sau -1 în caz de eroare. Utilizarea funcţiei creat implică următoarele includeri de fişiere standard: #include <io.h> #include <stat.h> În cazul în care funcţia creat se foloseşte pentru a deschide un fişier existent, atunci acesta se va şterge, urmând ca în locul lui să se creeze fişierul nou. Fişierul de intrare/ieşire standard se deschide automat la lansarea programului în execuţie (deci ele nu trebuie deschise prin program de către programator). Descriptorul de fişier reprezentat de intrarea standard are valoarea zero (0), iar cel
6 reprezentat de ieşirea standard are valoarea unu (1) În plus, există o ieşire standard destinată afişării erorilor, care are ataşat un fişier cu descriptorul de fişier egal de doi (2). Nici acest fişier nu trebuie deschis de programator. O altă operaţie asupra unui fişier este operaţia de citire a informaţiilor dintr-un fişier. Citirea dintr-un fişier se realizează cu ajutorul funcţiei read, aceasta va returna numărul de octeţi citiţi din fişier sau -1 în caz de eroare. Prototipul funcţiei de citire este: int read (int df, void * zona, unsigned lung); unde df este descriptorul de fişier returnat de funcţia open la deschiderea fişierului respectiv; zona este un pointer spre zona de memorie în care se păstrează înregistrarea citită din fişier şi lung reprezintă lungimea în octeţi a înregistrării citite. La fiecare apel al funcţiei read, se citeşte înregistrarea curentă. La un apel al funcţiei read se citesc cel mult lung octeţi. La întâlnirea sfârşitului de fişier funcţia read returnează zero. Dacă lung = 1, atunci la apelul funcţiei read se citeşte un singur octet din fişier (acest lucru nu este avantajos); o valoare utilizată frecvent pentru lung este 512. Funcţia read poate fi folosită pentru a citi caracterele de la intrarea standard. Astfel, descriptorul de fişier are valoarea 0 la apelul funcţiei read. Utilizarea funcţiei read implică includerea fişierului io.h Scrierea într-un fişier se realizează cu ajutorul funcţiei write. Pentru a putea scrie într-un fişier, acesta trebuie să fie în prealabil deschis cu funcţia open sau creat. Funcţia write este asemănătoare cu funcţia read, diferenţa constă în modul de transfer al datelor, adică din zona de memorie spre care pointează cel de-al doilea parametru al ei, în fişier. Funcţia write returează numărul de octeţi scrişi în fişier,
7 adică o valoare care coincide cu valoarea celui de-al treilea parametru al ei. Dacă funcţia returnează o altă valoare decât valoarea celui de-al treilea parametru din apel, înseamnă că scrierea a fost eronată. Prototipul funcţiei write este: int write (int df, void * zona, unsigned lung); Funcţia write poate fi folosită pentru a scrie la cele două ieşiri standard, folosind descriptorii de fişier de valoare 1 sau 2. Operaţiile de I/E se execută secvenţial. Înregistrarile se scriu una după alta pe suportul fişierului, iar la citire, se citesc în aceeiaşi ordine în care au fost scrise la crearea fişierului, acest mod de acces la datele unui fişier poartă numele de acces secvenţial. Problema care se ridică acum este modalitatea de poziţionare într-un fişier, pentru a avea acces la o anumită înregistrare. Pentru fişierele care se prelucrează la nivel inferior există posibilitatea poziţionării aleatoare pe suporturile de tip disc magnetic, folosind funcţia lseek; aceasta are prototipul long lseek (int df, long deplasament, int origine); unde df este descriptorul de fişier, deplasament este numărul de octeţi peste care se va deplasa capul de citire-scriere al discului, iar origine are una din valorile: SEEK_SET = 0 ceea ce înseamnă că deplasamentul se consideră de la începutul fişierului SEEK_CUR = 1 înseamnă că deplasamentul se consideră din poziţia curentă a capului de citire/scriere SEEK_END = 2 arată că deplasamentul se consideră de la sfârşitul fişierului. Funcţia returnează poziţia capului de citire-scriere în număr de octeţi, faţă de începutul fişierului. În caz de eroare, se returnează -1L. Utilizarea funcţiei lseek implică includerea fişierului io.h în programul corespunzător. După terminarea tuturor operaţiilor asupra unui fişier acesta trebuie închis.
8 Închiderea unui fişier se realizează prin funcţia close. Închiderea unui fişier se realizează automat dacă programul se termină prin apelul funcţiei exit. Fişierele corespunzătoare intrărilor şi ieşirilor standard nu se închid de către programator. Funcţia close are prototipul: int close (int df); unde df este descriptorul de fişier ce identifică fişierul care se închide. La o închidere normală a fişierului, funcţia returnează 0, în caz de eroare ea va returna -1. Utilizarea funcţiei close implică includerea fişierului io.h. Exemplu de utilizare a funcţiilor prezentate: Să se scrie un program care citeşte un şir de numere de la intrarea standard şi creează două fişiere: fis1.dat şi fis2.dat, primul conţine numerele de ordin impar citite, iar cel deal doilea conţine numerele de ordin par citite. Să se afişeze conţinutul fişierelor astfel create. #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <fcntl.h> #include <io.h> #include <sys\stat.h> int main() union unr float nr; char tnr[sizeof(float)]; ; union unr nrcit;
9 int df1,df2; int i,j; /* se deschid fisierele fis1.dat si fis2.dat in creare cu acces in citire-scriere */ if((df1=creat("fis1.dat",s_iwrite S_IREAD))==-1) printf("nu se poate deschide fisierul fis1.dat in creare \n"); if((df2=creat("fis2.dat",s_iwrite S_IREAD))==-1) printf("nu se poate deschide fisierul fis2.dat in creare \n"); /* se citeste sirul de numere si se depune in fisiere */ j=1; printf("tastati nr. separarte prin caractere albe \n"); while((scanf("%f",&nrcit.nr))==1) if(j&1) if(write(df1,nrcit.tnr,sizeof(float))!=sizeof(float)) printf("eroare la crearea fisierului fis1.dat \n"); else /* j este par */ if(write(df2,nrcit.tnr,sizeof(float))!=sizeof(float))
10 printf("eroare la crearea fisierului fis2.dat \n"); j++; /* s-a terminat crearea, se inchid fisierele */ if(close(df1)<0) printf("eroare la inchiderea fisierului fis1.dat \n"); if(close(df2)<0) printf("eroare la inchiderea fisierului fis2.dat \n"); /* se deschide fis1.dat si se afiseaza continutul */ if((df1=open("fis1.dat",o_rdonly))==-1) printf("nu se poate deschide fisierul fis1.dat \n"); while((i=read(df1,nrcit.tnr,sizeof(float)))>0) printf("%g\t",nrcit.nr); if(i<0) printf("eroare la citirea fisierului \n");
11 close(df1); printf("\n"); getch(); /* la fel pentru fis2.dat */ if((df2=open("fis2.dat",o_rdonly))==-1) printf("nu se poate deschide fisierul fis2.dat \n"); while((i=read(df2,nrcit.tnr,sizeof(float)))>0) printf("%g\t",nrcit.nr); if(i<0) printf("eroare la citirea fisierului \n"); close(df2); printf("\n"); return 0;
Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct.
Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct. Avantajul lucrului cu fisiere este evident, datele rezultate în urma
More informationLaborator 5 Instrucțiunile repetitive
Laborator 5 Instrucțiunile repetitive Instrucțiunea for Instrucțiunea for permite repetarea unei secvențe de instrucțiuni atâta timp cât o condiție este îndeplinita. În plus, oferă posibilitatea execuției
More information1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n.
Observatii: Codul de mai jos a fost realizat si testat pe pagina online: https://www.tutorialspoint.com/compile_pascal_online.php 1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului
More informationAlocarea memoriei în C sub Linux
Costel Aldea Alocarea memoriei în C sub Linux Sunt trei funcţii C standard care se pot folosi pentru a aloca memorie: malloc(), calloc(), si realloc(). Prototipurile lor, după cum sunt definite în stdlib.h:
More informationProbleme consultații 20 ianuarie 2018
Algoritmi elementari Probleme consultații 20 ianuarie 2018 Problema 1: zerouri factorial Enunt Fiind dat un numar natural n, sa se determine numarul de cifre 0 cu care se termină factorialul numărului
More informationRezolvare fişă de laborator Java Iniţiere în limbajul Java
Rezolvare fişă de laborator Java Iniţiere în limbajul Java Ex 1: Scrie următorul program Java folosind JCreator apoi încercă să-l înţelegi. public class primulprg System.out.println("Acesta este primul
More informationOperații de intrare/ieșire în C++
Operații I/O în limbajul C++ Operații de intrare/ieșire în C++ Mihai Gabroveanu Limbajul C++ moștenește de la C funcțiile de I/O Dezavantaj: permit manipularea doar a tipurilor de bază Limbajul C++ introduce
More informationLaborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte
Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte Probleme rezolvate: Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Programul urmator (LotoConstante.java)
More informationCapitolul 8 Funcţii în limbajul C
Obiectiv: stabilirea avantajelor pe care le aduce în programarea structurată folosirea funcţiilor. Activităţi: - Prezentarea funcţiilor definite de utilizator - Descrierea parametrilor formali şi a parametrilor
More informationSiruri de caractere. 1.1 Folosirea şirurilor
Informatica clasa a X-a 1 Siruri de caractere 1.1 Folosirea şirurilor Cea mai comună utilizare a tabloului unidimensional în limbajul C/C++ este şirul (de caractere). Spre deosebire de multe alte limbaje
More informationUtilizarea formularelor in HTML
Utilizarea formularelor in HTML Formulare Un formular este constituit din elemente speciale, denumite elemente de control (controls), cum ar fi butoane radio, butoane de validare, câmpuri text, butoane
More informationSe cer 2 variante: una cu implementarea statica si a doua cu implementarea dinamica a structurilor de date necesare. Comentati variantele.
Lucrarea 1 SDA 03.04.2017 Sa se realizeze urmatoarele programe, in limbaj C: 1. Se primesc de la intrarea standard: un numar k si un sir infinit de numere naturale a i. Se afiseaza la iesirea standard,
More informationMemorator funcţii predefinite C++ Funcţii matematice
Funcţii matematice Funcţia Prototipul funcţiei Fişierul pow(x,y) double pow (double x,double y); long double pow ( long double x, long double y); float pow (float x,float y); double pow (double x, int
More informationFisiere text in Java.
Fisiere text in Java. Doru Anastasiu Popescu Prelucrarea fisierelor text in Java Aspecte teoretice: http://cursuri.cs.pub.ro/~poo/wiki/index.php/input/output http://upm.ro/intranet/ecalin/cd_educational/cd/javac/cap3.htm
More informationOperatii IO simple. Fisiere. Sisteme de fisiere. Continut
Operatii IO simple Continut 1 Fisiere. Sisteme de fisiere 2 Operatii pe fisiere 3 Operatii pe fisiere în Linux 3.1 Crearea, deschiderea si închiderea fisierelor 3.1.1 open 3.1.2 creat 3.1.3 close 3.2 Scrierea
More informationControlul intreruperilor (semnalelor) in Shell
Controlul intreruperilor (semnalelor) in Shell In mod normal o procedura Shell se termina daca primeste o intrerupere de la terminal ( de regula prin CTRL-C). Comanda trap Scop: Controleaza modul de comportare
More informationCapitolul IB.03. Funcţii de intrare/ieşire în limbajul C
Capitolul Cuvinte-cheie Funcţii de intrare/ieşire caractere, funcţii de intrare/ieşire şiruri de caractere, citire/scriere cu format IB.03.1 Funcţii de intrare/ieşire în C În limbajul C, nu există instrucţiuni
More informationLucrarea nr.9 SUPRAÎNCĂRCAREA OPERATORILOR
Lucrarea nr.9 SUPRAÎNCĂRCAREA OPERATORILOR Ca şi în C, limbajul C++ are posibilitatea supraîncărcării funcţiilor şi operatorilor. Mai exact, unei funcţii (metode) i se conferă posibilitatea de a înţelege
More informationIngineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016
Ingineria Sistemelor de Programare UML Diagrama Cazurilor de Utilizare mihai.hulea@aut.utcluj.ro 2016 Introducere UML UML UML = Unified Modeling Language Dezvoltat in cadrul Object Management Group In
More informationTablouri de date. Tablouri unidimensionale(siruri de date sau vectori)
Tablouri de date Tablouri unidimensionale(siruri de date sau vectori) I. Operaţii asupra şirurilor de date monodimensionale Definiţie Tablou = succesiune de locaţii de memorie recunoscute prin acelaşi
More informationLaborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran
Laborator 1 Java Citirea datelor de la tastatura si afisarea datelor pe ecran In limbajul Java nu exista instructiuni specializate pentru citirea/scrierea datelor. Aceste operatii se realizeaza prin intermediul
More informationGestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire
Lucrarea 3 Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire Cuprins Simbolul this...1 Colectorul de reziduuri (Garbage Collector)...4 Transmiterea
More informationIntroducere in AutoCAD 3D
Introducere in AutoCAD 3D Eu obisnuiesc sa spun ca diferenta dintre AutoCAD 2D si AutoCAD 3D este doar de 15 minute deoarece totul se reduce doar la a intelege cum functioneaza acest 3D si sistemul de
More informationLaborator 10. SGBD-ul MySQL (partea I)
Laborator 10 SGBD-ul MySQL (partea I) 1. Introduceţi următoarea secvenţă PHP: $dbh = mysql_connect("localhost", "Costica", "mypass") or die("unable to connect to MySQL"); $selectdb = mysql_select_db('lucrudb');
More informationSTRUCTURI DE DATE SI ALGORITMI LABORATOR 2 STIVA I. ASPECTE TEORETICE
STIVA I. ASPECTE TEORETICE O stiva este o lista simplu inlantuita gestionata conform principiului LIFO (Last In First Out). Conform acestui principiu, ultimul nod pus in stiva este primul nod care este
More informationŞirurile de caractere sunt de fapt succesiuni de caractere. Am învăţat deja să memorăm succesiuni de caractere cu ajutorul tablourilor.
3. Şiruri de caractere 3.1. Declararea şi memorarea vectorilor de caractere Şirurile de caractere sunt de fapt succesiuni de caractere. Am învăţat deja să memorăm succesiuni de caractere cu ajutorul tablourilor.
More informationProgramarea calculatoarelor
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Programarea calculatoarelor Lect. dr. Adrian Runceanu Curs 10 13.11.2013 Programarea
More information1. Funcţii referitoare la o singură înregistrare (single-row functions)
Laborator 4 Limbajul SQL 1. Funcţii referitoare la o singură înregistrare (single-row functions) 2. Funcţii referitoare la mai multe înregistrări (multiple-row functions) 1. Funcţii referitoare la o singură
More informationŞiruri de caractere System.String string Verbatim verbatim verbatim Exemplu
Şiruri de caractere Pentru reprezentarea şirurilor de caractere, în limbajul C#, tipul de date utilizat este clasa System.String (sau aliasul string). Se definesc două tipuri de şiruri: regulate de tip
More information1. Citirea datelor de la tastatura si afisarea datelor pe ecran
Laborator 6 Java 1. Citirea datelor de la tastatura si afisarea datelor pe ecran In limbajul Java nu exista instructiuni specializate pentru citirea/scrierea datelor. Aceste operatii se realizeaza prin
More informationFișiere de comenzi (BAT) sub DOS
L3 Fișiere de comenzi (BAT) sub DOS Un fișier de comenzi este un fisier text care conține una sau mai multe comenzi si / sau directive care se execută succesiv, fară intervenția directă a utilizatorului.
More informationÎmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect).
Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect). Supraîncărcarea numelui de funcţii (overloading) In C nu este permisa
More informationProgramare orientată obiect
UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică Programare orientată obiect Curs 12 Laura Dioşan Operaţii de intrare/ieşire (IO) Fişiere de I/O Biblioteci standard Biblioteca Standard
More informationLUCRAREA NR. 6 POINTERI
LUCRAREA NR. 6 POINTERI Un pointer este o variabilă care păstrează adresa unui obiect de tip corespunzător. Forma generală pentru declararea unei variabile pointer este: tip * nume_variabila; unde tip
More informationProgramarea calculatoarelor
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Programarea calculatoarelor Lect. dr. Adrian Runceanu Curs 10 05.05.2014 Programarea
More informationStiva - continuare. Implementare prin listă înlănţuită. Lect. dr. Gabriela Trimbitas
Stiva - continuare Implementare prin listă înlănţuită 1 head T O R head T O R head NEW head O D R head O R D O R Ştergerea/Inserarea unui nod într-o stivă 2 Acest cod implementează TAD STIVĂ prin listă
More informationLenuta Alboaie Reţele de calculatoare
Programarea in retea - OOB- Lenuta Alboaie adria@info.uaic.ro 1 Cuprins Trimiterea si receptarea datelor in regim 2 Ideea: in timpul unei conexiuni cind sunt transmise date ( inband data ), si daca la
More informationTipuri de date structurate
Tipuri de date structurate Problema 1 Să se citească un șir A de la tastatură, citirea șirului se termina la introducerea valorii 0. Să se construiască și să se tipărească șirul B de perechi (element,
More informationPROGRAMARE ORIENTATĂ PE OBIECTE
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu PROGRAMARE ORIENTATĂ PE OBIECTE Lector dr. Adrian Runceanu 03.01.2014 1 Curs 15 Limbajul
More informationLaborator 3 Java. Introducere in programarea vizuala
Laborator 3 Java Introducere in programarea vizuala 1. Pachetele AWT si Swing. 2. Ferestre 3.1. Introduceti urmatorul program JAVA: public class Pv public static void main(string args[ ]) JFrame fer=new
More informationLucrarea nr. 2. Funcţii şi structuri în C++
Lucrarea nr. 2 Funcţii şi structuri în C++ Pe măsură ce programele cresc in complexitate şi dimensiune, ele trebuiesc împărţite în fragmente mai mici şi mai uşor de gestionat numite funcţii. Funcţiile
More informationOperatori. Comentarii. Curs 1
Operatori atribuirea: = operatori matematici: +, -, *, /, % Este permisa notatia prescurtata de forma lval op= rval (ex: n += 2) Exista operatorii pentru autoincrementare si autodecrementare (post si pre)
More informationGDB. Rulare gdb. Comenzi de bază GDB GDB. GDB poate fi folosit în două moduri pentru a depana programul:
GDB GDB Rulare gdb GDB poate fi folosit în două moduri pentru a depana programul: rulându-l folosind comanda gdb folosind fişierul core generat în urma unei erori grave (de obicei segmentation fault) Cea
More information1.Pentru definiţia de mai jos a subprogramului f, ce se afişează ca urmare apeluluif(121,1)? void f(long n, int i) { if(n!=0) if(n%3>0) { cout<<i;
1.Pentru definiţia de mai jos a subprogramului f, ce se afişează ca urmare apeluluif(121,1)? void f(long n, int i) { if(n!=0) if(n%3>0) { cout
More informationLaborator 4 Java Colectii
Laborator 4 Java Colectii Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Urmatorul exemplu foloseste diferite clase de colectii si adauga cate un element in aceste colectii import
More informationIntroducere în C B. Kernighan, D. Richie-Limbajul C 1. Despre C. Primul program
B. Kernighan, D. Richie-Limbajul C 1. Despre C. Primul program 2. Variabile şi expresii aritmetice 3. Instrucțiunea for 4. Constante simbolice 5. Citirea şi scrierea caracterelor 6. Tablouri 7. Funcții
More informationProgramarea calculatoarelor. C++ Siruri de caractere # 10. Adrian Runceanu
Programarea calculatoarelor # 10 C++ Siruri de caractere 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 10 21.11.2016 Programarea calculatoarelor 2 Capitolul 8. Şiruri de caractere 8.1. Formă generală.
More informationProbleme propuse pentru Testul de Laborator Semestrul I
Probleme propuse pentru Testul de Laborator Semestrul I Problema 1: Scrieti un program in C pentru rezolvarea ecuatiei de gradul 1 cu coeficienti reali. Valorile coeficientilor se citesc de la tastatura.
More informationProiectarea bazelor de date. PL/SQL Proceduri în PL/SQL(partea II-a) # 9. Adrian Runceanu
Proiectarea bazelor de date # 9 PL/SQL Proceduri în PL/SQL(partea II-a) 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 9 Proceduri în PL/SQL Proiectarea bazelor de date 2 Cuprins Proceduri în PL/SQL
More informationProgramarea Calculatoarelor. Cursul 1: Concepte introductive. Tipuri de date. Funcții de intrare/ieșire
Programarea Calculatoarelor Cursul 1: Concepte introductive. Tipuri de date. Funcții de intrare/ieșire Ion Giosan Universitatea Tehnică din Cluj-Napoca Departamentul Calculatoare Cadre didactice Curs Ion
More informationJavaScript - Intorducere. Și nu numai...
JavaScript - Intorducere Și nu numai... Ce facem azi Nu o sa va vină să credeți. Pe foaia albă vă scrieți numele și prenumele ȘI Povestim despre JavaScript Exemple de aplicare discutii și surprize mici
More informationSfaturi de bună practică
Sfaturi de bună practică pentru concurenţii OJI / ONI 2014 Elevii care vor participa la Olimpiada Judeţeană/Naţională de Informatică trebuie să aibă în vedere următoarele: A) Pentru evitarea erorilor la
More informationBirotică Profesională. Cursul 12
Birotică Profesională Cursul 12 Sumar Visual Basic for Applications (VBA) Tipuri de date Structuri de control Funcţii si proceduri Obiecte si colecţii VBA Mediu de programare destinat in special realizării
More informationProgramarea calculatoarelor
Programarea calculatoarelor #3 C++ Elemente introductive ale limbajului C++ 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 3 Elemente introductive ale limbajului C++ 02.11.2016 Curs - Programarea calculatoarelor
More informationELEMENTELE DE BAZA ALE LIMBAJULUI C++ 1. CITIRI, SCRIERI. Implementarea algoritmilor Limbajul C++ Informatică
ELEMENTELE DE BAZA ALE LIMBAJULUI C++ Un program scris in C++ este alcatuit din una sau mai multe functii. Fiecare functie are mai multe instructiuni in C++ care codifica algoritmul programului. Instructiunile
More informationInstructiuni de control
Instructiuni de control Introducerea caracterelor de la tastatura Instructiuni de selectie (if, switch) Instructiuni repetitive (for, while, dowhile, foreach) Instructiuni de salt (break, continue, goto,
More informationCONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan *
CONFIGURAREA UNUI SERVER IRC IN LINUX Bica Bogdan * In this exemple i show how to configure an irc server based on ircd dameon named ircu.this is the main file name ircd.conf and the most important.configure
More informationProiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP
Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP De ce ebgp? De ce ibgp?
More informationCapitolul 4. Fisiere de date si Tablespace. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.
Capitolul 4 Fisiere de date si Tablespace 1 Continut capitol Ca structura fizica, baza de date contine fisiere de control, de date si de Redo log. Ca structura logica o baza de date se compune din: Tablespace
More information8. Tablouri. 8.1 Tipuri de dată simple şi tipuri de dată structurate
8. Tablouri Tablourile (arrays) reprezintă un tip important de structură de date şi sunt colecţii de obiecte de acelaşi tip reunite sub un singur nume. Uneori este necesar să referim anumite variabile
More informationOperaţii de intrare/ieşire în C++
Cursul 13 Operaţii de intrare/ieşire în C++ In mod obişnuit, un program de calcul citeşte o serie de date de la tastatură sau de pe disc şi le transferă în memoria internă alocată programului, le prelucrează
More informationSECTION 5 L1 - Group By and Having Clauses
SECTION 5 L1 - Group By and Having Clauses Clauza Group By 1. SELECT department_id, AVG(salary),MAX(salary) 2. SELECT job_id, last_name, AVG(salary) GROUP BY job_id; ORA-00979: not a GROUP BY expression
More informationAplicatii JAVA. JAVA Excepții în Java # 7. Adrian Runceanu
Aplicatii JAVA # 7 JAVA Excepții în Java 2017 Adrian Runceanu www.runceanu.ro/adrian Curs 7 Excepții în Java 24.03.2017 Curs - Aplicatii Java 2 Excepții în Java 1. Ce sunt excepțiile? 2. Avantajele excepțiilor
More informationinformatii despre exceptia respectiva starea programului în momentul producerii acelei exceptii
Curs 3 Exceptii Ce sunt exceptiile? Avantajele exceptiilor "Prinderea" si tratarea exceptiilor (Instructiunile try-catch-finally) "Aruncarea" exceptiilor (Clauza throws, Instructiunea throw) Ierarhia claselor
More informationProgramarea calculatoarelor
Limbajul C CURS 3 Instrucţiuni C continuare curs 2 Alte instrucţiuni C Instrucţiunea break >ieşire forţată din ciclu sau switch Salt după instrucţiunea din care a ieşit Instrucţiunea continue ->continuă
More information// tip reprezintă tipul de bază al pointerului şi va indica tipul //datei memorate
Pointeri. Şiruri decaractere. Un pointer este o dată care are ca valori adrese de memorie. Pointerii sunt utilizańi în general: în lucrul cu tablouri la transmiterea parametrilor în funcńii pentru accesarea
More information1 Laborator 3: Liste Circulare si Liste Dublu Inlantuite
1.1 Obiective În lucrare sunt prezentate principalele operaţii asupra listelor circulare simplu înlănţuite: crearea, inserarea unui nod, ştergerea unui nod şi ştergerea listei. În a ua parte vor fi prezentate
More informationCurs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1
Curs 5 Programare Paralela si Distribuita Forme de sincronizare - Java Curs 5 - PPD 1 Monitor in Java Fiecare obiect din Java are un mutex care poate fi blocat sau deblocat in blocurile sincronizate: Bloc
More information1. C şi C++ un tur de orizont.
1. C şi C++ un tur de orizont. 1.1. Structura unui program C foarte simplu Un limbaj de programare reprezintă o interfaţă între problema de rezolvat şi programul de rezolvare. Limbajul de programare, prin
More informationError! Bookmark not defined.
SEMINAR 06 CONTENTS Enuntul Problemei... 1 Repository... 2 Memory... 2 XML... 3 GUI... 4 Forma Selectie... 4 Forma Programator... 5 Forma Tester... 6 Java... 7 Mecanismul de Transmitere al Evenimentelor
More informationCapitolul 1. Arhitectura Oracle. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.
Capitolul 1 Arhitectura Oracle 1 Serverul ORACLE Este un sistem de gestiune a bazelor de date relationale Userul poate lucra: Cu un client pe aceeasi masina cu serverul (de exemplu un client SQL*Plus ruland
More informationAplicații JAVA. Lect.dr. Adrian Runceanu
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Aplicații JAVA Lect.dr. Adrian Runceanu Curs 6 Colecții în Java 01.04.2015 Curs - Aplicatii
More informationCurs practic de Java
Curs practic de Java Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Internaţionalizarea Curs practic de Java p.1/1 Cuprins Introducere Clasa Locale Formatarea
More informationCapitolul 4. Fisiere de date si Tablespace. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.
Capitolul 4 Fisiere de date si Tablespace 1 Continut capitol Ca structura fizica, baza de date contine fisiere de control, de date si de Redo log. Ca structura logica o baza de date se compune din: Tablespace
More informationCURS 7. Pointeri. - specifice limbajelor de asamblare
CURS 7 Pointeri - tipuri speciale de variabile sau constante care au ca valori adrese ale unor alte variabile sau constante (adrese ale unor locaţii de memorie) - permit calcule cu adrese - specifice limbajelor
More informationDispozitive de intrare iesire
Dispozitive de intrare iesire - Curs 8-23.11.2005 Universitatea POLITEHNICA Bucureşti La ce ne referim? dispozitive de intrare/iesire (I/O devices): tastatura, mouse, monitor, imprimanta, placa de retea,
More information2. Noţiuni pregătitoare sistemul de operare Linux
Noţiuni pregătitoare sistemul de operare Linux 2. Noţiuni pregătitoare sistemul de operare Linux 2.1. Cuprins modul 2. Noţiuni pregătitoare sistemul de operare Linux... 1 2.1. Cuprins modul... 1 2.1. Prezentarea
More informationVariabile predefinite
Php(2) Variabile predefinite Variabile predefinite $GLOBALS = pot fi accesate toate variabilele globale care sunt accesibile scriptului PHP curent $_SERVER = contine o serie de variabile ale caror valori
More information1. Sa se deseneze un circuit logic care corespunde urmatoarelor forme de unda (A si B sunt intrari, X este iesirea)
1. Sa se deseneze un circuit logic care corespunde urmatoarelor forme de unda (A si B sunt intrari, X este iesirea) 2. Sa se implementeze functia logica data de urmatorul tabel de adevar folosind numai
More information[LABORATOR DE PROGRAMARE C++] Aritoni Ovidiu. Algoritmi STL
Algoritmi STL 1. Prezentare generală 2. Clasificare: Algoritmi nechirurgicali ; Algoritmi chirurgicali ; Algoritmi de sortare; Algoritmi generali; 3. Algoritmi nechirurgicali (Non-mutating algorithms)
More informationCOLEGIUL TEHNIC VICTOR UNGUREANU CÂMPIA TURZII INSTALAREA SI CONFIGURAREA UNUI SERVER DNS PE WINDOWS SERVER 2003
INSTALAREA SI CONFIGURAREA UNUI SERVER DNS PE WINDOWS SERVER 2003 DNS (Domain Name Service) este un protocol care translateaza numele de domenii in adrese IP. De exemplu numele de domeniu www.google.ro
More informationThread-uri. Continut. Thread-uri 1
Thread-uri Continut 1 Prezentare teoretică 1.1 Introducere 1.1.1 Diferente dintre thread-uri şi procese 1.2 Avantajele thread-urilor 1.3 Tipuri de thread-uri 1.3.1 Kernel Level Threads 1.3.2 User Level
More information-modificatorul unei interfeţe este public sau abstract (implicit)
6.1. Interfeţe Java - interfeţele Java abstractizează complet metodele unei clase (interfaţa clasei) faţă de orice implementare; - folosind cuvântul rezervat interface (în loc de class) specificăm ce poate
More informationElemente de bază ale limbajului C++
Elemente de bază ale limbajului C++ 1. Vocabularul limbajului Elementele de bază ale limbajului, numite şi entităţi sintactice sau atomi lexicali, fac parte din următoarele categorii : cuvinte rezervate
More informationUTILIZAREA SISTEMELOR DE OPERARE - LABORATORUL 2. Comparatie cu comenzile de DOS, manualul unei comenzi, lucrul cu directoare
Structura de fisiere Comparatie cu comenzile de DOS, manualul unei comenzi, lucrul cu directoare Comparatie cu comenzile de DOS Adevarata putere a linux-ului sta in comenzi. Acestea, impreuna cu fisierele
More informationVulnerabilitati Web si securizarea acestora v1.0
Vulnerabilitati Web si securizarea acestora v1.0
More informationSuport curs Web design nivel 1
Partea 1 - Ce inseamna HTML? Pentru inceput sa descoperim originea abrevierii HTML - HyperText Markup Language. Acest limbaj este folosit pentru a formata si prezenta documente pe web. HTML adauga tag-uri
More informationIntroducere in Maven. Information Type: Working Standard, Disclosure Range:, Information Owner: mihai.hulea, NTT DATA Romania
Introducere in Maven Build management tools Java build tools: Maven Gradle Ant + Ivy Build tools are programs that automate the creation of executable applications from source code. Building incorporates
More informationCap. 1. SISTEME DEDICATE DE PRELUCRARE NUMERICĂ
Cap. 1. SISTEME DEDICATE DE PRELUCRARE NUMERICĂ Un sistem dedicat de prelucrare numerică (embedded system) este un ansamblu format din circuite electronice, programe, componente mecanice etc. conceput
More informationLaborator 9. Programare orientată pe obiecte Laborator 9. 1) Să se realizeze o aplicaţie care să rezolve ecuaţii de gradul al doilea.
Laborator 9 1) Să se realizeze o aplicaţie care să rezolve ecuaţii de gradul al doilea. Interfaţa aplicaţiei va fi următoarea Casetelor text li se vor da denumirile: camp_a, camp_b, camp_c, rez. Evenimentului
More informationProblema apropiat de problema. Limbaj de programare. masina. Program de rezolvare. Calculator. Rezultate
1. Un tur de orizont în limbajul C. 1.1. Structura unui program C foarte simplu Un limbaj de programare reprezintă o interfaţă între problema de rezolvat şi programul de rezolvare. Limbajul de programare,
More informationIngineria Sistemelor de Programare
Ingineria Sistemelor de Programare Interfete grafice (Swing) mihai.hulea@aut.utcluj.ro 2017 Scurt istoric AWT: Abstract Windowing Toolkit import java.awt.* Swing Java FX Swing Demo Libraria Swing Swing
More informationInstrucţiuni ale limbajului Java
P a g e 1 TEHNICI AVANSATE DE PROGRAMARE LUCRARE DE LABORATOR 2 Instrucţiuni ale limbajului Java I. SCOPUL LUCRĂRII Lucrarea de faţă are rolul de a prezenta şi familiariza studentul cu câteva instrucţiuni
More informationAnexa 3 - Sed; awk. Filtrarea pe baza de expresii regulate
Anexa 3 - Sed; awk Contents 1 Filtrarea pe baza de expresii regulate 1.1 Similaritati 1.2 Sintaxa 1.3 Mod de rulare 1.4 Structura unui script 1.5 Expresii regulate 1.5.1 Exemple 2 sed 3 awk 3.1 Editarea
More informationTema 2 PL/SQL. 3. a. Creati o tabela numita emp_dup care să fie duplicata tabelei employees. Create table emp_dup as select * from employees
Tema 2 PL/SQL 1. Ce va afişa acest bloc? fname varchar2(20); lname varchar2(15) default fernandez ; DBMS_OUTPUT.PUT_LINE(fname lname); a. Va printa fernandez. b. Va returna o eroare deoarece variabila
More informationLimbaje de tipul 3. Gramatici regulate Automate finite. Expresii regulate. Deterministe Nedeterministe. a, a, ε, E 1.E 2, E 1 E 2, E 1*, (E 1 )
Curs 7 1 Limbaje de tipul 3 Gramatici regulate Automate finite Deterministe Nedeterministe Expresii regulate a, a, ε, E 1.E 2, E 1 E 2, E 1*, (E 1 ) 2 Istoric Paşii compilării Analiza lexicală Descriere
More informationProgramare Orientată pe Obiecte în limbajul Java
Curs 4 Programare Orientată pe Obiecte în limbajul Java Programare Orientată pe Obiecte Cuprins Tipul enumerare Clase imbricate Clase şi metode abstracte Excepţii Tipuri de date enumerare enum public class
More informationFluxuri. Programare Orientată pe Obiecte
Fluxuri Programare Orientată pe Obiecte Fluxuri Ce sunt fluxurile? Clasificare, ierarhie Fluxuri primitive Fluxuri de procesare Intrări şi ieşiri formatate Fluxuri standard de intrare şi ieşire Analiza
More informationSintaxa definińiei unei funcńii este: tip_rez nume_funcńie (<lista_parametri>) { <declarańii locale> secvenńă de instrucńiuni }
Laboratorul 10. FUNCłII ÎN C/C++ Introducere În limbajul C++ (similar cu limbajul C standard) programul este o colecńie de module distincte numite funcńii, structura generală a programului fiind:
More informationCapitolul 2. Instanta si baza de date. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.
Capitolul 2 Instanta si baza de date 1 DBA Exista doi utilizatori privilegiati care sunt creati inca de la instalarea Oracle (se cere doar parola pentru ei la instalare): 1. SYS proprietarul (owner) bazei
More information