Matura 2005. Zadanie 1. Szeregi nieskończone i funkcje elementarne.

Wartości funkcji elementarnych, takich jak sin, cos, log, są obliczane za pomocą komputera w sposób przybliżony. Często stosuje się w tym celu wzory, które mają postać nieskończonych sum. Na przykład prawdziwy jest następujący wzór na wartość logarytmu naturalnego z liczby 2:

W oparciu o powyższy wzór można zaprojektować i napisać program, który dla danej liczby ε (ε > 0) oblicza przybliżoną wartość ln 2, sumując jak najmniej wyrazów, aby różnica między dwoma ostatnimi przybliżeniami była mniejsza niż ε.

Wprowadźmy oznaczenie:

dla n ≥ 1

Wykonaj poniższe polecenia:

a) Wypełnij tabelę:

n ln
0 2/3
1 2/3 * ( 1 + 1/3 * 1/9 )
2 2/3 * ( 1 + 1/3 * 1/9 + 1/5 * 1/92)
3 2/3 * ( 1 + 1/3 * 1/9 + 1/5 * 1/92 + 1/7 *1/93 )

Poniżej podaj zależność pomiędzy wartościami ln i ln–1 dla każdego n=1, 2, …

 

Ćwiczenia edytor tekstu

Znajdują się tu pliki do pobrania do realizacji programu informatyki dla liceum ogólnokształcącego. Podzielone zostały na pliki po gimnazjum, szkole podstawowej oraz potrzebne do pracy z programem MS Office oraz OpenOffice.


Czytaj dalej…


Matura 2015. Zadanie 4. Liczby binarne.

W pliku liczby.txt znajduje się 1000 liczb naturalnych zapisanych binarnie. Każda liczba zapisana jest w osobnym wierszu. Pierwsze pięć wierszy zawiera następujące liczby:
11010100111
11110111111011101
1010100111010100
1101111111111111111111010100101010101001
1010110011001101010011110101010101010111
Każda liczba binarna zawiera co najwyżej 250 cyfr binarnych, co oznacza, że w wielu językach programowania wartości niektórych z tych liczb nie da się zapamiętać w pojedynczej zmiennej typu całkowitoliczbowego, np. w języku C++ w zmiennej typu int.
Napisz program, który da odpowiedzi do poniższych zadań. Odpowiedzi zapisz w pliku wynik4.txt, a każdą odpowiedź poprzedź numerem oznaczającym odpowiednie zadanie.

Zadanie 4.1.
Podaj, ile liczb z pliku liczby.txt ma w swoim zapisie binarnym więcej zer niż jedynek.

Przykład: Dla zestawu liczb:
101011010011001100111
10001001
1000000
101010011100
100010
wynikiem jest liczba 3 (3 podkreślone liczby mają w swoim zapisie więcej zer niż jedynek).

Rozwiązanie:

Sprawdzenie należy rozpocząć od policzenia dla każdej liczby binarnej ilość zer i jedynek. Porównamy ze sobą otrzymane wyniki.

#include <iostream>
#include <fstream>
#include <math.h>
#define N 1000
using namespace std;
int main()
{
  string t[N];
  fstream plik;
  plik.open("liczby.txt");
  if (plik.good()==false)
    cout << "Problem z plikiem!" << endl;
  else
    for(int i=0; i<N; i++)
      plik >> t[i];
  // zadanie 1
  int il_liczb=0;
  short il_zer, il_jedynek;
  for (int i=0; i<N; i++) {
    il_zer=0;
    il_jedynek=0;
    for (int j=0; j<t[i].length(); j++) {
      if (t[i][j] == '0') il_zer++;
      else il_jedynek++;
    }
    if (il_zer>il_jedynek) il_liczb++;
  }
  cout << il_liczb << endl;
  return 0;
}

Zadanie 4.2.
Podaj, ile liczb w pliku liczby.txt jest podzielnych przez 2 oraz ile liczb jest podzielnych przez 8.

Przykład:
Dla zestawu liczb:
101011010011001100000 (*), (**)
10001001
100100 (*)
101010010101011011000 (*), (**)
100011
trzy liczby są podzielne przez 2 (*) i dwie liczby są podzielne przez 8 (**).

Rozwiązanie:
Do rozwiązania tego zadania należy przeanalizować liczby binarne. Wiemy, kiedy na ostatnim miejscy liczby binarnej jest zero, to podana liczba jest  parzystą. Dlatego sprawdzamy ostatnią liczbę.

Kod źródłowy do tej części zadania:

#include <iostream>
#include <fstream>
#include <math.h>
#define N 1000
using namespace std;
int main()
{
  string t[N];
  fstream plik;
  plik.open("liczby.txt");
  if (plik.good()==false)
    cout << "Problem z plikiem!" << endl;
  else 
    for(int i=0; i<N; i++)
      plik >> t[i];
  int ile_parz=0;
  for (int i=0; i<N; i++)
    if (t[i][t[i].length()-1] == '0')
      ile_parz++;
  cout << ile_parz << endl;
  return 0;
}

 

 

Cyfra setek Cyfra dziesiątek Cyfra jedności
0, 2, 4, 6 lub 8 0, 4 lub 8 0 lub 8
1, 5 lub 9 6
2, 6 4
3, 7 2
1, 3, 5, 7 lub 9 0, 4 lub 8 4
1, 5 lub 9 2
2, 6 0 lub 8
3, 7 6

 Liczba jest podzielna przez 88, gdy liczba składająca się z trzech ostatnich cyfr dzieli się na 8.

Zadanie 4.3. (0–6)
Znajdź najmniejszą i największą liczbę w pliku liczby.txt. Jako odpowiedź podaj
numery wierszy, w których się one znajdują.
Przykład: Dla zestawu liczb:
101011010011001100111
10001001011101010
1001000
101010011100
1000110
najmniejsza liczba to: 1000110
największa liczba to: 101011010011001100111
Prawidłowa odpowiedź dla powyższego przykładu to: 5, 1.

Matura 2014. Zadanie 4. Działki

W pliku DZIALKI.TXT znajduje się 5000 wierszy z informacjami o działkach w gminie Bajtocja, poprzedzonych wierszem nagłówkowym. W każdym wierszu znajdują się dane jednej działki, rozdzielone średnikami: numer (Numer), powierzchnia w metrach kwadratowych (Powierzchnia), oznaczenie rodzaju działki (Rodzaj), typ ulgi (Ulga).

Przykład:
Numer;Powierzchnia;Rodzaj;Ulga
517/10;1293,99;B;B
517/11;971,09;B;A
517/12;1259,19;R;B

Właściciele działek płacą gminie podatek. Podatek od działki jest obliczany jako iloczyn powierzchni działki i następującej stawki za metr kwadratowy [m2]:

rodzaj działki oznaczenie stawka za m2
rolna R 0,65 zł
budowlana B 0,77 zł
siedliskowa S 0,21 zł
leśna L 0,04 zł
rekreacyjna X 0,43 zł

Obliczona kwota podatku powinna jest zaokrąglana do dwóch miejsc po przecinku.

W gminie obowiązują cztery kategorie ulg. Kwota podatku pomniejszona jest o wielkość ulgi według następujących stawek:

oznaczenie ulgi ulga w procentach
A 20%
B 50%
C 90%
D 0%

Kwota podatku po uwzględnieniu ulgi również jest zaokrąglana do dwóch miejsc po przecinku.

Przykład:

Dla następującego wiersza danych: 517/12;1259,19;R;B, pełny podatek wynosi 1259,19 * 0,65 zł = 818,47 zł, a po uwzględnieniu ulgi jest on równy 409,24 zł i taka kwota jest wpłacana do kasy gminy.

