Rozdział 11. Obliczenia (for, while)

Zadanie 11.1

Napisz program wyznaczający n-tą potęgę liczby x. Liczby n oraz x należy pobrać od użytkownika.

Rozwiązanie: 11-01.cpp

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  int n,i;
  float x,wynik;
  
  
  cout << "Program oblicza potęgę naturalną zadanej liczby.\n";
  cout << "(C)2003 student\n\n\n";  
  
  cout << "Podaj wykłądnik potęgi n=";
  cin  >> n;
  
  cout << "Podaj podstawę potęgi x=";
  cin  >> x;
  
  wynik=1;
  for (i=0;i<n;i++)
    wynik=wynik*x;
    
  cout << "\n\n" << x << "^" << n << " = " << wynik << endl << endl;
  
  
  system("PAUSE");	
  return 0;
}

Zadanie 11.2

Napisz program wyznaczający wartość n! (n silnia) zadanej liczby n. Liczbę n należy pobrać od użytkownika.

Rozwiązanie: 11-02.cpp

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  int n,i,silnia;
  
  cout << "Program oblicza n!.\n";
  cout << "(C)2003 student\n\n\n";  
  
  cout << "Podaj n=";
  cin  >> n;
  
 
  silnia=1;
  for (i=1;i<=n;i++)
    silnia=silnia*i;
    
  cout << "\n\n" << n << "!" << " = " << silnia << endl << endl;
  
  
  system("PAUSE");	
  return 0;
}

Zadanie 11.3

Napisz program wyznaczający NWD (Największy Wspólny Dzielnik) liczb a i b.

Rozwiązanie: 11-03.cpp

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  int a,b,roba,robb;
  
  cout << "Program oblicza NWD(a,b).\n";
  cout << "(C)2003 student\n\n\n";  
  
  cout << "a=";
  cin  >> a;
  
  cout << "b=";
  cin  >> b;
  
  roba=a;
  robb=b;
  
  while (roba != robb)
   {
     if (roba > robb)
       roba = roba-robb;
     else
       robb = robb-roba;  
   }
  
  
 
  cout << "\n\nNWD(" << a << "," << b << ") = " << 
     roba << endl << endl;
  
  
  system("PAUSE");	
  return 0;
}

Zadanie 11.4

Napisz program wyznaczający NWW (Najmniejszą Wspólną Wielokrotną) liczb a i b.

Rozwiązanie: 11-04.cpp

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  int a,b,roba,robb,nwd,nww;
  
  cout << "Program oblicza NWW(a,b).\n";
  cout << "(C)2003 student\n\n\n";  
  
  cout << "a=";
  cin  >> a;
  
  cout << "b=";
  cin  >> b;
  
  roba=a;
  robb=b;
  
  while (roba != robb)
   {
     if (roba > robb)
       roba = roba-robb;
     else
       robb = robb-roba;  
   }
   
  nwd=roba;
  
  nww = ( a / nwd ) *  b ;
  
  
 
  cout << "\n\nNWW(" << a << "," << b << ") = " << 
     nww << endl << endl;
  
  
  system("PAUSE");	
  return 0;
}

Zadanie 11.5

Napisz program wyznaczający pierwiastek całkowity zadanej liczby. (Nie stosuj funkcji sqrt(). Użyj wyłącznie pętli i działań arytmetycznych).

Rozwiązanie: 11-05.cpp

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  int n,robn,ile,nieparzysta;
  
  cout << "Program oblicza pierwiastek całkowity z zadanej liczby.\n";
  cout << "(C)2003 student\n\n\n";  
  
  cout << "n=";
  cin  >> n;
  
  robn=n;
  nieparzysta=1;
  ile=0;
 
  while (robn>=0)
    {
      robn-=nieparzysta;
      ile++;
      nieparzysta+=2;
    }
    
  ile--;
    
  cout << "\n\nPierwiastek całkowity z liczby n = " 
       << ile << ".\n\n";
  
  
  system("PAUSE");	
  return 0;
}

Zadanie 11.6

Napisz program stwierdzający, czy zadana liczba n jest pierwsza.

Rozwiązanie: 11-06.cpp

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
  int n,dzielnik;
  
  
  cout << "Program sprawdza, czy zadana liczba jest pierwsza.\n";
  cout << "(C)2003 student\n\n\n";  
  
  cout << "Podaj liczbę n=";
  cin  >> n;
  
  
  dzielnik=2;
  while (  ((n % dzielnik) != 0) && ((dzielnik <= sqrt(n))) )
    dzielnik++;
    
  if (dzielnik>sqrt(n))
    cout << "\n\nPIERWSZA\n\n"; 
  else
    cout << "\n\nZŁOŻONA\n\n";   
  
  system("PAUSE");	
  return 0;
}

Zadanie 11.7

Napisz program stwierdzający, czy zadana liczba n jest pierwsza.


©2010 Włodzimierz Gajda