inapoi la pagina principala

Fisa de lucru nr.1

Clasa a IX-a Algoritmi elementari

Contents

1.      Aplicatii structuri de control in pseudod. 1

1.Se citesc doua numere intregi. Sa se afiseze daca sunt divizibile. 1

2.Se citeste un numar intreg. Sa se afiseze divizorii sai proprii. Daca nu se gasesc divizori se va afisa mesajul  ”NU”. 1

3.Primalitatea unui numar. 1

4.Descompunerea in factori primi 1

5.CMMDC dintre 2 numere intregi 2

7.Sa se afiseze primii n termeni din sirul Fibonacci; 2

8. Sa se calculeze expresia: 2

9.Se citeste un numar intreg. Sa se afiseze mesajul  ”patrat perfect ” daca numarul este patrat perfect sau  ”nu este patrat perfect”, altfel. 3

10.Se citesc doua numere: un numar intreg p reprezentand puterea unui numar  si x numarul a carui putere este. Sa se scrie un program care afizeaza  mesajul  ”n este puterea lui x” sau mesajul  ”n nu este puterea lui x”,  altfel. 3

11. Se citeste n, un numar natural. Sa se calculeze n factorial. 3

2.      Probleme. 4

3.      Probleme de interschimb. 4

4.      Probleme de matematica. 5

5.      Exercitii 8

 

1.     Aplicatii structuri de control in pseudod

 

1.Se citesc doua numere intregi. Sa se afiseze daca sunt divizibile.

intreg a,b;

citeste a,b;

daca (a%b=0) sau (b%a=0) atunci scrie „DA”;

  altfel scrie „NU”;

 

2.Se citeste un numar intreg. Sa se afiseze divizorii sai proprii. Daca nu se gasesc divizori se va afisa mesajul  ”NU”.

intreg a,i;

citeste a;

okß0;

pentru iß2, a/2 executa

   daca (a%i=0) atunci { okß1; scrie i, ” , ”;}

 

3.Primalitatea unui numar

Intreg  a,i, primß0;

Citeste a;

Primß1;

Pentru iß1, [a/2]  executa

           Daca (a%i=0)primß0;

daca prim=1 atunci scrie  ”numar prim”;

      altfel scrie  ”numar neprim”;

 

4.Descompunerea in factori primi

intreg  a, d, p;

citeste a;

dß2;

cat timp (a>1) executa {

     Pß0; 

     cat timp (a%d=0) executa{

                a=a/d;

                p++;}

     daca p!=0 atunci scrie d, ”la puterea ”,p,  ”,”;

  d++;}

 

5.CMMDC dintre 2 numere intregi

De exemplu:

a=36;  b=24  cmmdc(a,b)=12;

a)Algoritmul lui Euclid

intreg a, b, r;

Rßa%b;

Cat timp (r!=0) executa {

    aßb;

bßr;

Rßa%b;}

Scrie  ”cmmdc este”, b;

6.CMMDC prin scaderi repetate

intreg a, b;

citeste a,b;

cat timp (a!=b) executa

   daca (a>b)aßa-b;

       altfel  bßb-a;

scrie ” cmmdc este” , a;

 

7.Sa se afiseze primii n termeni din sirul Fibonacci;

#include<iostream.h>

#include<conio.h>

long int f1,f2,f3,i,n;

void main(){clrscr();

cout<<"n=";cin>>n;

 f1=1;f2=1;

 for(i=3;i<=n;i++){

     f3=f1+f2;

     cout<<f3<<" ";

     f1=f2;f2=f3;}

  getch();} 

 

8. Sa se calculeze expresia:

               e=a+b c>0

                 e=a*b c=0

                 e=a-b c>0

 

int main()

{

double a,b,c,e;

cout<<"dati pe a";cin>>a;

cout<<"dati pe b";cin>>b;

cout<<"dati pe c";cin>>c;

if(c>0)e=a+b;

else

  if(c==0)e=a*b;

  else e=a-b;

cout<<"e="<<e<<endl;}

 

9.Se citeste un numar intreg. Sa se afiseze mesajul  ”patrat perfect ” daca numarul este patrat perfect sau  ”nu este patrat perfect”, altfel.

 

int main()