Wykorzystując dane zawarte w pliku DZIALKI.TXT i dostępne narzędzia informatyczne, wykonaj podane polecenia. Odpowiedzi do poszczególnych podpunktów zapisz w kolejnych wierszach pliku tekstowego ZADANIE4.TXT. Odpowiedź do każdego podpunktu poprzedź literą oznaczającą ten podpunkt.

  1. Dodawanie danych do programu Excel.

2. Wybór pliku z danymi (DZIALKI.TXT).

3. Za pomocą kreatora dodajemy dane rozdzielone średnikiem.

4. Wskazujemy miejsce importowania danych.

a) Podaj powierzchnię i rodzaj najmniejszej działki oraz powierzchnię i rodzaj największej działki.

Rozwiązanie:

Należy wykonać dwie czynności, po pierwsze należy znaleźć najmniejszą i największą powierzchnię działki wykorzystując odpowiednio funkcję:

= MIN(B2:B5001)

= MAX(B2:B5001)

Jak zostały znalezione powierzchnie najmniejsza i największa, musimy sprawdzić jaki jest rodzaj działki wykorzystując funkcję:

=WYSZUKAJ.PIONOWO(G9;B1:C5001;2;FAŁSZ)

Opis tej funkcji znajdziemy na stronie: MICROSOFT OFFICE

Rozwiązanie zadania:

powierzchnia rodzaj
najmniejsza 500,18 S
największa 1500 X

b) Utwórz zestawienie zawierające, dla każdego z rodzajów działek, następujące informacje: rodzaj działki, liczbę działek tego rodzaju, średnią powierzchnię (zaokrągloną do dwóch miejsc po przecinku) działek tego rodzaju.

Do rozwiązania tego zadania będziemy musieli posortować dane wg rodzaju działki.

Następnie wykorzystam sumy częściowe do zebrania wszystkich danych, pierwsze dane to liczba poszczególnych działek:

Drugie dane to średnia powierzchnia każdego rodzaju:

Rodzaj działki B L R S X
Liczba działek tego rodzaju 1775 559 708 964 994
Średnia powierzchnia 999,59 1016,75 989,98 986,12 989,94

 

c) Utwórz zestawienie, w którym podasz ile jest działek, od których trzeba zapłacić podatek (według stawek i ulg wyszczególnionych w tabelach) w podanych poniżej tabeli przedziałach:

 

Wielkość podatku Liczba działek
do 100 zł włącznie
ponad 100 zł, ale do 500 zł włącznie
ponad 500 zł

Sporządź wykres procentowy ilustrujący otrzymane zestawienie. Pamiętaj o prawidłowym i czytelnym opisie wykresu.

Zadanie. Suma.

Twoim zadaniem będzie obliczenie następującej sumy: 1+2+3+4+…+n. Liczba n jest zapisana w pliku tekstowym. Odczytaj z pliku, zaś wynik zapisz do pliku tekstowego wynik.txt.
Musisz napisać jak najkrótszy kod, jest to zadanie typu challenge.
Czytaj dalej…


Zadanie do rozwiązania

W pliku zadanie_1.txt wpisz kolejno 100 elementów losowych z zakresu od 0 do 10000.

  1. do pliku odpA.txt wpisz liczby z pliku zadanie_1.txt wszystkie liczy parzyste;
  2. do pliku odpB.txt wpisz 10 elementów pierwszych nieparzystych znajdujących się w pliku zadanie_1.txt;
  3. do pliku odpC.txt wpisz kwadraty liczb znajdujących się w pliku zadanie_1.txt.


Czytaj dalej…


Generator hasła z ASCII [c++]

Zadanie:
Generator losowych znaków z tablicy ASCII tworząc hasło o długości od 12 do 26 znaków.

Rozwiązanie:

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <string>
using namespace std;

int main()
{ 
  srand(time(NULL));
  int length_password = rand()%15+12;
  cout << length_password << endl;
  string password = "";
  for (int i=0; i<length_password; i++)
  {
    password = password + char(rand()%94+33);
  }
  cout << password << endl;
  return 0;
}