Limbaje de programare: Laborator 7

Tablouri. Șiruri de caractere

La intrarea în laborator trebuie predată tema 7.
  1. Implementați câteva funcții simple pentru lucru cu șiruri de caractere:
  2. Scrieți o funcție care ia ca parametru un șir de caractere care conține un număr în baza 10 și returnează valoarea numărului.
    Funcția acceptă ca șirul să conțină un număr arbitrar de spații albe inițiale, opțional semnul + sau -, și apoi cifre în baza 10. Conversia se oprește la întâlnirea primului caracter necorespunzător. Dacă până în acel punct nu s-a întâlnit un număr valid, funcția returnează zero.
    Observație: O astfel de funcție standard există: int atoi(const char *s) și e declarată în stdlib.h.
    Funcția va calcula numărul similar cu cele de citire de numere întregi (readnat, readint) scrise la curs, dar numărul e dat ca șir de cifre. Funcția nu va citi caractere de la intrare, ci va avansa cu indicele în șir.
  3. Scrieți o funcție similară cu cea de mai sus, dar cu parametri un șir de cifre într-o bază oarecare, și valoarea bazei (între 2 și 36), și care returnează valoarea numărului respectiv.
  4. Scrieți o funcție care ia ca parametri un tablou cu coeficienții (reali) ai unui polinom, gradul lui, și o valoare reală x și returnează valoarea în punctul x a polinomului. Nu folosiți funcția pow.
  5. Scrieți o funcție care adună la un polinom P dat ca parametru alt polinom Q dat ca parametru, dacă gradul lui Q nu depășește gradul lui P. Pentru fiecare polinom se transmit ca parametri un tablou cu coeficienții (reali), și gradul polinomului.
  6. Scrieți o funcție simplă de sortare a unui tablou (de întregi sau reali).
    Scrieți întâi o funcție care returnează indicele elementului maxim din tablou. Interschimbați maximul cu ultimul element, a[len-1] (dacă maximul nu e deja chiar pe această poziție). Acum ultimul element e cel bun în ordinea de sortare, și repetați sortarea pentru tabloul de la a[0] la a[len-2].
  7. Fiind dat un număr prim p și un număr 1 < a < p afișați toate numerele din intervalul [0, p-1] care nu pot fi scrise sub forma ak(mod p).
    Indicație: calculați valorile ak(mod p), k ≥ 1 până cănd apare valoarea 1 (apoi șirul e periodic). Folosiți un tablou cu indici resturile modulo p (0 până la p-1), inițializat cu 0, în care treceți 1 când întâlniți restul respectiv.

Marius Minea
Last modified: Tue Nov 6 22:20:00 EET 2012