Problema 1
Se citește de la intrare o listă de studenți și notele lor la o disciplină.
Pe prima linie se dă numărul de studenți. Pe fiecare linie următoare
se dă numele complet al studentului, urmat de : și urmat apoi de
două numere reale, reprezentând nota la laborator și nota la examen.
Să se afișeze la ieșire lista studenților, fiecare nume fiind urmat de
trei note: cele două citite, și media ponderată (40% laborator, 60% examen).
Dacă una din cele două note e sub 5, în locul mediei se afișează -- .
Indicații de rezolvare
În această problemă, formatul datelor de intrare e cunoscut dinainte.
Programul nu trebuie să invite utilizatorul în mod repetat să introducă
datele dorite, ci trebuie realizat în așa fel încât să citească la fiecare
pas datele specificate conform formatului. Presupunem pe moment că datele
de intrare sunt corecte; tratarea erorilor se va discuta ulterior.
După scrierea programului vom discuta cum el poate fi folosit să prelucreze
automat datele dintr-un fișier. prin redirectarea intrării din linia de
comandă.
Încercați să rezolvați problema incremental, în următorii pași:
Problema 2
Scrieți un program C care citește de la intrare un program și îl afișează
după ce a eliminat comentariile. La început, se va solicita precizarea
caracterelor cu care încep și se termină comentariile, în următorul format:
un număr (1 sau 2) urmată de șirul de caractere cu care începe un comentariu
(cu lungimea dată de cifra citită); apoi un alt număr (1 sau 2) urmat de
șirul de caractere care încheie comentariul. Exemple: 1{1} (Pascal)
2/*2*/ (C), 2//1<Enter> (C++).
Obs. Sfârșitul intrării e semnalat de funcția getchar()
prin returnarea valorii EOF (definită tot în stdio.h).
Aceasta e în afara domeniului de valori pentru tipul char, pentru
a nu fi confundată cu un caracter. De aceea, getchar() returnează
un int (care are un domeniu de valori mai mare decât char),
și pentru a trata corect cazul EOF, rezultatul trebuie atribuit tot
unei variabile int. Dacă valoarea returnată de getchar()
nu este EOF, ea poate fi apoi utilizată normal ca un caracter
(comparată, atribuită, etc.).
Suplimentar: țineți cont de cazul în care caracterele specifice comentariilor
apar în interiorul șirurilor de caractere (delimitate prin ghilimele duble
" și nu au un rol special în acest caz.