PC Tema 1

De la WikiLabs
Jump to navigationJump to search

Î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

  1. Un caracter se poate citi de la tastatură cu funcția getchar(). Această funcție este definită în fișierul header stdio.h. Exemplu:
    #include<stdio.h>
    
    int main(){
        printf("Introduceti un caracter: ");
        char c = getchar();
        printf("Caracterul introdus a fost:  %c\n", c);
        return 0;
    }
    
  2. Tasta Enter produce un caracter numit newline care are codul ASCII 10 (sau '\n').
  3. 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.
  4. Acesta este un executabil pentru Linux pe 32 de biți care implementează tema. Îl puteți folosi pentru testare.
  5. Atenție: Nu afișați în consolă nimic altceva decât se cere explicit în problemă. Mai concret, nu printați nimic înainte de citirea textului de la tastatură (ex: Introduceți textul: ).

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.