Diferență între revizuiri ale paginii „PC Tema 1”

De la WikiLabs
Jump to navigationJump to search
 
(Nu s-au afișat 10 versiuni intermediare efectuate de același utilizator)
Linia 9: Linia 9:
 
* caractere neprintabile (spații sau caractere tab - '\t')  
 
* 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).
 
* 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 <code style="color: red">Enter</code>.
 +
 +
== 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 =
 
= Observații =
  
 
<ol>
 
<ol>
  <li>Un caracter se poate citi de la tastatură cu funcția <code style="color: green">getchar()</code>. Exemplu:
+
  <li>Un caracter se poate citi de la tastatură cu funcția <code style="color: green">getchar()</code>. Această funcție este definită în fișierul header <code style="color: blue">stdio.h</code>. Exemplu:
 
   <syntaxhighlight lang="C">
 
   <syntaxhighlight lang="C">
 
#include<stdio.h>
 
#include<stdio.h>
Linia 26: Linia 52:
 
  </li>
 
  </li>
 
  <li>Tasta <code style="color: red">Enter</code> produce un caracter numit '''newline''' care are codul ASCII 10 (sau '\n').</li>
 
  <li>Tasta <code style="color: red">Enter</code> produce un caracter numit '''newline''' care are codul ASCII 10 (sau '\n').</li>
 +
<li>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.</li>
 +
<li>[ftp://hermes.arh.pub.ro/public/course/pc/tema1 Acesta] este un executabil pentru Linux pe 32 de biți care implementează tema. Îl puteți folosi pentru testare.</li>
 +
<li> '''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: ).
 
</ol>
 
</ol>
 +
 +
= Restricții =
 +
 +
Nu se pot utiliza vectori/ șiruri de caractere.
 +
 +
= Livrabile și modalitate de predare =
 +
 +
Predarea se face pe platforma [http://homework.dcae.pub.ro:8888/Web-CAT/WebObjects/Web-CAT.woa 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.
 +
 +
<span style="color: red; font-weight: bold;">Atenție: </span> 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.

Versiunea curentă din 16 noiembrie 2015 19:22

Î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.