Informatică, întrebare adresată de Axis, 9 ani în urmă

Am pus poza mai jos, daca se poate rapid ca am teza si am lipsit f mult din probleme medicale

Anexe:

Răspunsuri la întrebare

Răspuns de StarBack
0
Salut. Uite aici rezolvarea problemelor. Succes in continuare!


1)

#include <iostream>

using namespace std;


int main()
{
       int n, x;
       int nr = 0;

       cin >> n;

       while (n != 0)
       {
               cin >> x; 
              if (x >= 10 && x <= 100)
                        nr++;

          n--;
       }

     cout << nr;
    return 0;
}


2)


#include <iostream>
#include <math.h>

using namespace std;


int main()
{
         int n, ok, d = 2;

         cin >> n;
         ok = 1;

         while (d <= sqrt(n))
         {
                  if (n % d == 0)
                           ok = 0;

                d++;
          }

         if (ok == 1)
                cout << "NR. PRIM!";
         else
                cout << "NR. NEPRIM!";

     return 0;
}


3)

#include <iostream>

using namespace std;


int main()
{
        int n, c, min = 9;

        cin >> n;

        while (n != 0)
        {
               c = n % 10;
               if (c < min)
                     min = c;

              n = n / 10;
        }

      cout << min;

   return 0;
}

blindseeker90: Se mai pot face optimizari la programe. La execitiul 2, in cazul in care n se imparte la d, pe langa faptul ca setezi valoarea lui ok=0, poti pune si un break; Aceasta instructiune forteaza iesirea din structura repetitiva for. nu are rost sa mai treci si prin celelalte valori daca deja stii ca nu este prim
blindseeker90: La exercitiul 3 poti face ceva asemanator. Daca cifra minima este egala cu 0 la un moment dat, nu mai are rost sa treci prin celelalte cifre pentru ca deja ele nu pot fi mai mici decat 0. Asta scriu pentru posibile imbunatatiri, oricum algoritmul face ceea ce este in cerinta
StarBack: Salut. In primul rand, am scris asa deoarece am vrut sa inteleaga algoritmii elementari. In al doilea rand, e teza. Nu cred ca mai are rost sa-ti explic de ce, sa speram ca iti dai seama singur. Sa ai o zi frumoasa. :)
Răspuns de stassahul
0
1)
var a:array of integer;
n,i,nr:integer;

begin
read(n);
setlength(a,n);
writeln;

for i:=0 to n-1 do begin
read(a[i]);
if (a[i]<=100) and (a[i]>=10) then inc(nr);
end;

writeln;
writeln(nr);
end.


2)
var i,n,x:integer;

begin
read(n);
writeln;

for i:=1 to n do 
if (n mod i = 0) then inc(x); 

if x=2 then writeln('DA') 
else writeln('NU');
end.


3)
var s,min:string;
i:integer;

begin
read(s);
writeln;

min:=s[1];

for i:=1 to length(s) do
if s[i]<min then min:=s[i];

writeln(min);
end.
Alte întrebări interesante