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

Se considera programul pseudocod alaturat.S a notat cu [z] partea intreaga a numarului z.


Anexe:

Răspunsuri la întrebare

Răspuns de andrei750238
5

La o simpla observare a programului putem observa ca acesta :

  • Citeste un numar n, apoi n numere
  • Determina cea mai mare putere a lui 10 mai mica sau egala decat numarul curent. Se foloseste acest numar pentru a determina prima cifra a numarului curent.
  • Prima cifra a numarului curent se concateneaza la finalul variabilei a.

a) Dupa citirea numerelor date se va afisa  32138.

b) Spre exemplu, dupa citirea n=4 a valorilor 91 92 93 94 se va afisa 9999.

c)

citeste n

a ← 0

┌pentru n←1,n execucuta

│       citeste x

│       p ← 1

│       cat timp p<=[x/10] atunci p←p*10

│       a ← a*10 + [x/p]

└■

scrie a

d)

#include <iostream>

using namespace std;

int main(){

int n, a, x, p;

cin >> n;

a = 0;

while n>0{

    cin >> x;

    p = 1;

    while(p<=x/10) p*=10;

    a = a*10 + x/p;

    n++;

}

cout << a;

}


hatz6739: Me mult
hatz6739: Ms*
andrei750238: x=37
p=1

p<=x/10 (ADEVARAT) deci p devine 10
p<=x/10 (FALS) - se iese din ciclu
a = 10*0+3
a=3

__________
andrei750238: x=205
p=1

p<=x/10 (ADEV) deci p devine 10
p<=x/10 (ADEV) deci p devine 100
p<=x/10 (FALS) - se iese din ciclu
a= 3*10 + 2
a=32

si asa mai departe.
andrei750238: .

Dar ti-am spus, ar trebui sa te obisnuiesti sa vezi programele in ansamblu si in functionalitate, nu ar trebui sa te bazezi pe metoda asta muncitoreasca, poate doar sa te verifici la bac ca ai facut totul bine daca te plictisesti dupa ce termini exercitiile si mai ramane timp liber.
Utilizator anonim: bun
Utilizator anonim: buna
Utilizator anonim: dimineața
Utilizator anonim: buna
Utilizator anonim: ai Voxa
Alte întrebări interesante