{int i,x,gasit;

cout<<"x=";cin>>x;

gasit=0;

for(i=1;i<=x;i++)if(i*i==x)gasit=1;

if(gasit==1)cout<<"patrat perfect";

 else cout<<"nu e patrat perf";

    return 0;}

 

10.Se citesc doua numere: un numar intreg p reprezentand puterea unui numar  si x numarul a carui putere este. Sa se scrie un program care afizeaza  mesajul  ”n este puterea lui x” sau mesajul  ”n nu este puterea lui x”,  altfel.

Exemplul 1:

Date de intrare: 10 , 3

Date de iesire: ” 10 nu este puterea lui 3”

Exemplul 2:

Date de intrare: 25 , 5

Date de iesire: ”25 este puterea 2 a lui 5”.

 

#include <iostream.h>

#include <conio.h>

int r,d,aux,s,putere,n1,p;float n;

main(){ clrscr();

cout<<"care este puterea?";cin>>putere;

cout<<"care este numarul?";

cin>>n;

n1=n;

while(n>=putere){n=n/putere;p=p+1;};

cout<<endl;

//cout<<"cat="<<n;

if (n==1)cout<<n1<<" este puterea "<<p<<" a lui "<<putere;

else cout<<"nu";}

 

11. Se citeste n, un numar natural. Sa se calculeze n factorial.

 

natural n,i,f;

Citeste n;

fß1;

Pentru iß1,n executa  fßf*i;

Scrie f;

 

 

2.     Probleme

1.Se citeste un sir de valori numere intregi pana la intalnirea lui 0. Sa se calculeze:

a.- numarul (suma) elementelor negative din sir;

b.- numarul (suma) elementelor pare din sir;

 

2.Se citeste un sir de n numere reale. Numarul de numere citite n  se citeste de la tastaura. Sa  se calculeze:

                a.-media aritmetica a elementelor pozitive din sir;

                b.- media aritmetica a elementelor pare din sir;

                c.-elementul maxim din sir (minim);

 

3.Scrieti in pseudocod un program care rezolva ecuatia de gradul I, ax+b=0, unde a si b sunt numere intregi citite de la tastatura.

 

4.Scrieti in pseudocod un program care rezolva ecuatia de gradul II, ax2+bx+c=0, unde a,b si c sunt numere intregi citite de la tastatura.

 

5.Calculati distanta d intre doua puncte intr-un plan. Cele doua puncte se vor citi prin coordonatele lor carteziene: a: xa,  ya, punctul b cu xb, yb si puctul c cu xc si yc.

 

6.Se citesc de la tastautura  doua numere intregi  x si n. Sa se calculeze x^n.

 

7. Sa se afiseze toti divizorii pari (impari) ai unui numar.

 

8. sa se transforme urmatoarea structura repetitiva pentru intr-o structura repetitiva cat timp sau executa… cat timp.

 

intreg a,b;

natural nr,i;

citeste a,b;

nrß0; ißa;

pentru ißa,b executa

   daca i%2=0 atunci nrßnr+1;

scrie nr;

 

3.     Probleme de interschimb

9. fie x1,x2,x3,x4,x5 cinci valori reale. Scrieti un algoritm in pseudocod care sa foloseasca o singura variabila suplimentara pentru a schimba valorile numerleor astfel: x1 va afea valoarea lui x2, x2 va avea valoarea lui x3, x3 va avea valoarea lui x4, x5 va avea valoarea lui x1. (manual pg.25)

 

10.Fie trei valori: a, b si c. Sa se afiseze aceste valori in ordine crescatoare (folosind interschimbul).

                -fie x un numar natural de trei cifre. Sa se scrie un algoritm care sa elimine una dintre cifrele numarului astfel incat numarul de doua cifre ramas sa fie maxim. (fie prin interschimb fie prin algoritm de maxim/minim fie prin alt algoritm).

               

4.     Probleme de matematica

11.Se citesc trei numere reale pozitive. Sa se verifice daca numerele pot constitui laturile unui triunghi. In caz afirmativ sa se calculeze aria (folosind formula lui Heron)

s=semiperimetrul

A=sqrt(s(s-a)(s-b)(s-c)) 

 

20.Cautarea unei valori intr-un sir

1.       O valoare data Y se gaseste in sir?

2.       De cate ori apare o valoare data Y?

 

21.Algoritmi extragere cifre

