Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare bec far VW Touran 1T3

Plata impozit PF

Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024
 Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica
 Ce componenta e asta si ce ziceti...

Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...

problema test grila
 Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...

Jante noi shitbox

Trinitas TV 4K
 

Pseudocod

- - - - -
  • Please log in to reply
16 replies to this topic

#1
Cristina443

Cristina443

    New Member

  • Grup: Candidate Members
  • Posts: 12
  • Înscris: 25.10.2020
Buna Posted Image ma poate ajuta si pe mine cineva cu problemele astea 2. M-am tot gandit la ele dar nu stiu ce sa le fac... trebuiesc scrise in pseudocod si nu am nici o idee cum as putea sa le fac Posted Image. Multumesc anticipat!

1. Să se citească de la tastatură un număr natural n și o cifră k. Eliminați din număr cifra k. De exemplu, dacă se introduc n = 121157 și k = 1, trebuie să rezulte numărul 257

2. Să se genereze si sa se afiseze toate numerele de forma 3xx3 care sunt divizibile cu 3

#2
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,665
  • Înscris: 29.08.2013
Cum te-ai gandit sa le rezolvi?

#3
Cristina443

Cristina443

    New Member

  • Grup: Candidate Members
  • Posts: 12
  • Înscris: 25.10.2020
Pai asta e problema ca nu stiu cum sa le incep.. :(

#4
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,445
  • Înscris: 10.08.2005
Incearca intai in "limbaj liber"

#5
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,445
  • Înscris: 10.08.2005
fara a ne impiedica in detalii
prima problema
se introduce un numar natural si o cifra,
se cere un numar natural care sa nu contina cifra respectiva

Are rost sa compari cifra cu un numar?

#6
Cristina443

Cristina443

    New Member

  • Grup: Candidate Members
  • Posts: 12
  • Înscris: 25.10.2020
La exerctitiul 1 am presupus:

integer n, k, p=1, x=0;
read n
write "numarul n: "
while n!=0 do
if n%10=k then
x<- x+n%10*p
p<-p*10
end if
n<-n/10
write " rezultatul este: "

unde n este numarul, k este cifra, x este noul numar

ce ziceti ?

#7
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,557
  • Înscris: 06.03.2016
Niște puncte de plecare: (cu pseudocodul vii tu)

1. Parcurgi cifrele numărului n. Verifici dacă cifra curentă e egală cu k, și în funcție de asta îți construiești numărul final.

2. 3003, 3013, 3023, 3033, 3043, 3053, 3063, ..., 3983, 3993. Din astea toate le afișezi doar pe cele care sunt divizibile cu 3.

#8
serban57

serban57

    Active Member

  • Grup: Members
  • Posts: 1,124
  • Înscris: 28.02.2017
Rezolvarea la problema 1:
citeste n,k (citesti valorile n si k)
p<-1 (declari o variabila p care memoreaza puterea lui 10 aka pozitia unei cifre)
a<-n (salvezi intr-o alta variabila numarul n)
n<-0 ("golesti" variabila n deoarece noul numar va fi generat in ea)
cat timp a!=0 executa
	 daca a%10 != k atunci
			 n<-n+ (a%10) * p (muti fiecare cifra din a inapoi in n cu exceptia celor egale cu k, care vor fi ignorate)
a<-a/10 (elimini ultima cifra care a fost mutata/ignorata)
p<-p*10 (cresti puterea lui 10)
scrie n

Prima problema a fost bonus. La cealalta iti spun procedura, dar algoritmul il faci singura
Ca un numar să fie divizibil cu 3, suma cifrelor acestuia trebuie sa fie divizibila cu 3. Din moment ce lucrezi cu pseudocod, banuiesc ca esti in clasa a 9-a si nu iti cere sa faci un program optimizat. In acest caz iti recomand sa faci 2 structuri repetitive de tip "pentru" una in alta prin care generezi perechi de cate 2 cifre, ale caror divizibiliate cu 3 o verifici pe loc, si il afisezi sub forma 3[pereche]3.

Edited by serban57, 25 October 2020 - 21:36.


#9
Cristina443

Cristina443

    New Member

  • Grup: Candidate Members
  • Posts: 12
  • Înscris: 25.10.2020
Va multumesc frumos Posted Image

#10
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,445
  • Înscris: 10.08.2005
Nu ne multumi, arata-ne ce ai facut la problema doi.

View PostCristina443, on 25 octombrie 2020 - 21:15, said:


unde n este numarul, k este cifra, x este noul numar

zic sa declari direct numar cifraDeEliminat, cifraCurenta etc ...

#11
crios339

crios339

    Member

  • Grup: Members
  • Posts: 301
  • Înscris: 27.01.2007

View Postserban57, on 25 octombrie 2020 - 21:35, said:

... In acest caz iti recomand sa faci 2 structuri repetitive de tip "pentru" una in alta prin care generezi perechi de cate 2 cifre, ale caror divizibiliate cu 3 o verifici pe loc, si il afisezi sub forma 3[pereche]3.
Merge si cu un singur "pentru" care parcurge toate numerele de 2 cifre (de la 10 la 99); din numerele de 2 cifre care verifica conditia, se "compune" apoi numarul final de 4 cifre

Edited by crios339, 26 October 2020 - 10:30.


#12
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,445
  • Înscris: 10.08.2005
de la 10?
nu de la 03?

#13
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,557
  • Înscris: 06.03.2016
E suficient:
for (int i = 0; i <= 99; i += 3)
{
  cout << 3;

  if (i < 10)
	cout << 0 << i;
  else
	cout << i;
	
  cout << 3 << '\n';
}


sau

for (int i = 0; i <= 99; i += 3)
{
  int nr = (300 + i) * 10 + 3;
  cout << nr << '\n';
}


Edited by red46, 26 October 2020 - 12:00.


#14
Cristina443

Cristina443

    New Member

  • Grup: Candidate Members
  • Posts: 12
  • Înscris: 25.10.2020

View PostMarianG, on 26 octombrie 2020 - 10:27, said:

Nu ne multumi, arata-ne ce ai facut la problema doi.

zic sa declari direct numar cifraDeEliminat, cifraCurenta etc ...

asta in program c

#include <stdio.h>
int main() {
    int i;
    int suma;
    for (  i = 0 ; i <= 99 ; i = i +3){
suma = (3*100+i) * 10 + 3;
    if (suma % 3 == 0)
    printf("%d\n", suma);
    }
return 0;
}  

iar in pseudocod

integer i, suma;
for i=0, i<=99, i<-i+3
suma<- (3*100+i)*10+3
if suma%3=0
write "numerele divizibile cu 3 sunt: "

#15
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,445
  • Înscris: 10.08.2005
ai intrebat de pseudocod

integer n, k, p=1, x=0;
read n
write "numarul n: "
while n!=0 do
if n%10=k then
x<- x+n%10*p
p<-p*10
end if
n<-n/10
write " rezultatul este: "


cand scriem in pseudocod incercam sa fiim cat mai concisi, dar totodata expresivi

"multimea intregilor"  numarul, cifraDeEliminat, pozitie, rezultat, ultimaCifra
citeste numarul
afiseaza "numarul citit:"
cat timp numarul nu este zero
----daca ultimaCifra este egala cu cifraDeEliminat
--------adunam la rezultat   utimaCifra * pozitia
--------inmultim pozitia cu 10
----impartim numarul la 10

Edited by MarianG, 26 October 2020 - 15:07.


#16
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,445
  • Înscris: 10.08.2005
uite, iti dau eu codul C pentru a doua problema, tu imi spui pseudocodul

int main()
{
int numar;
for (numar = 0; numar <100; numar+=3)
	 printf("3%02d3\n",numar);
return 0;
}


int numar=3003;
do {
printf("%d\n",numar);
numar+=30;
}while(numar <= 3993);


Edited by MarianG, 26 October 2020 - 15:24.


#17
danvlas

danvlas

    Guru Member

  • Grup: Senior Members
  • Posts: 11,118
  • Înscris: 04.06.2009

View PostMarianG, on 26 octombrie 2020 - 11:33, said:

de la 10?
nu de la 03?
Chiar si perechea 00 trebuie luata in calcul.

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate