Informatică, întrebare adresată de hellokitty34512, 8 ani în urmă

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 bobita25
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