1.       Sa se numere cate cifre are numarul N

2.       Sa se stabileasca cate cifre pare/impare are numarul N.

3.       Sa se stabileasca daca N contine o cifra data, CIF.

4.       Sa se numere de cate ori apare cifra CIF in numarul N.

5.       Sa se determine cifra maxima/minima din numarul N

6.       Sa se construiasca “oglinditul” numarului N. Pentru N=3648 se va afisa 8463.

7.       Sa se stabilesca daca N este palindrom (egal cu oglinditul sau).

8.       Pentru un numar N dat, sa se construiasca cel mai mare numar natural care se poate forma cu cifrele lui N.

Algoritm:

cat timp (N!=0) executa { //prel ultima cifra a lui N

                             .......N%10;

                //stergem ultima cifra

                   N=N/10;

                     }

 

22.Se considera urmatorul algoritm:

Intreg  a,  b;

citeste a,  b; //  a>b ????

daca a %b 10 <b mod 10 atunci

 aßa-a %10+b%10;

daca a /10 % 10>5 atunci aß a-a /10*10

 altfel bßb-a %100;

scrie a, b;

sfarsit.

Ce valori vor fi afisate daca a=354 si b=238? Dar pentru a=7093 si b=211?

 

23. Se citește un număr natural n de 4 cifre. Să se afișeze câtul și restul împărțirii numărului format din primele două cifre ale lui n la numărul format din ultimele două cifre ale lui n. De exemplu, dacă n=5413, atunci 54 împărțit la 13 dă restul 2 și câtul 4.

 

24.  Scrieţi un algoritm care citeşte un număr natural n de două cifre şi tipăreşte oglinditul său. De exemplu, pentru n=25, se va tipări 52, iar pentru n=19 se va tipări 91.

25. Se citesc masurile a doua unghiuri exprimate in grade si minute. La primul unghi aduna x1 minute, iar cel de al doilea se aduna x2 minute. 
Sa se afiseze masura unghiului mai mare astfel obtinut si indicativul unghiului. 
Date de intrare: Se citesc de la tastatura g1 m1 x1, apoi g2 m2 x2 reprezentand numarul de grade, minute si numarul de minute adunate pentru fiecare unghi. 
Date de iesire: Se va afisa h, m si ind reprezentand numarul de grade, minute si indicativul unghiului mai mare. 
Exemplu: 57 20 28 
76 50 47 
se va afisa : 77 37 2 

26.Se considera urmatorul algoritm:

Intreg a, b, c, d;

Citeste a, b;

cßa+b;

dßa*b;

daca  c>d  atunci  cßd;

daca a % 2 =0 atunci scrie c,d;

 altfel scrie d,c;

sfarsit.

Ce valori vor fi afisate daca a=34 si b=2? Dar a=24 si b=-2?

 

27. Se citește un număr natural n de 4 cifre. Să se afișeze valoarea a+b+c, unde a se obține din n eliminând prima cifră, b se obține din n eliminând primele două cifre, iar c este cifra unităților lui n. De exemplu, dacă n=2347, atunci valoarea afișată este 347+47+7=401

 
28. Se citesc de la tastatura doua numere naturale a si b cu exact doua cifre fiecare. 
Scrieti programul in pseudocod care afiseaza numarul total de cifre pare din cele doua numere daca ele au aceeasi paritate, iar daca au paritati diferite atunci afiseaza numarul total de cifre impare din cele doua numere.
 
Exemple: Daca a = 78 si b = 18 se va afisa 2 (8 si 8 sunt cifrele pare, adica 2)
 
Daca a = 36 si b= 55 se va afisa 3 (sunt 3 cifre impare, si anume 3, 5, 5)
 ……………………………….……….20p
 
 
29. Sa se un program C++ care citeste masurile a doua unghiuri exprimate in grade si minute. 
Programul afiseaza media celor doua unghiuri, exprimata ca unghi, adica in grade, minute si secunde.
 
Exemplul 1: 57 20
 
55 50
 
se va afisa : 56 35 0
 
Exemplul 2: 57 21
 
55 50
 
se va afisa : 56 35 30
 
 
30.
 

 
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 

 
 
31.

 

 

32.

33.

34.

35.

36.

 

 

5.     Exercitii

 

Free Web Hosting