Lista de probleme 224

Filtrare

Să se scrie un program care citeşte de la tastatură un şir de caractere şi elimină din şir toate perechile de vocale consecutive.

Să se scrie un program care citeşte de la tastatură un cuvănt şi afişează pe ecran toate cuvintele care se pot obţine prin eliminarea unei singure litere din cuvântul citit.

#1526 align

Andino este într-o mare dilemă: editorul lui de texte nu are funcţii de aliniere aşa că vă roagă să-l ajutaţi să alinieze un text, la stânga sau la dreapta.

#2804 strncat

Pentru un cuvânt format din litere mici ale alfabetului englez s și un număr natural x mai mic sau egal cu lungimea cuvântului, definim următoarea operație:

  • dacă x este par, la s se vor adăuga primele sale x litere, în ordinea din șir;
  • dacă x este impar, la s se vor adăuga primele sale x litere, în ordinea inversă din șir.

Se dă un cuvânt s și un șir de n numere naturale x[1], x[2], …, x[n]. Se aplică succesiv operația definită mai sus între șirul s și numerele din șir, în ordinea acestora.

Afișați șirul s după aplicarea acestor operații.

#2673 SwapCuv

Se dă un şir de caractere care conține cuvinte formate din litere mici și mari ale alfabetului englez. Cuvintele sunt separate prin orice caractere imprimabile care nu sunt litere (cu codurile ASCII mai mari sau egale cu 32). Să se afișeze cuvintele pe cate o linie în felul următor:

Primul
Ultimul
Al Doilea
Penultimul
...

#1562 Abba

Pentru transmiterea unui mesaj format exclusiv din litere mici ale alfabetului englez, se utilizează un aparat electronic care are anumite limitări tehnice. Astfel, el poate transmite mesaje formate doar din litere vecine din alfabet sau formate din aceeași literă. De exemplu mesajul: defffedcbab poate fi transmis, iar mesajul accded nu poate fi transmis deoarece literele a și c nu sunt vecine în alfabetul englez.

Din acest motiv mesajul ce urmează să fie transmis trebuie codificat pentru a fi compatibil cu aparatul.

Pentru codificare, mesajul este prelucrat în etape până satisface limitările aparatului. O etapă de prelucrare presupune inserarea între fiecare două litere vecine ale mesajului a literei mijlocii. Litera mijlocie este acea litera situată la jumătatea secvenței din alfabet ce are capete literele vecine. Dacă nu există se ia în considerare litera mai mică.

Determinați numărul de etape de prelucrare necesare pentru codificarea mesajului și lungimea finală a mesajului.

Olimpiada Locală de Informatică, Timișoara, 2016

Fiind dat un cuvânt s, format numai din litere, și un cod c, de aceeași lungime cu s, format numai din cifre, numim codificare a lui s pe baza codului c operația de construire a unui nou șir, în care inițial se copiază prima literă din s, apoi, parcurgând de la stânga la dreapta restul șirului s, se adaugă litera curentă la începutul noului șir, dacă cifra corespunzătoare de pe aceeași poziție în c este pară, sau la finalul noului șir, în caz contrar.

Scrieţi un program care citește de la tastatură, de pe linii diferite, două cuvinte, notate cu s și c, fiecare având cel mult 100 de caractere, s fiind format doar din litere mici ale alfabetului englez, iar c fiind format doar din cifre. Programul construiește în memorie și afișează pe ecran cuvântul obținut prin codificarea lui s pe baza lui c, dacă cele două cuvinte au aceeași lungime, sau mesajul cod incorect, în caz contrar.

Să se scrie un program care citește o propoziție și determină numărul de cuvinte care încep și se termină cu vocală.

#1580 schimb

Se dau trei numere naturale n, k și p și n șiruri formate din litere mici ale alfabetului englez. Înlocuiți a k-a literă din fiecare șir cu a p-a literă din alfabet. Dacă șirul are mai puțin de k litere se va scrie oglinditul lui.

Să se scrie un program care citeşte de la tastatură un numele și prenumele unei persoane și construiește un al treilea șir de caractere, care va conține consoanele din prenumele citit dispuse în ordinea în care apar în prenume, urmate de exact un spațiu și de numele citit.