AHE/Podstawy Programowania I/README.md

256 lines
7.4 KiB
Markdown
Raw Normal View History

2025-01-27 23:31:45 +01:00
---
author: Mateusz Słodkowicz
lang: pl
title: Podstawy Programowania I
---
2025-05-15 15:13:29 +02:00
```{=org}
#+export_file_name: ../Podstawy Programowania I/README.md
```
```{=org}
#+pandoc_options: lua-filter:fix.lua
```
2025-01-27 23:31:45 +01:00
Zadania/Ćwiczenia z przedmiotu Podstawy Programowania I
# Zadania 1
## Zadanie 1
Napisz program, który zapyta użytkownika o liczbę chłopców i dziewcząt
2025-05-15 15:13:29 +02:00
zapisanych do klasy.\
2025-01-27 23:31:45 +01:00
Program powinien wyświetlać wartość procentową chłopców i dziewcząt w
klasie.
[C++](Zadanie%201.1/zadanie1.cpp)
## Zadanie 2
Kino przechowuje tylko pewien procent przychodu ze sprzedaży biletów.
2025-05-15 15:13:29 +02:00
Reszta trafia do\
2025-01-27 23:31:45 +01:00
dystrybutora. Napisz program obliczający dochód kina i zysk kasy
biletowej za dzień.
Załóż, że kino zatrzymuje 20% zysku kasy biletowej
Program powinien pytać ile zostało sprzedanych biletów dla dzieci i
2025-05-15 15:13:29 +02:00
dorosłych. (Cena biletu dla\
2025-01-27 23:31:45 +01:00
dorosłych wynosi 10 zł, a dla dziecka 6 zł). Wyświetlony powinien zostać
2025-05-15 15:13:29 +02:00
komunikat podobny do\
2025-01-27 23:31:45 +01:00
poniższego:
``` example
Sprzedane bilety dla dorosłych:
Sprzedane bilety dla dzieci:
Zysk kasy brutto:
Zysk kasy netto:
Kwota zapłacona dystrybutorowi:
```
[C++](./Zadanie%201.1/zadanie2.cpp)
## Zadanie 3
Zadeklarować trzy zmienne typu całkowitego. Wczytać dane. Obliczyć sumę
2025-05-15 15:13:29 +02:00
tych liczb, ich średnią\
2025-01-27 23:31:45 +01:00
arytmetyczną i średnią harmoniczną. Wyświetlić wyniki.
[C++](./Zadanie%201.1/zadanie3.cpp)
## Zadanie 4
Rowerzysta pokonuje drogę o długości d w trzech etapach. Przez d
2025-05-15 15:13:29 +02:00
oznaczono całą długość drogi\
2025-01-27 23:31:45 +01:00
przebytej przez rowerzystę. Przebyta droga i średnia prędkość w
kolejnych etapach:
``` example
etap I 0,2 d 10 m/s
etap II 0,5 d 5 m/s
etap III 0,3 d 10 m/s
```
Należy napisać program obliczający całkowity czas jazdy rowerzysty.
2025-05-15 15:13:29 +02:00
Wyniki przeliczyć na godziny,\
minuty, sekundy.\
2025-01-27 23:31:45 +01:00
Wczytać długość drogi d, wyświetlić wyniki.
[C++](./Zadanie%201.1/zadanie4.cpp)
# Zadania 2
Uwagi:
2025-05-15 15:13:29 +02:00
- Wszystkie zadania powinny być w jednym programie, kolejne zadania
oddzielone liniami komentarza.\
- Program powinien czytelne wczytywanie danych i czytelne wypisywanie
wyników.\
- W obliczeniach nie należy korzystać z funkcji pow()\
- Stała pi -- M~PI~ należy dołączyć bibliotekę matematyczną #include
\<cmath\>
2025-01-27 23:31:45 +01:00
[C++](./Zadanie%201.2/zadanie.cpp)
## Zadanie 1
Wczytać dwie liczby typu całkowitego (x, y) i wypisać, która liczba jest
2025-05-15 15:13:29 +02:00
większa a może są takie same.\
Sprawdzić czy x jest liczbą nieparzystą. Wypisać odpowiedni komunikat.\
2025-01-27 23:31:45 +01:00
Nie wykonywać działań, kiedy pierwsza wczytana liczba będzie zerem.
## Zadanie 2
Obliczyć wartość funkcji określonej wzorem:
$$
\large y(x) = \begin{cases}
\frac{3}{4} \cdot x^{3} \cdot \frac{7}{8} x & \text{dla x ∈ <-10, 0>} \\\\
\frac{1}{sin(x) + 3} & \text{dla x ∈ (0, 4>} \\\\
-2x/3 & \text{dla pozostałych}
\end{cases}
$$
2025-05-15 15:13:29 +02:00
Dane: x -- typu rzeczywistego
2025-01-27 23:31:45 +01:00
## Zadanie 3
Napisać program pozwalający obliczyć
2025-05-15 15:13:29 +02:00
1. Objętość kuli (dane: R -- promień kuli)\
2. Objętość walca (dane: promień podstawy walca, h -- wysokość walca)\
3. Objętość stożka (dane: R -- promień podstawy stożka, h -- wysokość
2025-01-27 23:31:45 +01:00
stożka)
2025-05-15 15:13:29 +02:00
W programie należy użyć struktury wielokrotnego wyboru switch.\
2025-01-27 23:31:45 +01:00
Obliczoną wartość wypisać na ekranie.
## Zadanie 4
Firma kurierska pobiera opłaty zgodnie z poniższym cennikiem:
2025-05-15 15:13:29 +02:00
Waga paczki Opłata za każde 100 km (zł)
------------------------------------------ -----------------------------
2 kg lub mniej 5,30
Powyżej 2 kg, lecz nie więcej niż 6 kg 6,20
Powyżej 6 kg, lecz nie więcej niż 10 kg 7,70
Powyżej 10 kg, lecz nie więcej niż 20 kg 10,80
2025-01-27 23:31:45 +01:00
Napisz program, który prosi o wpisanie wagi paczki i odległości, jaką
2025-05-15 15:13:29 +02:00
musi przebyć przesyłka, a następnie wyświetli cenę.\
2025-01-27 23:31:45 +01:00
Weryfikacja poprawności wprowadzanych danych: program nie powinien
przyjmować wagi paczki mniejszej lub równej 0 kg ani powyżej 20 kg (to
największa waga paczki, jaką może przyjąć firma).
# Zadania 3
Uwagi:
2025-05-15 15:13:29 +02:00
- Wszystkie punkty powinny być realizowane w jednym programie.\
- W programie należy użyć pętli for, while, do while. Nie powinno być
w programie pętli nieskończonych. Nie\
należy używać tablic. Nie używać funkcji pow\
- Czytelność komunikatów. Komunikaty powinny być krótkie, ale tak
sformułowane, żeby nie było\
wątpliwości, które zadanie jest wykonywane.
2025-01-27 23:31:45 +01:00
[C++](./Zadanie%201.3/zadanie.cpp)
## Zadanie 1
Funkcja, który wyświetli tabliczkę mnożenia liczb od 1 do n w
następującej postaci
2025-05-15 15:13:29 +02:00
1 2 3
--- --- --- ---
1 1 2 3
2 2 4 6
3 3 6 9
2025-01-27 23:31:45 +01:00
2025-05-15 15:13:29 +02:00
n -- należy wczytać, n \<1, 10\>.\
2025-01-27 23:31:45 +01:00
W tym przypadku n = 3.
## Zadanie 2
Funkcja, która oblicza i zwraca średnią kilku liczb całkowitych przy
2025-05-15 15:13:29 +02:00
założeniu, że ostatnia wczytana wartość\
2025-01-27 23:31:45 +01:00
jest znacznikiem 0. Przykładowa seria wejściowa może być
``` example
10 8 11 7 9 0
```
wskazując, że ma być wyliczona średnia wartości poprzedzających 0.
## Zadanie 3
Funkcja, który oblicza i zwraca sumę S określoną wzorem:
$$
\large {S = \sum^{m}_{k=0}} \frac{1+j}{2j^3 + 3}
$$
Dane: m
## Zadanie 4
2025-05-15 15:13:29 +02:00
Ten punkt powinien działać w pętli, bez funkcji\
2025-01-27 23:31:45 +01:00
Napisz program obliczający obłożenie hotelu. Program powinien
2025-05-15 15:13:29 +02:00
wystartować, pytając użytkownika o\
2025-01-27 23:31:45 +01:00
nazwę hotelu i liczbę pięter w hotelu. Pętla powinna iterować raz na
2025-05-15 15:13:29 +02:00
każde piętro. W każdej iteracji pętla\
2025-01-27 23:31:45 +01:00
powinna zapytać użytkownika o liczbę pokoi na piętrze i liczbę pokoi
2025-05-15 15:13:29 +02:00
zajętych.\
2025-01-27 23:31:45 +01:00
Po wszystkich iteracjach program powinien wyświetlić, ile pokoi ma
2025-05-15 15:13:29 +02:00
hotel, ile z nich jest zajętych, a ile wolnych oraz procent, jaki\
stanowią zajęte pokoje.\
2025-01-27 23:31:45 +01:00
UWAGA. Zdarza się, że w część hoteli nie ma trzynastego piętra (może to
2025-05-15 15:13:29 +02:00
być inny numer piętra).\
Pętla w tym programie powinna pomijać iteracje na tym piętrze.\
2025-01-27 23:31:45 +01:00
Weryfikacja poprawności wprowadzanych danych: Nie akceptuj liczby
2025-05-15 15:13:29 +02:00
mniejszej niż 1 dla liczby pięter.\
2025-01-27 23:31:45 +01:00
Nie akceptuj liczby mniejszej niż 5 dla liczby pokoi na piętrze.
# Projekt 1
Napisz program, który pozwala użytkownikowi zagrać z komputerem w grę
2025-05-15 15:13:29 +02:00
kamień, papier, nożyce.\
Użytkownik powinien mieć możliwość rozegrania kilku rund.\
2025-01-27 23:31:45 +01:00
Program powinien działać następująco:
1. Kiedy program zostaje uruchomiony, generowana jest liczba losowa od
2025-05-15 15:13:29 +02:00
1 do 3. Jeśli tą liczbą\
2025-01-27 23:31:45 +01:00
jest 1, to oznacza, że komputer wybrał kamień. Jeśli tą liczbą jest
2025-05-15 15:13:29 +02:00
2, to komputer wybrał\
2025-01-27 23:31:45 +01:00
papier. Jeśli tą liczbą jest 3,to komputer wybrał nożyce (nie
2025-05-15 15:13:29 +02:00
wyświetlaj jeszcze wyboru\
komputera).\
2. Użytkownik wprowadza swój wybór: „kamień", „papier" albo „nożyce" na
klawiaturze.\
3. Wyświetlany jest wybór komputera.\
2025-01-27 23:31:45 +01:00
4. Zwycięzca jest wybierany na podstawie następujących zasad:
2025-05-15 15:13:29 +02:00
- Jeśli jeden gracz wybierze kamień, a drugi nożyce, to wygrywa
kamień\
(kamień tępi nożyce).\
- Jeśli jeden gracz wybierze nożyce, a drugi papier, to wygrywają
nożyce\
(nożyce przecinają papier).\
- Jeśli jeden gracz wybierze papier, a drugi kamień, to wygrywa
papier\
(papier owija kamień).\
- Jeśli obaj gracze wybiorą ten sam ruch, to rozgrywka musi zostać
powtórzona, aby\
wyłonić zwycięzcę.\
2025-01-27 23:31:45 +01:00
Program powinien być napisany z wykorzystaniem poznanych instrukcji
2025-05-15 15:13:29 +02:00
języka.\
2025-01-27 23:31:45 +01:00
Program można rozbudować, dodając nowe opcje lub dokonać innych zmian.
2025-05-15 15:13:29 +02:00
Należy wtedy dołączyć\
2025-01-27 23:31:45 +01:00
krótki opis programu.
[C++](./Projekt1/main.cpp)