Rozwiązanie 1.1.
Przykładowe rozwiązania zadania 1.2. (poprawione)
Przykład 1.
dla i = 1, 2, ..., n
B[i] ← 0
k ← 0
dla i = 1, 2, ..., n
jeżeli A[i] ≤ n
B[A[i]] ← B[A[i]]+1
w przeciwnym razie
k ← k+1
dla i = 1, 2, ..., n
jeżeli B[i] > 1
k ← k + B[i] - 1
wypisz k
Przykład 2.
w ← 0;
dla i = 1, 2, ..., n
dla j = 1, 2, .., n
jeżeli (A[j] = i)
w ← w+1
przerwij pętlę
k ← n - w
wypisz k
Przykład 3.
dla i = 1, 2, ..., n-1
dla j = i+1, i+2, ..., n
jeżeli (A[i] > A[j])
x ← A[i]
A[i] ← A[j]
A[j] ← x
k ← 0;
dla i = 1, 2, ..., n-1
jeżeli (A[i] = A[i+1] lub A[i]>n)
k ← k+1
jeżeli (A[n] > n)
k ← k+1
wypisz k
Przykład 4. W pseudokodzie dla danych z przykładu
n ← 3
A ← [1, 3, 1]
k ← 0
dla i = 1, 2, ..., n
temp ← 0
dla j = 1, 2, ..., n
jeżeli A[j] ≠ i
temp ← temp + 1
jeżeli temp = n
k ← k + 1
wypisz k
Poziom wykonania zadania:
1.1. 81% (2p)
1.2. 31% (4p)
C++
#include <iostream>
using namespace std;
int main() {
int n = 3;
int A[] = {1, 3, 1};
int k = 0;
for (int i = 1; i <= n; i = i + 1) {
int temp = 0;
for (int j = 0; j < n; j = j + 1) {
if (A[j] != i) {
temp = temp + 1;
}
}
if (temp == n) {
k = k + 1;
}
}
cout << k << endl;
return 0;
}
Python
n = 3
A = [1, 3, 1]
k = 0
for i in range(1, n + 1):
temp = 0
for j in range(n):
if A[j] != i:
temp = temp + 1
if temp == n:
k = k + 1
print(k)
Java
public class Main {
public static void main(String[] args) {
int n = 3;
int[] A = {1, 3, 1};
int k = 0;
for (int i = 1; i <= n; i = i + 1) {
int temp = 0;
for (int j = 0; j < n; j = j + 1) {
if (A[j] != i) {
temp = temp + 1;
}
}
if (temp == n) {
k = k + 1;
}
}
System.out.println(k);
}
}
Pascal
program Main;
var
n, i, j, k, temp: integer;
A: array[0..2] of integer = (1, 3, 1);
begin
n := 3;
k := 0;
for i := 1 to n do
begin
temp := 0;
for j := 0 to n-1 do
begin
if A[j] <> i then
temp := temp + 1;
end;
if temp = n then
k := k + 1;
end;
writeln(k);
end.
C
#include <stdio.h>
int main() {
int n = 3;
int A[3] = {1, 3, 1};
int k = 0;
for (int i = 1; i <= n; i = i + 1) {
int temp = 0;
for (int j = 0; j < n; j = j + 1) {
if (A[j] != i) {
temp = temp + 1;
}
}
if (temp == n) {
k = k + 1;
}
}
printf("%d", k);
return 0;
}