Arkusz egzaminacyjny:
Pomoc do Zadanie 1.1.
Wersja ze zmienną globalną
#include <iostream>
using namespace std;
int licznik = 0; // zmienna globalna
int przestaw(int n) {
licznik++; // zliczamy każde wywołanie
int r = n % 100; // ostatnie dwie cyfry
int a = r / 10; // cyfra dziesiątek
int b = r % 10; // cyfra jedności
n = n / 100; // usuwamy dwie ostatnie cyfry
if (n > 0) {
return a + 10 * b + 100 * przestaw(n);
} else {
if (a > 0) {
return a + 10 * b;
} else {
return b;
}
}
}
int main() {
int n = 316498;
int wynik = przestaw(n);
cout << "Wynik: " << wynik << endl;
cout << "Liczba wywołań funkcji: " << licznik << endl;
return 0;
}
Wersja z licznikiem przekazywanym jako referencja
#include <iostream>
using namespace std;
int przestaw(int n, int &licznik) {
licznik++; // Zliczamy każde wywołanie funkcji
int r = n % 100; // ostatnie dwie cyfry
int a = r / 10; // cyfra dziesiątek
int b = r % 10; // cyfra jedności
n = n / 100; // usuwamy dwie ostatnie cyfry
if (n > 0) {
return a + 10 * b + 100 * przestaw(n, licznik);
} else {
if (a > 0) {
return a + 10 * b;
} else {
return b;
}
}
}
int main() {
int n = 316498;
int licznik = 0;
int wynik = przestaw(n, licznik);
cout << "Wynik: " << wynik << endl;
cout << "Liczba wywołań funkcji: " << licznik << endl;
return 0;
}
Pomoc do Zadanie 1.3.
C++
#include <iostream>
using namespace std;
int przestaw(int n) {
int w = 0; // wynik końcowy
int mnoznik = 1; // do ustawiania pozycji cyfr
while (n > 0) {
int r = n % 100; // dwie ostatnie cyfry
int a = r / 10; // cyfra dziesiątek
int b = r % 10; // cyfra jedności
if (n / 100 > 0) {
w = w + (a + 10 * b) * mnoznik;
} else { // ostatnia para cyfr
if (a > 0) {
w = w + (a + 10 * b) * mnoznik;
} else {
w = w + b * mnoznik;
}
}
n = n / 100; // przechodzimy do kolejnych cyfr
mnoznik = mnoznik * 100; // przesuwamy się o dwie pozycje w lewo
}
return w;
}
int main() {
int n;
cout << "Podaj liczbe: ";
cin >> n;
int wynik = przestaw(n);
cout << "Wynik: " << wynik << endl;
return 0;
}
def przestaw(n):
w = 0 # wynik końcowy
mnoznik = 1 # do ustawiania pozycji cyfr
while n > 0:
r = n % 100 # dwie ostatnie cyfry
a = r // 10 # cyfra dziesiątek
b = r % 10 # cyfra jedności
if n // 100 > 0:
w = w + (a + 10 * b) * mnoznik
else: # ostatnia para cyfr
if a > 0:
w = w + (a + 10 * b) * mnoznik
else:
w = w + b * mnoznik
n = n // 100 # przechodzimy do kolejnych cyfr
mnoznik = mnoznik * 100 # przesuwamy się o dwie pozycje w lewo
return w
# Przykład użycia
n = int(input("Podaj liczbę: "))
wynik = przestaw(n)
print("Wynik:", wynik)
import java.util.Scanner;
public class Przestawianie {
public static int przestaw(int n) {
int w = 0; // wynik końcowy
int mnoznik = 1; // do ustawiania pozycji cyfr
while (n > 0) {
int r = n % 100; // dwie ostatnie cyfry
int a = r / 10; // cyfra dziesiątek
int b = r % 10; // cyfra jedności
if (n / 100 > 0) {
w = w + (a + 10 * b) * mnoznik;
} else { // ostatnia para cyfr
if (a > 0) {
w = w + (a + 10 * b) * mnoznik;
} else {
w = w + b * mnoznik;
}
}
n = n / 100; // przechodzimy do kolejnych cyfr
mnoznik = mnoznik * 100; // przesuwamy się o dwie pozycje w lewo
}
return w;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Podaj liczbę: ");
int n = scanner.nextInt();
int wynik = przestaw(n);
System.out.println("Wynik: " + wynik);
}
}