PC Tema 1
În telecomunicații, diferite caractere trimise în cadrul unui SMS au un statut special și de aceea trebuie numărate pentru a calcula corect dimensiunea în octeți a mesajului, și deci costul serviciului de transmisie. Pentru această temă, se cere numărarea și afișarea diferitelor tipuri de caractere dintr-un mesaj citit de la tastatură.
Cerință
Dându-se un șir de caractere, citit caracter cu caracter, de la tastatură, până la întâlnirea caracterului newline ('\n'), să se numere și să se afișeze câte caractere s-au introdus din ficare categorie:
- litere mici (a-z)
- litere mari (A-Z)
- cifre (0-9)
- caractere neprintabile (spații sau caractere tab - '\t')
- caractere speciale (orice alt caracter printabil de pe tastatură care nu este literă, cifră sau spațiu).
Date de intrare
O singura linie de text, terminată cu Enter
.
Exemplu
Andrei s-a dus la piata si a cumparat 3 kilograme de cartofi si 5 de castraveti!
Date de ieșire
Cinci linii de text, de formatul următor:
Litere mici: %d Litere mari: %d Cifre: %d Caractere neprintabile: %d Caractere speciale: %d
Exemplu (pentru intrarea de mai sus)
Litere mici: 60 Litere mari: 1 Cifre: 2 Caractere neprintabile: 15 Caractere speciale: 2
Observații
- Un caracter se poate citi de la tastatură cu funcția
getchar()
. Această funcție este definită în fișierul headerstdio.h
. Exemplu:#include<stdio.h> int main(){ printf("Introduceti un caracter: "); char c = getchar(); printf("Caracterul introdus a fost: %c\n", c); return 0; }
- Tasta
Enter
produce un caracter numit newline care are codul ASCII 10 (sau '\n'). - Formatul textului de la ieșire trebuie să fie identic cu cel de mai sus pentru a evita depunctarea de către programul de evaluare.
- Acesta este un executabil pentru Linux pe 32 de biți care implementează tema. Îl puteți folosi pentru testare.
Restricții
Nu se pot utiliza vectori/ șiruri de caractere.
Livrabile și modalitate de predare
Predarea se face pe platforma Web-Cat și constă în upload-ul unui singur fișier sursă C care să implementeze funcționalitatea cerută.
Notare
Pentru această temă se pot acorda 10 puncte:
- 7 puncte pentru comportamentul aplicației, care se acordă automat, imediat după predare, în funcție de calitatea temei de către platforma de testare;
- 3 puncte pentru stilul de scriere a programului, alinierea codului, nume lizibile de variabile, etc., care se acordă ulterior de către un cadru didactic.
Atenție: Pentru această temă se pot SCĂDEA 11 puncte, dacă aceasta se dovedește că este copiată.
Termen limită
Termenul limită pentru depunerea temei este 21 noiembrie, ora 23:55. Apoi, pentru fiecare zi întârziere, veți fi penalizați cu un punct.