Pagina informaticii

Teste de informatică pentru liceu, articole C#, C/C++, PHP

Structuri repetitive

Notă: se acordă 1 punct din oficiu

Rândul 1

1. (2 puncte) Fie algoritmul:

integer n, nr
read n
nr:=0
while n <> 0 do
            if  (n mod 10) mod 2 = 0 then  nr := nr+1
               else  nr := nr – 1
            endif
            n := n div 10
endwhile
write  nr

a) Ce se va afişa pentru n = 12345 ?
b) Pentru ce valori ale lui n se afişează valoarea 0 (zero) ?

2. (1 punct) Se citeşte un număr natural n. Să se scrie un algoritm care afişează mesajul „toate pare” dacă toate cifrele lui n sunt pare sau mesajul „sunt şi impare” în caz contrar. De exemplu, pentru n=24648 se va afişa „toate pare”, iar pentru 6458 se va afişa „nu toate pare”.

3. (2 puncte) Se citeşte un număr natural n. Să se determine numărul de apariţii ale cifrei unităţilor în numărul n. De exemplu, pentru n=31511 se va afişa 3, iar pentru 98452 se va afişa 1.

4. (2 puncte) Se citeşte un număr natural n. Să se calculeze suma pătratelor cifrelor lui n. De exemplu, pentru n=232 se va afişa 17, deoarece 22 + 32 + 22 = 17.

5. (2 puncte) Să se scrie un algoritm care citeşte un număr natural n şi afişează mesajul „da” dacă toate cifrele lui n sunt distincte sau „nu” dacă n nu are toate cifrele distincte. De exemplu, pentru n=37645 se va afişa „da”, iar pentru 23414 se va afişa „nu”.

Rândul 2

1. (2 puncte) Fie algoritmul:

integer n, k
read n
k := 0
while n <> 0 do
            k := k*10 + n mod 10
            n := n div 10
endwhile
write k

a) Ce se va afişa pentru n=4638 ?
b) Pentru ce valori ale lui n se va afişa tot n ?

2. (1 punct) Se citesc două numere naturale n1 şi n2. Să se scrie un algoritm care afişează mesajul „da” dacă suma pătratelor cifrelor lui n1 este egală sau nu cu suma cifrelor lui n2 sau „nu” în caz contrar. De exemplu, pentru n1=232 şi n2=881 se va afişa „da”, iar pentru n1=45 şi n2=12 se va afişa „nu”.

3. (2 puncte) Se citeşte un număr natural n. Să se determine numărul de apariţii ale cifrei unităţilor în numărul n. De exemplu, pentru n=36556 se va afişa 2, iar pentru 23887 se va afişa 1.

4. (2 puncte) Se citeşte un număr natural n. Să se scrie un algoritm care afişează mesajul „ok” dacă toate cifrele lui n sunt impare sau mesajul „not ok” în caz contrar. De exemplu, pentru n=31379 se va afişa „ok”, iar pentru 6458 se va afişa „not ok”.

5. (2 puncte) Să se scrie un algoritm care citeşte un număr natural n şi afişează mesajul „da” dacă toate cifrele lui n sunt distincte sau „nu” dacă n nu are toate cifrele distincte. De exemplu, pentru n=37645 se va afişa „da”, iar pentru 23414 se va afişa „nu”.

Despre autor
Author

Dan Pracsiu deţinător www.dponline.ro
Profesor, Liceul Teoretic "Emil Racoviță" Vaslui
Membru în Comisia Naţională a Olimpiadelor de Informatică
Pasiuni: istoria, călătoriile, fotografia, muzica clasică

Scrie un comentariu
Nume:

Comentariu:

15 + 10 =