You are on page 1of 2

Podstawy programowania

laboratorium 3

Zad. 1 (1 pkt.). Uruchom środowisko Code::Blocks, a następnie utwórz, skompiluj oraz


uruchom nowy projekt pn. NWD z następującymi funkcjami oraz programem w języku C++,
które wyznaczają największy wspólny dzielnik liczb (n, g) będących argumentami funkcji:

#include <iostream>
using namespace std;

int NWD1(int n, int g) {


while (n!=g) if (n<g) g-=n; else n-=g;
return n;
}

int NWD2(int n, int g) {


int t(0);
while (g!=0)
{
t=g;
g=n%g;
n=t;
}
return n;
}

int NWD3(int n, int g) {


if (n==g) return n;
else if (n>g) return NWD3(n-g, g);
else return NWD3(n, g-n);
}

int NWD4(int n, int g) {


if (g!=0) return NWD4(g, n%g);
return n;
}

int main () {
unsigned int a, b;
cin>>a>>b;
cout<<"NWD: "<<NWD1(a, b)<<endl;
cout<<"NWD: "<<NWD2(a, b)<<endl;
cout<<"NWD: "<<NWD3(a, b)<<endl;
cout<<"NWD: "<<NWD4(a, b)<<endl;
return 0;
}

Zad. 2 (3 pkt.). Opracuj funkcję pod nazwą NWW(a, b), która wyznacza najmniejszą wspólną
wielokrotność liczb (a, b) będących argumentami funkcji. Wywołaj działanie funkcji z
różnymi argumentami. Skompiluj oraz uruchom projekt pn. NWW wiedząc że:

NWW = a*b / NWD (a, b)

WSKAZÓWKA: Funkcja NWW() powinna w obliczeniach wykorzystywać dowolną funkcję


NWD (NWD1, NWD2, NWD3 lub NWD4).

–1–
Zad. 3 (4 pkt.). Opracuj funkcję void pod nazwą redukcjaUlamka(licznik, mianownik), która
ułamek podany w postaci dwóch argumentów (licznik, mianownik) skraca do najprostszej
możliwej postaci. Wywołaj działanie funkcji z różnymi argumentami. Skompiluj oraz
uruchom projekt pn. RedukcjaUlamka.

WSKAZÓWKA: przykładowo, dla argumentów: 9 (licznik) oraz 87 (mianownik) wynik


skrócenia to 3/29. Funkcja redukcjaUlamka() powinna w obliczeniach wykorzystywać
dowolną funkcję NWD (NWD1, NWD2, NWD3 lub NWD4). Dopuszcza się wykorzystanie
instrukcji cout w działaniu funkcji redukcjaUlamka().

Zad. 4 (1 pkt.). Uruchom środowisko Code::Blocks, a następnie utwórz, skompiluj oraz


uruchom nowy projekt pn. TablicaSilni z następującym programem w języku C++:

#include <iostream>
using namespace std;

int main() {
long long silnia=1, tablica[20];
for(int i=1; i<21; i++) {
silnia*=i;
tablica[i-1]=silnia;
}
for(int i=1; i<21; i++)
cout<<i<<"! = "<<tablica[i-1]<<endl;
return 0;
}

Zad. 5 (4 pkt.) Opracuj program z wykorzystaniem tablicy oceny[], która 10 ocen


zapamiętuje z klawiatury (obowiązują oceny akademickie), a następnie (za pomocą pętli)
oblicza i wyświetla średnią z tych ocen. Wywołaj działanie programu z różnymi wartościami
(ocenami). Skompiluj oraz uruchom projekt pn. Oceny.

Zad. 6 (10 pkt.). Opracuj funkcję void pod nazwą czynniki(liczba), która rozkłada liczbę
złożoną (naturalną) będącą argumentem funkcji na czynniki pierwsze. Wywołaj działanie
funkcji z różnymi argumentami. Skompiluj oraz uruchom projekt pn. Czynniki.

WSKAZÓWKA: Czynniki pierwsze to liczby pierwsze, których iloczyn składa się na daną
liczbę złożoną. Przykładowo, czynniki pierwsze liczb 38, 198 oraz 1520 to:
38 = 2⋅19
198 = 2⋅3⋅3⋅11
1520 = 2⋅2⋅2⋅2⋅5⋅19

W programie należy zastosować rozwiązanie w postaci dzielenia rozkładanej liczby przez


coraz większe liczby pierwsze (zawsze zaczynając od 2) aż z rozkładanej liczby zrobi się
jedynka, np.: 1520 / 2 = 760; 760 / 2 = 380; 380 / 2 = 190; 190 / 2 = 95; 95 / 5 = 19;
19 / 19 = 1, itp.

UWAGA: Dopuszcza się w działaniu funkcji void wykorzystanie instrukcji cout.

–2–

You might also like