Limbaje de programare: Laborator 11
Fișiere
Temă pentru laborator
- Scrieți un program care deschide un fișier și citește din el
un cuvânt (un șir de caractere până la spațiu alb).
- Scrieți un program care deschide un fișier și afișează,
în format hexazecimal, 5 octeți începând cu deplasamentul 10
(față de începutul fișierului).
- Scrieți un program care deschide un fișier, numără caracterele
din el și adaugă, la sfârșitul fișierului, în format zecimal și binar (pe 32 de biți) lungimea fișierului.
Probleme propuse
- Scrieți un program care citește toate cuvintele (presupuse de
cel mult 64 de caractere) dintr-un fișier cu numele dat pe linia de
comandă și le afișează doar pe cele de lungime mai mare
decât 3.
- Scrieți un program care numără toate cuvintele mai lungi de 10 caractere dintr-un fișier cu numele dat pe linia de comandă (cuvintele pot fi oricât de lungi).
- Un fișier bitmap conține un antet de 54 de octeți. La deplasamentul 18 și respectiv 22 în fișier se află, în format binar, pe câte 4 octeți, dimensiunea orizontală și respectiv verticală a imaginii. Scrieți un program care afișează dimensiunile imaginii, numele fișierului fiind dat pe linia de comandă.
La deplasamentul 34 în fișier se află numărul de octeți ocupați de imaginea propriu-zisă. Fișierele bitmap cu 8 biți pe pixel folosesc câte un octet pentru fiecare componentă de culoare (R, G, B) dintr-un pixel. Verificați că numărul de octeți indicat în fișier e consistent cu dimensiunile imaginii și dimensiunea totală a fișierului.
- Implementați programul UNIX grep care caută un cuvânt într-un fișier cu numele dat pe linia de comandă. Tratați cazurile: a) cuvântul trebuie să fie de sine stătător; b) poate apare la începutul unui cuvânt mai lung; c) poate apare oriunde în alt cuvânt.
- Implementați programul UNIX split de despărțire a unui fișier în fragmente (cu opțiunile -b sau -l, vezi pagina de manual)
- Scrieți un program care afișează, sortate în ordine alfabetică, liniile un fișier text cu numele dat pe linia de comandă. Se presupune că o linie are cel mult 128 de caractere, dar fișierul poate avea oricâte linii.
- Scrieți un program care citește un fișier cu numele dat pe linia de comandă (presupus a avea cel mult 1000 de linii de cel mult 100 de caractere) și îl afișează în ordine crescătoare a lungimii liniilor.
Suplimentar: liniile de lungime egală vor fi afișate în ordine alfabetică.
- Scrieți un program care elimină comentariile dintr-un program C. Numele fișierului în care se scrie rezultatul e format din numele fișierului inițial (dat pe linia de comandă) adăugând extensia .pp.
- Scrieți un program care primește pe linia de comandă un argument
de forma -Dșir1=șir2 și un nume de fișier și înlocuiește în fișierul dat fiecare apariție a șirului șir1 cu șir2. Numele fișierului în care se scrie rezultatul e format din numele fișierului inițial (dat pe linia de comandă) adăugând extensia .pp.
Marius Minea
Last modified: Tue Nov 29 07:00:00 EET 2011