SZUKAJ NA TYM BLOGU

Zadanie 1. n-permutacja (0-6) ()

https://cke.gov.pl/images/_EGZAMIN_MATURALNY_OD_2015/Arkusze_egzaminacyjne/2022/Informatyka/poziom_rozszerzony/EINP-R1-100-2205.pdf

Rozwiązanie 1.1.

ciąg - liczba elementów do podmiany
(1, 4, 2, 5) - 1
(2, 2, 2, 2, 2) - 4
(4, 2, 3, 1) - 0
(5, 4, 1, 5, 6, 8) - 2
(8, 4, 9, 6, 5, 7) - 3

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


https://cke.gov.pl/images/_EGZAMIN_MATURALNY_OD_2015/Arkusze_egzaminacyjne/2022/Zasady_oceniania/EINP-R1_R2-100-2205-zasady.pdf

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)

https://cke.gov.pl/images/_EGZAMIN_MATURALNY_OD_2015/Informacje_o_wynikach/2022/sprawozdanie/EM_informatyka_sprawozdanie_2022.pdf#page=14

 

 

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;
}