Pseudocod
Last Updated: Oct 27 2020 07:09, Started by
Cristina443
, Oct 25 2020 18:19
·
0
#1
Posted 25 October 2020 - 18:19
Buna 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 . 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 |
#5
Posted 25 October 2020 - 20:56
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
Posted 25 October 2020 - 21:15
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
Posted 25 October 2020 - 21:19
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
Posted 25 October 2020 - 21:35
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 nPrima 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. |
#10
Posted 26 October 2020 - 10:27
|
#11
Posted 26 October 2020 - 10:29
serban57, 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. Edited by crios339, 26 October 2020 - 10:30. |
#13
Posted 26 October 2020 - 11:48
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
Posted 26 October 2020 - 14:20
MarianG, 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
Posted 26 October 2020 - 14:54
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
Posted 26 October 2020 - 15:15
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
Posted 27 October 2020 - 07:09
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users