Laborator 12 - Probleme propuse

Programare multi-modul (asm+C)

Exerciții

Pentru urmatoarele probleme se cere cel putin un subprogram implementat in asm iar programul principal implementat in C.
  1. Se da un numar a reprezentat pe 32 biti fara semn. Se cere sa se afiseze reprezentarea in baza 16 a lui a, precum si rezultatul permutarilor circulare ale cifrelor sale.
  2. Se cere sa se citeasca de la tastatura un sir de numere, date in baza 10 ca numere cu semn (se citeste de la tastatura un sir de caractere si in memorie trebuie stocat un sir de numere).
  3. Se dau doua siruri continand caractere. Sa se calculeze si sa se afiseze rezultatul concatenarii tuturor caracterelor tip cifra zecimala din cel de-al doilea sir dupa cele din primul sir si invers, rezultatul concatenarii primului sir dupa al doilea.
  4. Se da un sir de numere. Sa se afiseze valorile in baza 16 si in baza 2.
  5. Se cere se se citeasca numerele a, b si c ; sa se calculeze si sa se afiseze a+b-c.
  6. Se citesc trei siruri de caractere. Sa se determine si sa se afiseze rezultatul concatenarii lor.
  7. Se dau trei siruri de caractere. Sa se afiseze cel mai lung prefix comun pentru fiecare din cele trei perechi de cate doua siruri ce se pot forma.
  8. Sa se afiseze, pentru fiecare numar de la 32 la 126, valoarea numarului (in baza 8) si caracterul cu acel cod ASCII.
  9. Se cere sa se citeasca de la tastatura un sir de numere, date in baza 16 (se citeste de la tastatura un sir de caractere si in memorie trebuie stocat un sir de numere). Sa se afiseze valoarea zecimala a nr atat ca numere fara semn cat si ca numere cu semn.
  10. Se citesc mai multe siruri de caractere. Sa se determine daca primul apare ca subsecventa in fiecare din celelalte si sa se dea un mesaj corespunzator.
  11. Se citeste de la tastatura un sir de mai multe numere in baza 2. Sa se afiseze aceste numere in baza 16.
  12. Se dau doua siruri de caractere de lungimi egale. Se cere sa se calculeze si sa se afiseze rezultatele intercalarii literelor, pentru cele doua intercalari posibile (literele din primul sir pe pozitii pare, respectiv literele din primul sir pe pozitii impare).
  13. Se dau trei siruri de caractere. Sa se afiseze cel mai lung sufix comun pentru fiecare din cele trei perechi de cate doua siruri ce se pot forma.
  14. Se citesc mai multe numere de la tastatura, in baza 2. Sa se afiseze aceste numere in baza 8.
  15. Se citesc de la tastatura un numar natural n si n propozitii care contin cel putin n cuvinte (nu se fac validari).
    Sa se afiseze sirul format prin concatenarea cuvintelor de pe pozitia i din propozitia i, i=1,n (separate prin spatiu).
    Exemplu: Se da: n=5
    Ana are mere si pere.
    Pe birou se gaseste un cos cu fructe.
    Cartea mea preferata se afla pe masa.
    Afara a nins si este destul de frig.
    Maine o sa merg la cumparaturi.
    Se va afisa:
    Ana birou preferata si la
  16. Se dau un sir care contine n reprezentari binare pe 8 biti date ca sir de caractere.
    Sa se obtina un sir care contine numerele corespunzatoare reprezentarilor binare.
    Exemplu:
    Se da: '10100111b', '01100011b', '110b', '101011b'
    Se stocheaza: 10100111b, 01100011b, 110b, 101011b
  17. Se citeste de la tastatura un sir de numere in baza 10 fara semn. Sa se determine valoarea maxima din sir si sa se afiseze in fisierul max.txt (fisierul va fi creat) valoarea maxima, in baza 16
  18. Se citeste de la tastatura un sir de numere in baza 10 fara semn. Sa se determine valoarea minima din sir si sa se afiseze in fisierul min.txt (fisierul va fi creat) valoarea minima, in baza 16
  19. Se citesc din fisierul numere.txt mai multe numere (pozitive si negative). Sa se creeze 2 siruri rezultat N si P astfel: N - doar numere negative si P - doar numere pozitive. Afisati cele 2 siruri rezultate pe ecran.
  20. Se citeste din fisierul numere.txt un sir de numere. Sa se determine sirul destinatie D care contine numerele din sirul initial cu valorile dublate dar in ordine inversa din sirul initial. Sa se afiseze sirul obtinut pe ecran.
    Ex: s: 12, 2, 4, 5, 0, 7 => 14, 0, 10, 8, 4, 24
  21. Se citeste de la tastatura un sir de numere in baza 10. Sa se afiseze numerele prime.
  22. Se da un numar in baza 2 reprezentat pe 32 de biti. Sa se afiseze reprezentarea in baza 16. (se foloseste conversia rapida)
  23. Sa se citeasca un sir de numere intregi s1 (reprezentate pe dublucuvinte) in baza 10. Sa se determine si sa se afiseze sirul s2 compus din cifrele aflate pe poziţia sutelor în fiecare numar intreg din sirul s1.
    Exemplu:
    Sirul s1: 5892, 456, 33, 7, 245
    Sirul s2: 8, 4, 0, 0, 2
  24. Sa se citeasca un sir s1 (care contine doar litere mici). Folosind un alfabet (definit in segmentul de date), determinati si afisati sirul s2 obtinut prin substituirea fiecarei litere a sirului s1 cu litera corespunzatoare din alfabetul dat.
    Exemplu:
    Alfabetul: OPQRSTUVWXYZABCDEFGHIJKLMN
    Sirul s1:  anaaremere
    Sirul s2:  OBOOFSASFS

  25. Se citeste de la tastatura un sir de numere in baza 10, cu semn. Sa se determine valoarea maxima din sir si sa se afiseze in fisierul max.txt (fisierul va fi creat) valoarea maxima, in baza 16.
  26. Se citeste de la tastatura un sir de numere in baza 10, cu semn. Sa se determine valoarea minima din sir si sa se afiseze in fisierul min.txt (fisierul va fi creat) valoarea minima, in baza 16.
  27. Se citesc din fisierul numere.txt mai multe numere (pare si impare). Sa se creeze 2 siruri rezultat N si P astfel: N - doar numere impare si P - doar numere pare. Afisati cele 2 siruri rezultate pe ecran.
  28. Se citeste de la tastatura un sir de caractere (litere mici si litere mari, cifre, caractere speciale, etc). Sa se formeze un sir nou doar cu literele mici si un sir nou doar cu literele mari. Sa se afiseze cele 2 siruri rezultate pe ecran.
  29. Se citeste o propozitie de la tastatura. Sa se numere literele din fiecare cuvant si sa se afiseze aceste numere pe ecran.
  30. Se citeste o propozitie de la tastatura. Sa se inverseze fiecare cuvant si sa se afiseze pe ecran.

Observatii

  • Se da inseamna ca acele date pot fi puse direct in segmentul de date; se citesc inseamna ca acele date trebuie citite de la tastatura.
  • Daca nu este precizat altfel, numerele se considera reprezentate pe 32 biti fara semn, iar sirurile de caractere de pana la 100 de caractere (sirul propriu-zis).