citeşte n,k
(numere naturale nenule)
nr<-0
p<-1
┌cât timp n≠0 şi k≠0 execută
│┌dacă n%2≠0 atunci
││ nr<-nr + [n/10]%10*p
││ p<-p*10
││altfel
││ k<-k-1
│└■
│ n<-[n/10]
└■
scrie nr
c) Scrieţi în pseudocod un algoritm echivalent cu
cel dat în care să se înlocuiască structura cât
timp ... execută cu o structură repetitivă cu
test final
d) Scrieţi programul C/C++ corespunzător algoritmului dat
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
c)
citeste n, k (numere naturale nenule)
nr <- 0
p <- 1
┌repetă
│┌dacă n%2≠0 atunci
││ nr<-nr + [n/10]%10*p
││ p<-p*10
││altfel
││ k<-k-1
│└■
│ n<-[n/10]
└■ până când n = 0 sau k = 0
scrie nr
d)
#include <iostream>
using namespace std;
int main()
{
int nr, p, n, k;
cin >> n >> k;
nr = 0;
p = 1;
while(n != 0 && k !=0)
{
if(n % 2 != 0)
{
nr = nr + (n / 10) % 10 * p;
p = p * 10;
}
else k = k - 1;
n = n / 10;
}
cout << nr;
}
Explicație:
Structurile repetitive pot fi:
- cu număr cunoscut de pași – se cunoaște de la început de câte ori se va execută instrucțiunea
- cu număr necunoscut de pași. Instrucțiunea se execută cât timp o condiție este adevărată. La fiecare pas se va evalua condiția, iar dacă aceasta este adevărată se va executa instrucțiunea.
Structurile repetitive mai pot fi:
- cu test inițial: mai întâi se evaluează condiția; dacă este adevărată se execută instrucțiunea și procesul se reia (while sau cât timp...execută, for sau pentru...execută)
- cu test final: mai întâi se execută instrucțiunea, apoi se evaluează condiția; Dacă este adevărată, procesul se reia. (do while sau repetă...până când / execută...cât timp)
Ți-am atașat și tabelul unde ai echivalarea fiecărei instrucțiuni din pseudocod în C++.
Baftă la învățat! :)
Anexe:
Alte întrebări interesante
Matematică,
8 ani în urmă
Religie,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă