PC Tema 1

De la WikiLabs
Versiunea din 16 noiembrie 2015 19:22, autor: Rhobincu (discuție | contribuții) (→‎Notare)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
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 la secțiunea "Date de ieșire" 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 de către platforma de testare, imediat după predare, în funcție de calitatea temei;
  • 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.