Inicjalizacja repozytorium
This commit is contained in:
commit
e37cf6b784
|
@ -0,0 +1,6 @@
|
|||
*
|
||||
|
||||
!.gitignore
|
||||
!**/
|
||||
!*.pas
|
||||
.#*.pas
|
|
@ -0,0 +1,44 @@
|
|||
program rownanie_kwadratowe;
|
||||
var
|
||||
a,b,c : Double;
|
||||
x,x1,x2 : Double;
|
||||
Delta : Double;
|
||||
begin
|
||||
write('Podaj a: ');
|
||||
ReadLn(a);
|
||||
write('Podaj b: ');
|
||||
ReadLn(b);
|
||||
write('Podaj c: ');
|
||||
ReadLn(c);
|
||||
|
||||
|
||||
|
||||
if a=0 then
|
||||
begin
|
||||
x:=c/b;
|
||||
writeln('To jest rownanie liniowe');
|
||||
writeln(x:0:5); // Wypisze pięć miejsc po przecinku zamiast naukowej notacji
|
||||
end else
|
||||
begin
|
||||
Delta:=b*b-4*a*c;
|
||||
if Delta < 0 then
|
||||
writeln('Brak rozwiazan')
|
||||
else
|
||||
begin
|
||||
if Delta > 0 then
|
||||
begin
|
||||
x1:=(-b - Sqrt(Delta))/(2*a);
|
||||
x2:=(-b + Sqrt(Delta))/(2*a);
|
||||
writeln('Dwa pierwiastki');
|
||||
writeln(x1:0:5);
|
||||
writeln(x2:0:5);
|
||||
end else
|
||||
begin
|
||||
x:=b/(2*a);
|
||||
writeln('Jeden pierwiastek');
|
||||
writeln(x:0:5);
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
end.
|
|
@ -0,0 +1,37 @@
|
|||
program rok_przestepny;
|
||||
|
||||
function Czytaj_rok: Integer;
|
||||
var
|
||||
rok: Integer;
|
||||
begin
|
||||
write('Podaj rok: ');
|
||||
readln(rok);
|
||||
Czytaj_rok:=rok;
|
||||
end;
|
||||
|
||||
function Czy_przestepny(rok :Integer ): Boolean;
|
||||
begin
|
||||
Czy_przestepny:= ((rok mod 4 = 0) AND (NOT (rok mod 100 = 0)) ) OR (rok mod 400 = 0);
|
||||
end;
|
||||
|
||||
procedure Wypisz_czy_przestepny(rok : Integer; przestepny: Boolean );
|
||||
begin
|
||||
if przestepny then
|
||||
writeln('Rok ', rok, ' jest przestepny')
|
||||
else
|
||||
writeln('Rok ', rok, ' nie jest przestepny');
|
||||
end;
|
||||
|
||||
procedure Glowna_procedura;
|
||||
var
|
||||
rok : Integer;
|
||||
przestepny : Boolean;
|
||||
begin
|
||||
rok:= Czytaj_rok();
|
||||
przestepny:= Czy_przestepny(rok);
|
||||
Wypisz_czy_przestepny(rok,przestepny);
|
||||
end;
|
||||
|
||||
begin
|
||||
Glowna_procedura()
|
||||
end.
|
|
@ -0,0 +1,38 @@
|
|||
program suma_cyfr;
|
||||
function Czytaj_liczbe : Integer;
|
||||
var
|
||||
liczba : Integer;
|
||||
begin
|
||||
write('Podaj liczbe: ');
|
||||
readln(liczba);
|
||||
Czytaj_liczbe:=liczba;
|
||||
end;
|
||||
|
||||
function Suma_cyfr(liczba : Integer) : Integer;
|
||||
var suma : Integer;
|
||||
begin
|
||||
suma:=0;
|
||||
liczba:=abs(liczba);
|
||||
while liczba>0 do
|
||||
begin
|
||||
suma:=suma+(liczba mod 10);
|
||||
liczba:=trunc(liczba/10);
|
||||
end;
|
||||
Suma_cyfr:=suma;
|
||||
end;
|
||||
|
||||
procedure Wypisz_wynik(liczba : Integer; suma : Integer );
|
||||
begin
|
||||
writeln('Suma cyfr liczby ', liczba, ' to ', suma);
|
||||
end;
|
||||
|
||||
procedure Glowna_procedura;
|
||||
var liczba : Integer;
|
||||
begin
|
||||
liczba:=Czytaj_liczbe();
|
||||
Wypisz_wynik(liczba,Suma_cyfr(liczba));
|
||||
end;
|
||||
|
||||
begin
|
||||
Glowna_procedura();
|
||||
end.
|
|
@ -0,0 +1,53 @@
|
|||
program silnia;
|
||||
function Czytaj_liczbe: Int64;
|
||||
var
|
||||
liczba: Int64;
|
||||
begin
|
||||
Write('Podaj liczbę calkowita: ');
|
||||
ReadLn(liczba);
|
||||
Czytaj_liczbe := liczba;
|
||||
end;
|
||||
|
||||
function Silnia_rekurencyjna(n: Int64): Int64;
|
||||
begin
|
||||
if n = 0 then
|
||||
Silnia_rekurencyjna := 1
|
||||
else
|
||||
Silnia_rekurencyjna := n * Silnia_rekurencyjna(n - 1);
|
||||
end;
|
||||
|
||||
function Silnia_iteracyjna(n: Int64): Int64;
|
||||
var
|
||||
wynik, i: Int64;
|
||||
begin
|
||||
wynik := 1;
|
||||
for i := 1 to n do
|
||||
wynik := wynik * i;
|
||||
Silnia_iteracyjna := wynik;
|
||||
end;
|
||||
|
||||
procedure Wypisz_wyniki(wynikRek, wynikIter: Int64);
|
||||
begin
|
||||
WriteLn('Silnia rekurencyjna: ', wynikRek:10);
|
||||
WriteLn('Silnia iteracyjna: ', wynikIter:10);
|
||||
end;
|
||||
|
||||
procedure Glowna_procedura;
|
||||
var
|
||||
liczba, wynikRek, wynikIter: Int64;
|
||||
begin
|
||||
liczba := Czytaj_liczbe;
|
||||
if liczba < 0 then
|
||||
begin
|
||||
WriteLn('Silnia jest zdefiniowana tylko dla liczb nieujemnych.');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
wynikRek := Silnia_rekurencyjna(liczba);
|
||||
wynikIter := Silnia_iteracyjna(liczba);
|
||||
Wypisz_wyniki(wynikRek, wynikIter);
|
||||
end;
|
||||
|
||||
begin
|
||||
Glowna_procedura()
|
||||
end.
|
|
@ -0,0 +1,71 @@
|
|||
program silnia_czas;
|
||||
uses sysUtils;
|
||||
function Czytaj_liczbe: Int64;
|
||||
var
|
||||
liczba : Int64;
|
||||
begin
|
||||
Write('Podaj liczbe calkowita: ');
|
||||
ReadLn(liczba);
|
||||
Czytaj_liczbe := liczba;
|
||||
end;
|
||||
|
||||
function Silnia_rekurencyjna(n: Int64): Int64;
|
||||
begin
|
||||
if n = 0 then
|
||||
Silnia_rekurencyjna := 1
|
||||
else
|
||||
Silnia_rekurencyjna := n * Silnia_rekurencyjna(n - 1);
|
||||
end;
|
||||
|
||||
function Silnia_iteracyjna(n: Int64): Int64;
|
||||
var
|
||||
wynik, i : Int64;
|
||||
begin
|
||||
wynik := 1;
|
||||
for i := 1 to n do
|
||||
wynik := wynik * i;
|
||||
Silnia_iteracyjna := wynik;
|
||||
end;
|
||||
|
||||
procedure Wypisz_wyniki(liczba,ile,wynikRek, wynikIter : Int64; CzasI, CzasR : TdateTime);
|
||||
begin
|
||||
writeln('Podana liczba: ', liczba);
|
||||
writeln('Podana liczba iteracji', ile);
|
||||
writeln('Czas silni rekurencyjnej: ', CzasR:0:2, ' sekund');
|
||||
WriteLn('Silnia rekurencyjna: ', wynikRek:10);
|
||||
writeln('Czas silni iteracyjnej: ', CzasI:0:2, ' sekund');
|
||||
WriteLn('Silnia iteracyjna: ', wynikIter:10);
|
||||
end;
|
||||
|
||||
|
||||
procedure Glowna_procedura;
|
||||
var
|
||||
CzasI, CzasR : TdateTime;
|
||||
i : Int64;
|
||||
ile, liczba : Int64;
|
||||
wynikI, wynikR : Int64;
|
||||
begin
|
||||
liczba := Czytaj_liczbe();
|
||||
Write('Podaj liczbe iteracji: ');
|
||||
ReadLn(ile);
|
||||
CzasI := Time();
|
||||
for i := 0 to ile do
|
||||
wynikI := Silnia_iteracyjna(liczba);
|
||||
CzasI := Time()-CzasI;
|
||||
CzasI := CzasI*24*60*60;
|
||||
|
||||
|
||||
CzasR := Time();
|
||||
for i := 0 to ile do
|
||||
wynikR := Silnia_rekurencyjna(liczba);
|
||||
CzasR := Time()-CzasR;
|
||||
CzasR := CzasR*24*60*60;
|
||||
|
||||
|
||||
Wypisz_wyniki(liczba,ile,wynikR,wynikI,CzasI,CzasR);
|
||||
|
||||
end;
|
||||
|
||||
begin
|
||||
Glowna_procedura()
|
||||
end.
|
|
@ -0,0 +1,33 @@
|
|||
program suma_cyfr;
|
||||
function Czytaj_liczbe : Integer;
|
||||
var
|
||||
liczba : Integer;
|
||||
begin
|
||||
write('Podaj liczbe: ');
|
||||
readln(liczba);
|
||||
Czytaj_liczbe:=liczba;
|
||||
end;
|
||||
|
||||
function Suma_cyfr(liczba : Integer) : Integer;
|
||||
begin
|
||||
if liczba = 0 then
|
||||
Suma_cyfr:=0
|
||||
else
|
||||
Suma_cyfr:= (abs(liczba) mod 10) + Suma_cyfr(liczba div 10);
|
||||
end;
|
||||
|
||||
procedure Wypisz_wynik(liczba : Integer; suma : Integer );
|
||||
begin
|
||||
writeln('Suma cyfr liczby ', liczba, ' to ', suma);
|
||||
end;
|
||||
|
||||
procedure Glowna_procedura;
|
||||
var liczba : Integer;
|
||||
begin
|
||||
liczba:=Czytaj_liczbe();
|
||||
Wypisz_wynik(liczba,Suma_cyfr(liczba));
|
||||
end;
|
||||
|
||||
begin
|
||||
Glowna_procedura();
|
||||
end.
|
|
@ -0,0 +1,65 @@
|
|||
program potega;
|
||||
function potega_iter(a : Integer ;n : Integer ) : Integer;
|
||||
var
|
||||
wynik, i : Integer;
|
||||
begin
|
||||
wynik := 1;
|
||||
for i := 1 to n do
|
||||
wynik:= wynik*a;
|
||||
potega_iter:= wynik;
|
||||
end;
|
||||
|
||||
function potega_rek(a : Integer ;n : Integer ) :Integer;
|
||||
begin
|
||||
if n = 0 then
|
||||
potega_rek:= 1
|
||||
else
|
||||
potega_rek:= a * potega_rek(a,n-1);
|
||||
end;
|
||||
|
||||
|
||||
function potega_iter_kwr(a : Integer ;n : Integer ) : Integer;
|
||||
var
|
||||
wynik : Integer;
|
||||
begin
|
||||
wynik := 1;
|
||||
if n = 1 then
|
||||
wynik:=a;
|
||||
while n>1 do
|
||||
begin
|
||||
if n mod 2 = 1 then
|
||||
begin
|
||||
wynik:=a*wynik;
|
||||
n:=n-1;
|
||||
end
|
||||
else
|
||||
begin
|
||||
wynik:=a*a*wynik;
|
||||
n:=n div 2;
|
||||
end;
|
||||
end;
|
||||
potega_iter_kwr:=wynik;
|
||||
end;
|
||||
|
||||
function potega_rek_kwr(a : Integer ;n : Integer ) :Integer;
|
||||
var
|
||||
wynik : Integer;
|
||||
begin
|
||||
wynik:=0;
|
||||
if n = 0 then
|
||||
potega_rek_kwr:= 1
|
||||
else if n mod 2 = 1 then
|
||||
potega_rek_kwr:= a * potega_rek_kwr(a,n-1)
|
||||
else
|
||||
begin
|
||||
wynik := potega_rek_kwr(a, n div 2);
|
||||
potega_rek_kwr:=wynik*wynik;
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
WriteLn('Potega Iteracyjna: ', potega_iter(2,3));
|
||||
WriteLn('Potega Rekurencyjna: ', potega_rek(2,3));
|
||||
WriteLn('Potega Iteracyjna Kwadratowa: ', potega_iter_kwr(2,3));
|
||||
WriteLn('Potega Rekurencyjna Kwadratowa: ', potega_rek_kwr(2,3));
|
||||
end.
|
|
@ -0,0 +1,20 @@
|
|||
import math;
|
||||
|
||||
a = float(input("Podaj a: "))
|
||||
b = float(input("Podaj b: "))
|
||||
c = float(input("Podaj c: "))
|
||||
|
||||
if(a==0):
|
||||
x=c/b
|
||||
print("To jest rownanie liniowe\n", x)
|
||||
else:
|
||||
Delta=b*b-4*a*c
|
||||
if (Delta < 0):
|
||||
print("Brak rozwiazan")
|
||||
elif (Delta > 0):
|
||||
x1=(-b - math.sqrt(Delta))/(2*a)
|
||||
x2=(-b + math.sqrt(Delta))/(2*a)
|
||||
print('Dwa pierwiastki\n', x1,'\n', x2)
|
||||
else:
|
||||
x=b/(2*a)
|
||||
print('Jeden pierwiastek\n',x);
|
|
@ -0,0 +1,15 @@
|
|||
def Czytaj_rok():
|
||||
rok = int(input("Podaj rok: "))
|
||||
return rok;
|
||||
def Czy_przestepny(rok):
|
||||
return ((rok%4==0) and not (rok%100==0)) or (rok % 400 == 0)
|
||||
def Wypisz_czy_przestepny(rok,przestepny):
|
||||
if(przestepny):
|
||||
print("Rok", rok, "jest przestepny")
|
||||
else:
|
||||
print("Rok", rok, "nie jest przestepny")
|
||||
def Glowna_procedura():
|
||||
rok = Czytaj_rok()
|
||||
Wypisz_czy_przestepny(rok,Czy_przestepny(rok))
|
||||
|
||||
Glowna_procedura()
|
|
@ -0,0 +1,16 @@
|
|||
from math import trunc
|
||||
def Czytaj_liczbe():
|
||||
return int(input("Podaj liczbe: "))
|
||||
def Suma_cyfr(liczba):
|
||||
suma=0
|
||||
liczba=abs(liczba)
|
||||
while(liczba>0):
|
||||
suma=suma+(liczba%10)
|
||||
liczba=int(trunc(liczba/10))
|
||||
return suma
|
||||
def Wypisz_wynik(liczba,suma):
|
||||
print("Suma cyfr liczby",liczba,"to",suma)
|
||||
def Glowna_procedura():
|
||||
liczba=Czytaj_liczbe()
|
||||
Wypisz_wynik(liczba,Suma_cyfr(liczba))
|
||||
Glowna_procedura()
|
|
@ -0,0 +1,40 @@
|
|||
from datetime import datetime
|
||||
def Czytaj_liczbe():
|
||||
return int(input("Podaj liczbe calkowita: "))
|
||||
def Silnia_rekurencyjna(n):
|
||||
if(n==0):
|
||||
return 1
|
||||
else:
|
||||
return n * Silnia_rekurencyjna(n-1);
|
||||
def Silnia_iteracyjna(n):
|
||||
wynik = 1
|
||||
for i in range(1,n+1):
|
||||
wynik = wynik*i
|
||||
return wynik
|
||||
def Wypisz_wynikli(liczba,ile,wynikRek,wynikIter,CzasI,CzasR):
|
||||
print("Podana liczba:", liczba);
|
||||
print("Podana liczba iteracji", ile);
|
||||
print("Czas silni rekurencyjnej:", CzasR, 'sekund');
|
||||
print("Silnia rekurencyjna:", wynikRek);
|
||||
print("Czas silni iteracyjnej:", CzasI, 'sekund');
|
||||
print("Silnia iteracyjna:", wynikIter);
|
||||
def Glowna_procedura():
|
||||
wynikR = 0
|
||||
wynikI = 0
|
||||
liczba = Czytaj_liczbe()
|
||||
ile = int(input("Podaj liczbe iteracji: "))
|
||||
CzasI = datetime.today()
|
||||
for i in range(0,ile+1):
|
||||
wynikI = Silnia_iteracyjna(liczba)
|
||||
CzasI = datetime.today() - CzasI
|
||||
CzasI = CzasI.seconds+CzasI.microseconds*0.000001
|
||||
|
||||
CzasR = datetime.today()
|
||||
for i in range(0,ile+1):
|
||||
wynikR = Silnia_rekurencyjna(liczba)
|
||||
CzasR = datetime.today() - CzasR
|
||||
CzasR = CzasR.seconds+CzasR.microseconds*0.000001
|
||||
|
||||
Wypisz_wynikli(liczba,ile,wynikR,wynikI,CzasI,CzasR)
|
||||
|
||||
Glowna_procedura()
|
|
@ -0,0 +1,75 @@
|
|||
---
|
||||
author: Mateusz Słodkowicz
|
||||
lang: pl
|
||||
title: Algorytmy i Struktury Danych
|
||||
---
|
||||
|
||||
Zadania/Ćwiczenia z przedmiotu Algorytmy i Struktury Danych.
|
||||
|
||||
# Ćwiczenie 2 - Zadanie 1
|
||||
|
||||
Program na rozwiązywanie równania kwadratowego.
|
||||
|
||||
**Wymagania na program**:
|
||||
|
||||
1. Aplikacja konsolowa (prosty program)
|
||||
2. Na wejściu programu należy podać wartości a,b,c
|
||||
3. Na wyjściu program wypisuje komunikaty, opisane algorytmem
|
||||
|
||||
[Pascal](./Pascal/AiSD5_C2%20Ćwiczenie%202/zad1_rownanie_kwadratowe.pas)
|
||||
[Python](./Python/AiSD5_C2%20Ćwiczenie%202/zad1_rownanie_kwadratowe.py)
|
||||
|
||||
# Ćwiczenie 2 - Zadanie 2
|
||||
|
||||
**Definicja**
|
||||
Rok przestępny to taki, który spełnia następujące warunki:
|
||||
|
||||
- jest podzielny przez 4 i niepodzielny przez 100
|
||||
|
||||
lub
|
||||
|
||||
- jest podzielny przez 400
|
||||
|
||||
**Wymagania na program**:
|
||||
|
||||
1. Aplikacja konsolowa (prosty program)
|
||||
2. Na wejściu programu należy podać liczbę określającą numer roku
|
||||
3. Na wyjściu program wypisuje komunikat, czy podany rok jest
|
||||
przestępny.
|
||||
4. Podziel program na cztery części:
|
||||
1. Funkcja typu całkowitego czytająca numer roku podany przez
|
||||
użytkownika i zwracająca odczytaną liczbę
|
||||
2. Funkcja typu logicznego, której argumentem jest liczba całkowita
|
||||
sprawdzająca, czy rok jest przestępny
|
||||
3. Procedura, której argumentami są: numer roku i wartość logiczna,
|
||||
wypisująca na konsoli, czy rok jest przestępny
|
||||
4. Procedura zawierająca w sobie wywołania pozostałych funkcji i
|
||||
procedur, która jest wywoływana z programu głównego.
|
||||
|
||||
[Pascal](./Pascal/AiSD5_C2%20Ćwiczenie%202/zad2_rok_przestepny.pas)
|
||||
[Python](./Python/AiSD5_C2%20Ćwiczenie%202/zad2_rok_przestepny.py)
|
||||
|
||||
# Ćwiczenie 2 - Zadanie 3
|
||||
|
||||
Obliczanie sumy cyfr
|
||||
|
||||
**Wymagania na algorytm**:
|
||||
|
||||
1. Algorytm iteracyjny (nie rekurencyjny)
|
||||
|
||||
**Wymagania na program**:
|
||||
|
||||
1. Aplikacja konsolowa (prosty program)
|
||||
2. Na wejściu programu należy podać liczbę całkowitą.
|
||||
3. Na wyjściu program wypisuje wynik obliczeń.
|
||||
4. Podziel program na cztery części:
|
||||
1. Funkcja typu całkowitego czytająca liczbę całkowitą
|
||||
2. Funkcja typu całkowitego, której argumentem jest liczba
|
||||
całkowita, a wynikiem suma cyfr tej liczby
|
||||
3. Procedura wypisująca wynik obliczeń, której argumentami są:
|
||||
liczba całkowita i suma cyfr tej liczby
|
||||
4. Procedura zawierająca w sobie wywołania pozostałych funkcji i
|
||||
procedur, która jest wywoływana z programu głównego.
|
||||
|
||||
[Pascal](./Pascal/AiSD5_C2%20Ćwiczenie%202/zad3_suma_cyfr.pas)
|
||||
[Python](./Python/AiSD5_C2%20Ćwiczenie%202/zad3_suma_cyfr.py)
|
|
@ -0,0 +1,8 @@
|
|||
*
|
||||
|
||||
!.gitignore
|
||||
!**/
|
||||
!*.cpp
|
||||
!*.md
|
||||
.#*.cpp
|
||||
.#*.md
|
|
@ -0,0 +1,214 @@
|
|||
/*
|
||||
Autor: Mateusz Słodkowicz
|
||||
Grupa: D3
|
||||
Numer Indeksu: 167675
|
||||
|
||||
Opis: Gra w Papier, Kamień, Nożyce.
|
||||
Program zapyta do ilu wygranych chcesz zagrać.
|
||||
Remis nie liczy się jako wygrana bądź przegrana.
|
||||
Gra trwa do uzyskania przez kogoś wyniku podanego na początku, po zakończeniu gra wypisze kto wygrał "mecz"
|
||||
oraz umożliwia rozpoczęcię kolejnego "meczu".
|
||||
Aby zakończyć program należy przy wyborze "do ilu" podać zero.
|
||||
|
||||
Plik źródłowy powinien być zapisany z kodowaniem UTF-8.
|
||||
*/
|
||||
|
||||
#include <chrono>
|
||||
#include <iostream>
|
||||
#include <random>
|
||||
#include <string>
|
||||
|
||||
#ifdef _WIN32 // Dodatkowe nagłówki dla windows'a
|
||||
#include <cstdlib>
|
||||
#include <windows.h>
|
||||
// Nieco jaśniejszy niż domyślny biały
|
||||
#define DEFAULT_COLOR (FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY)
|
||||
#endif
|
||||
|
||||
void wypiszCzerwony(std::string tekst)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // "Uchwyt" wyjścia konsoli
|
||||
std::cout << std::flush; // Flush aby przypadkiem program nie zmienił koloru poprzedniego tekstu
|
||||
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_INTENSITY); // Ustawienie czerwonego koloru
|
||||
std::cout << tekst << std::flush; // Flush aby program na pewno wypisał tekst przed ustawienie domyślnego koloru
|
||||
|
||||
SetConsoleTextAttribute(hConsole, DEFAULT_COLOR);
|
||||
|
||||
#else
|
||||
std::cout << "\033[31m" << tekst << "\033[0m";
|
||||
#endif
|
||||
}
|
||||
void wypiszZielony(std::string tekst)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
std::cout << std::flush;
|
||||
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
|
||||
std::cout << tekst << std::flush;
|
||||
SetConsoleTextAttribute(hConsole, DEFAULT_COLOR);
|
||||
#else
|
||||
std::cout << "\033[32m" << tekst << "\033[0m";
|
||||
#endif
|
||||
}
|
||||
|
||||
void czyscEkran()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
system("cls"); // Wywołanie "cls" dla wyczyczenia ekranu konsoli na windowsie
|
||||
#else
|
||||
std::cout << "\033[2J\033[1;1H"; // Sekwencja czyszczenia dla terminala ANSI
|
||||
#endif
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
SetConsoleOutputCP(CP_UTF8); // Ustawienie kodowania UTF-8 dla wyjścia konsoli, pozwala wyświetlić polskie znaki.
|
||||
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
SetConsoleTextAttribute(hConsole, DEFAULT_COLOR);
|
||||
#endif
|
||||
// Generator liczb
|
||||
auto seed = std::chrono::system_clock::now().time_since_epoch().count(); // większa dokładność czasu niż time(0)
|
||||
std::mt19937 rng(seed); // Generator licz losowych
|
||||
std::uniform_int_distribution<char> dist('1', '3'); // Zakres liczb (znaków) losowych
|
||||
// Zmienne
|
||||
unsigned int wybor = 0;
|
||||
unsigned int wygraneGracza = 0;
|
||||
unsigned int wygraneKomputera = 0;
|
||||
unsigned char ostatniaRunda = 0;
|
||||
unsigned char ostatniMecz = 0;
|
||||
|
||||
char gracz = 0, komputer = 0;
|
||||
|
||||
// Główna pętla gry
|
||||
while (true)
|
||||
{
|
||||
czyscEkran();
|
||||
// Wypisanie wyniku ostatniego meczu
|
||||
if (ostatniMecz != 0)
|
||||
std::cout << "Ostatni mecz: ";
|
||||
if (ostatniMecz == 1)
|
||||
wypiszZielony("Wygrana gracza\n");
|
||||
else if (ostatniMecz == 2)
|
||||
wypiszCzerwony("Wygrana komputera\n");
|
||||
|
||||
// Reset zmiennych
|
||||
wygraneKomputera = 0;
|
||||
wygraneGracza = 0;
|
||||
|
||||
ostatniaRunda = 0;
|
||||
ostatniMecz = 0;
|
||||
|
||||
wybor = 0;
|
||||
// Wybór do ilu wygranych
|
||||
std::cout << "Do ilu wygranych chcesz zagrać?\n"
|
||||
"Wprowadź 0 aby wyjść z programu\n"
|
||||
"Ile: ";
|
||||
|
||||
while (!(std::cin >> wybor))
|
||||
{
|
||||
std::cin.clear();
|
||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
||||
|
||||
wypiszCzerwony("Błąd, wprowadź jeszcze raz.\n");
|
||||
std::cout << "Ile: ";
|
||||
}
|
||||
if (!wybor)
|
||||
break;
|
||||
|
||||
// Pętla do czasu wygranej gracza lub komputera
|
||||
while (wygraneGracza != wybor && wygraneKomputera != wybor)
|
||||
{
|
||||
czyscEkran();
|
||||
gracz = 0;
|
||||
komputer = dist(rng);
|
||||
// Wypisanie wyniku ostatniej rundy
|
||||
if (ostatniaRunda != 0)
|
||||
std::cout << "Ostatnia runda: ";
|
||||
if (ostatniaRunda == 1)
|
||||
wypiszZielony("Wygrana gracza\n");
|
||||
else if (ostatniaRunda == 2)
|
||||
wypiszCzerwony("Wygrana komputera\n");
|
||||
else if (ostatniaRunda == 3)
|
||||
std::cout << "Remis\n";
|
||||
|
||||
// Wypisanie danych aktualnego meczu
|
||||
std::cout << "Gra do: " << wybor << "\n\n"
|
||||
<< "GRACZ ";
|
||||
wypiszZielony(std::to_string(wygraneGracza));
|
||||
std::cout << " - ";
|
||||
wypiszCzerwony(std::to_string(wygraneKomputera));
|
||||
std::cout << " KOMPUTER\n\n";
|
||||
|
||||
// Menu wyboru
|
||||
std::cout << "1. Papier\n"
|
||||
"2. Kamień\n"
|
||||
"3. Nożyce\n";
|
||||
|
||||
while (gracz < '1' || gracz > '3')
|
||||
{
|
||||
std::cout << "Wybór: ";
|
||||
while (!(std::cin >> gracz))
|
||||
{
|
||||
std::cin.clear();
|
||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
||||
}
|
||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
||||
}
|
||||
// Remis
|
||||
if (gracz == komputer)
|
||||
ostatniaRunda = 3;
|
||||
// Switch z wyborem gracza, porównanie do komputera
|
||||
else
|
||||
switch (gracz)
|
||||
{
|
||||
case '1': // Gracz wybrał papier
|
||||
if (komputer == '2') // Komputer wybrał kamień
|
||||
{
|
||||
++wygraneGracza;
|
||||
ostatniaRunda = 1;
|
||||
}
|
||||
else if (komputer == '3') // Komputer wybrał nożyce
|
||||
{
|
||||
++wygraneKomputera;
|
||||
ostatniaRunda = 2;
|
||||
}
|
||||
break;
|
||||
case '2': // Gracz wybrał kamień
|
||||
if (komputer == '3') // Komputer wybrał nożyce
|
||||
{
|
||||
++wygraneGracza;
|
||||
ostatniaRunda = 1;
|
||||
}
|
||||
else if (komputer == '1') // Komputer wybrał papier
|
||||
{
|
||||
++wygraneKomputera;
|
||||
ostatniaRunda = 2;
|
||||
}
|
||||
break;
|
||||
case '3': // Gracz wybrał nożyce
|
||||
if (komputer == '1') // Komputer wybrał papier
|
||||
{
|
||||
++wygraneGracza;
|
||||
ostatniaRunda = 1;
|
||||
}
|
||||
else if (komputer == '2') // Komputer wybrał kamień
|
||||
{
|
||||
++wygraneKomputera;
|
||||
ostatniaRunda = 2;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Ustawienie wyniku meczu
|
||||
if (wygraneGracza == wybor)
|
||||
ostatniMecz = 1;
|
||||
else
|
||||
ostatniMecz = 2;
|
||||
};
|
||||
czyscEkran();
|
||||
std::cout << "Dziękujemy za grę!";
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,249 @@
|
|||
---
|
||||
author: Mateusz Słodkowicz
|
||||
lang: pl
|
||||
title: Podstawy Programowania I
|
||||
---
|
||||
|
||||
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
|
||||
zapisanych do klasy.
|
||||
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.
|
||||
Reszta trafia do
|
||||
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
|
||||
dorosłych. (Cena biletu dla
|
||||
dorosłych wynosi 10 zł, a dla dziecka 6 zł). Wyświetlony powinien zostać
|
||||
komunikat podobny do
|
||||
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ę
|
||||
tych liczb, ich średnią
|
||||
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
|
||||
oznaczono całą długość drogi
|
||||
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.
|
||||
Wyniki przeliczyć na godziny,
|
||||
minuty, sekundy.
|
||||
Wczytać długość drogi d, wyświetlić wyniki.
|
||||
|
||||
[C++](./Zadanie%201.1/zadanie4.cpp)
|
||||
|
||||
# Zadania 2
|
||||
|
||||
Uwagi:
|
||||
|
||||
- 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<sub>PI</sub> należy dołączyć bibliotekę matematyczną
|
||||
\#include \<cmath\>
|
||||
|
||||
[C++](./Zadanie%201.2/zadanie.cpp)
|
||||
|
||||
## Zadanie 1
|
||||
|
||||
Wczytać dwie liczby typu całkowitego (x, y) i wypisać, która liczba jest
|
||||
większa a może są takie same.
|
||||
Sprawdzić czy x jest liczbą nieparzystą. Wypisać odpowiedni komunikat.
|
||||
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}
|
||||
$$
|
||||
|
||||
Dane: x – typu rzeczywistego
|
||||
|
||||
## Zadanie 3
|
||||
|
||||
Napisać program pozwalający obliczyć
|
||||
|
||||
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ść
|
||||
stożka)
|
||||
|
||||
W programie należy użyć struktury wielokrotnego wyboru switch.
|
||||
Obliczoną wartość wypisać na ekranie.
|
||||
|
||||
## Zadanie 4
|
||||
|
||||
Firma kurierska pobiera opłaty zgodnie z poniższym cennikiem:
|
||||
|
||||
| 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 |
|
||||
|
||||
Napisz program, który prosi o wpisanie wagi paczki i odległości, jaką
|
||||
musi przebyć przesyłka, a następnie wyświetli cenę.
|
||||
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:
|
||||
|
||||
- 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.
|
||||
|
||||
[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
|
||||
|
||||
| | 1 | 2 | 3 |
|
||||
|-----|-----|-----|-----|
|
||||
| 1 | 1 | 2 | 3 |
|
||||
| 2 | 2 | 4 | 6 |
|
||||
| 3 | 3 | 6 | 9 |
|
||||
|
||||
n – należy wczytać, n \<1, 10\>.
|
||||
W tym przypadku n = 3.
|
||||
|
||||
## Zadanie 2
|
||||
|
||||
Funkcja, która oblicza i zwraca średnią kilku liczb całkowitych przy
|
||||
założeniu, że ostatnia wczytana wartość
|
||||
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
|
||||
|
||||
Ten punkt powinien działać w pętli, bez funkcji
|
||||
Napisz program obliczający obłożenie hotelu. Program powinien
|
||||
wystartować, pytając użytkownika o
|
||||
nazwę hotelu i liczbę pięter w hotelu. Pętla powinna iterować raz na
|
||||
każde piętro. W każdej iteracji pętla
|
||||
powinna zapytać użytkownika o liczbę pokoi na piętrze i liczbę pokoi
|
||||
zajętych.
|
||||
Po wszystkich iteracjach program powinien wyświetlić, ile pokoi ma
|
||||
hotel, ile z nich jest zajętych, a ile wolnych oraz procent, jaki
|
||||
stanowią zajęte pokoje.
|
||||
UWAGA. Zdarza się, że w część hoteli nie ma trzynastego piętra (może to
|
||||
być inny numer piętra).
|
||||
Pętla w tym programie powinna pomijać iteracje na tym piętrze.
|
||||
Weryfikacja poprawności wprowadzanych danych: Nie akceptuj liczby
|
||||
mniejszej niż 1 dla liczby pięter.
|
||||
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ę
|
||||
kamień, papier, nożyce.
|
||||
Użytkownik powinien mieć możliwość rozegrania kilku rund.
|
||||
Program powinien działać następująco:
|
||||
|
||||
1. Kiedy program zostaje uruchomiony, generowana jest liczba losowa od
|
||||
1 do 3. Jeśli tą liczbą
|
||||
jest 1, to oznacza, że komputer wybrał kamień. Jeśli tą liczbą jest
|
||||
2, to komputer wybrał
|
||||
papier. Jeśli tą liczbą jest 3,to komputer wybrał nożyce (nie
|
||||
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.
|
||||
4. Zwycięzca jest wybierany na podstawie następujących zasad:
|
||||
- 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ę.
|
||||
|
||||
Program powinien być napisany z wykorzystaniem poznanych instrukcji
|
||||
języka.
|
||||
Program można rozbudować, dodając nowe opcje lub dokonać innych zmian.
|
||||
Należy wtedy dołączyć
|
||||
krótki opis programu.
|
||||
|
||||
[C++](./Projekt1/main.cpp)
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
Autor: Mateusz Slodkowicz
|
||||
Grupa: D3
|
||||
Numer Indeksu: 167675
|
||||
|
||||
Opis: Program wczyta liczbe dziewczat i chlopcow w klasie a nastepnie
|
||||
wypisze ich wartosc procentowa w klasie.
|
||||
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
unsigned int dziewczyny = 0;
|
||||
unsigned int chlopcy = 0;
|
||||
|
||||
std::cout << "Podaj liczbe dziewczat: ";
|
||||
std::cin >> dziewczyny;
|
||||
std::cout << "Podaj liczbe chlopcow: ";
|
||||
std::cin >> chlopcy;
|
||||
|
||||
unsigned int razem = dziewczyny+chlopcy;
|
||||
if(razem>0)
|
||||
{
|
||||
std::cout << "\nProcent chlopcow: " << (100*((float)chlopcy/razem)) << "%";
|
||||
std::cout << "\nProcent dziewczat: " << (100*((float)dziewczyny/razem)) << "%" << std::endl;
|
||||
}
|
||||
else
|
||||
std::cout << "Brak osob w klasie" << std::endl;
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
Autor: Mateusz Slodkowicz
|
||||
Grupa: D3
|
||||
Numer Indeksu: 167675
|
||||
|
||||
Opis: Program wczyta liczbe biletow dla dzieci i doroslych a nastepnie
|
||||
wypisze wyniki sprzedazy.
|
||||
*/
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
unsigned int dzieci = 0;
|
||||
unsigned int dorosli = 0;
|
||||
|
||||
const float dlaKina=0.20;
|
||||
|
||||
std::cout << "Podaj liczbe biletow dzieci: ";
|
||||
std::cin >> dzieci;
|
||||
std::cout << "Podaj liczbe biletow doroslych: ";
|
||||
std::cin >> dorosli;
|
||||
|
||||
|
||||
float brutto = (dzieci*6.0) + (dorosli*10.0);
|
||||
float netto = (brutto*dlaKina);
|
||||
float dystrybutor = brutto - netto;
|
||||
|
||||
//Ustawienie 2 miejsc po przecinku
|
||||
std::cout << std::fixed;
|
||||
std::cout << std::setprecision(2);
|
||||
|
||||
std::cout << "\nSprzedane bilety dla doroslych: " << dorosli << "\n";
|
||||
std::cout << "Sprzedane bilety dla dzieci: " << dzieci << "\n";
|
||||
std::cout << "Zysk kasy brutto: " << brutto << "zl\n";
|
||||
std::cout << "Zysk kasy netto: " << netto << "zl\n";
|
||||
std::cout << "Kwota zaplacona dystrybutorowi: " << dystrybutor << "zl" << std::endl;
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
Autor: Mateusz Slodkowicz
|
||||
Grupa: D3
|
||||
Numer Indeksu: 167675
|
||||
|
||||
Opis: Program wczyta 3 zmienne i wypisze sume, srednia i srednia harmoniczna.
|
||||
*/
|
||||
#include <iostream>
|
||||
|
||||
int main()
|
||||
{
|
||||
int a = 0;
|
||||
int b = 0;
|
||||
int c = 0;
|
||||
|
||||
std::cout << "Podaj pierwsza wartosc: ";
|
||||
std::cin >> a;
|
||||
std::cout << "Podaj druga wartosc: ";
|
||||
std::cin >> b;
|
||||
std::cout << "Podaj trzecia wartosc: ";
|
||||
std::cin >> c;
|
||||
|
||||
std::cout << "\nSuma: " << a+b+c << "\n";
|
||||
std::cout << "Srednia arytmetyczna: " << (float)(a+b+c)/3.0f << "\n";
|
||||
std::cout << "Srednia harmoniczna: " << 3.0/(1.0/a + 1.0/b +1.0/c) << "\n";
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
Autor: Mateusz Slodkowicz
|
||||
Grupa: D3
|
||||
Numer Indeksu: 167675
|
||||
|
||||
Opis: Program wczyta dlugosc trasy rowerzysty w metrach oraz
|
||||
wypisze w jakim czasie przebyl odcinek trasy na danym etapie.
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int main()
|
||||
{
|
||||
float d = 0;
|
||||
std::cout << "Podaj odleglosc trasy w metrach: ";
|
||||
std::cin >> d;
|
||||
|
||||
float czas = ((d * 0.2f) / 10) + ((d * 0.5f) / 5) +((d * 0.3f) / 10);
|
||||
int godziny = czas/3600;
|
||||
int minuty = (czas - godziny*3600)/60;
|
||||
int sekundy = (czas - godziny*3600 - minuty*60);
|
||||
std::cout << "Trasa przejechana w:\n";
|
||||
std::cout << godziny <<" godz. "
|
||||
<< minuty <<" min. "
|
||||
<< sekundy << " sek." <<std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,191 @@
|
|||
/*
|
||||
Autor: Mateusz Slodkowicz
|
||||
Grupa: D3
|
||||
Numer Indeksu: 167675
|
||||
*/
|
||||
|
||||
#include <cmath>
|
||||
#include <iomanip>
|
||||
#include <iostream>
|
||||
|
||||
// ===========
|
||||
// ZADANIE 1
|
||||
// ===========
|
||||
void zadanie1()
|
||||
{
|
||||
std::cout << "Zadanie 1" << std::endl;
|
||||
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
|
||||
std::cout << "Podaj x: ";
|
||||
std::cin >> x;
|
||||
if (x == 0)
|
||||
{
|
||||
std::cout << "x jest rowne 0, nie mozna wykonac obliczen" << std::endl;
|
||||
return;
|
||||
}
|
||||
std::cout << "Podaj y: ";
|
||||
std::cin >> y;
|
||||
|
||||
if (x > y)
|
||||
std::cout << "x jest wieksze od y\n";
|
||||
else if (x == y)
|
||||
std::cout << "x jest rowne y\n";
|
||||
else
|
||||
std::cout << "x yest mniejsze od y\n";
|
||||
|
||||
std::cout << ((x % 2) ? "x jest nieparzyste" : "x jest parzyste") << std::endl;
|
||||
}
|
||||
|
||||
// ===========
|
||||
// ZADANIE 2
|
||||
// ===========
|
||||
void zadanie2()
|
||||
{
|
||||
std::cout << "\nZadanie 2" << std::endl;
|
||||
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
|
||||
std::cout << "Podaj x: ";
|
||||
std::cin >> x;
|
||||
|
||||
if (x >= -10.0 && x <= 0.0)
|
||||
y = (3.0 / 4.0) * (x * x * x) + (7.0 / 8.0) * x;
|
||||
else if (x > 0.0 && x <= 4.0)
|
||||
y = 1.0 / (sin(x) + 3.0);
|
||||
else
|
||||
y = (-2.0 * x) / 3.0;
|
||||
|
||||
std::cout << "y = " << y << std::endl;
|
||||
}
|
||||
|
||||
// ===========
|
||||
// ZADANIE 3
|
||||
// ===========
|
||||
void zadanie3()
|
||||
{
|
||||
std::cout << "\nZadanie 3" << std::endl;
|
||||
|
||||
unsigned short wybor = 0;
|
||||
double R = 0;
|
||||
double h = 0;
|
||||
|
||||
std::cout << "Co chcesz obliczyc?\n"
|
||||
"1. Objetosc kuli\n"
|
||||
"2. Objetosc walca\n"
|
||||
"3. Objetosc stozka\n";
|
||||
|
||||
while (!(wybor >= 1 && wybor <= 3)) // Zapetlenie az nie zostanie wybrana odpowiedz z zakresu 1-3
|
||||
{
|
||||
std::cout << "Twoj wybor: ";
|
||||
std::cin >> wybor;
|
||||
}
|
||||
|
||||
switch (wybor)
|
||||
{
|
||||
case 1:
|
||||
|
||||
std::cout << "Podaj promien kuli: ";
|
||||
std::cin >> R;
|
||||
if (R <= 0)
|
||||
std::cout << "Promien musi byc wiekszy od zera!" << std::endl;
|
||||
else
|
||||
std::cout << "Objetosc kuli wynosi: " << ((4.0 / 3.0) * M_PI * R * R * R) << std::endl;
|
||||
break;
|
||||
case 2:
|
||||
|
||||
std::cout << "Podaj promien podstawy walca: ";
|
||||
std::cin >> R;
|
||||
if (R <= 0)
|
||||
{
|
||||
std::cout << "Promien musi byc wiekszy od zera!" << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
std::cout << "Podaj wysokosc walca: ";
|
||||
std::cin >> h;
|
||||
if (h <= 0)
|
||||
{
|
||||
std::cout << "Wysokosc musi byc wieksza od zera!" << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
std::cout << "Objetosc walca: " << (M_PI * R * R * h) << std::endl;
|
||||
break;
|
||||
case 3:
|
||||
|
||||
std::cout << "Podaj promien podstawy stozka: ";
|
||||
std::cin >> R;
|
||||
if (R <= 0)
|
||||
{
|
||||
std::cout << "Promien musi byc wiekszy od zera!" << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
std::cout << "Podaj wysokosc stozka: ";
|
||||
std::cin >> h;
|
||||
if (h <= 0)
|
||||
{
|
||||
std::cout << "Wysokosc musi byc wieksza od zera!" << std::endl;
|
||||
break;
|
||||
}
|
||||
|
||||
std::cout << "Objetosc stozka: " << ((1.0 / 3.0) * M_PI * R * R * h) << std::endl;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// ===========
|
||||
// ZADANIE 4
|
||||
// ===========
|
||||
void zadanie4()
|
||||
{
|
||||
std::cout << "\nZadanie 4" << std::endl;
|
||||
|
||||
double waga = 0;
|
||||
double odleglosc = 0;
|
||||
|
||||
std::cout << "Podaj odleglosc w kilometrach: ";
|
||||
std::cin >> odleglosc;
|
||||
if (odleglosc <= 0)
|
||||
{
|
||||
// Nie ma podanej minimalnej odleglosci wiec zakladam ze musi byc jedynie wieksza od zera
|
||||
std::cout << "Odleglosc musi byc wieksza od zera!" << std::endl;
|
||||
return;
|
||||
}
|
||||
const int ILE = (ceil(odleglosc / 100.0)); // Zwiekszenie mnoznika co 100 km
|
||||
|
||||
std::cout << "Podaj wage paczki w kilogramach w zakresie 0-20: ";
|
||||
std::cin >> waga;
|
||||
|
||||
std::cout << std::fixed << std::setprecision(2);
|
||||
if (waga > 20.0 || waga <= 0)
|
||||
{
|
||||
std::cout << "Waga z poza zakresu!" << std::endl;
|
||||
return;
|
||||
}
|
||||
else if (waga <= 2.0)
|
||||
std::cout << "Cena: " << (5.30) * ILE << "zl" << std::endl;
|
||||
else if (waga <= 6.0)
|
||||
std::cout << "Cena: " << (6.20) * ILE << "zl" << std::endl;
|
||||
else if (waga <= 10.0)
|
||||
std::cout << "Cena: " << (7.70) * ILE << "zl" << std::endl;
|
||||
else if (waga <= 20.0)
|
||||
std::cout << "Cena: " << (10.80) * ILE << "zl" << std::endl;
|
||||
}
|
||||
|
||||
// ======
|
||||
// MAIN
|
||||
// ======
|
||||
int main()
|
||||
{
|
||||
zadanie1();
|
||||
zadanie2();
|
||||
zadanie3();
|
||||
zadanie4();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,186 @@
|
|||
/*
|
||||
Autor: Mateusz Słodkowicz
|
||||
Grupa: D3
|
||||
Numer Indeksu: 167675
|
||||
|
||||
*/
|
||||
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
|
||||
void wypisz_tabliczke(const unsigned int);
|
||||
double srednia(const int, const unsigned int);
|
||||
double suma(const int);
|
||||
|
||||
// =========
|
||||
// MAIN
|
||||
// =========
|
||||
|
||||
int main()
|
||||
{
|
||||
// Zadania w main'ie podzieliłem na mniejsze scopy aby mieć możliwość zwijania w edytorze.
|
||||
|
||||
// Zadanie 1
|
||||
{
|
||||
unsigned int n = 0;
|
||||
std::cout << "Zadanie 1\n";
|
||||
while (n < 1 || n > 10)
|
||||
{
|
||||
std::cout << "Podaj wielkosc tabliczki: ";
|
||||
std::cin >> n;
|
||||
}
|
||||
wypisz_tabliczke(n);
|
||||
}
|
||||
|
||||
// Zadanie 2
|
||||
// W zadaniu nie widzę żeby było określone czy wczytywanie wartości ma być w funkcji czy w main'ie więc założyłem że
|
||||
// w mainie, funkcja jedynie wylicza średnią
|
||||
{
|
||||
std::cout << "\nZadanie 2\n"
|
||||
"Podawaj liczby do wyliczenia sredniej, podaj 0 by zakonczyc (0 nie zostatnie uwzglednione przy "
|
||||
"obliczeniach)\n";
|
||||
int suma = 0;
|
||||
unsigned int ile = 0;
|
||||
int last = 0;
|
||||
do
|
||||
{
|
||||
std::cout << "Podaj liczbe: ";
|
||||
std::cin >> last;
|
||||
if (last)
|
||||
{
|
||||
++ile;
|
||||
suma += last;
|
||||
}
|
||||
|
||||
} while (last);
|
||||
std::cout << "Srednia: " << srednia(suma, ile) << "\n";
|
||||
}
|
||||
|
||||
// Zadanie 3
|
||||
{
|
||||
std::cout << "\nZadanie 3\n";
|
||||
int m = -1;
|
||||
while (m < 0)
|
||||
{
|
||||
std::cout << "Podaj m wieksze lub rowne 0: ";
|
||||
std::cin >> m;
|
||||
}
|
||||
std::cout << "Suma: " << suma(m) << "\n";
|
||||
}
|
||||
|
||||
// Zadanie 4
|
||||
// Piętra zaczynam liczyć od parteru więc w przypadku podania jednego piętra będzie to jedynie parter (piętro 0).
|
||||
//
|
||||
// Zakładam że w przypadku "pominięcia" piętra powinno być dodane kolejne aby w przypadku podania na przykład 14
|
||||
// pięter było ich faktycznie parter + 13 pięter mimo braku piętra 13 (zamiast piętra 13 będzie piętro 14).
|
||||
//
|
||||
// Używam string dla nazwy hotelu, w uwagach
|
||||
// jest informacja aby nie używać tablic jednak zakładam że w tym wypadku string jest dopuszczalny.
|
||||
{
|
||||
std::cout << "\nZadanie 4\n";
|
||||
std::string nazwa;
|
||||
unsigned int pietra = 0;
|
||||
unsigned int aktualne_pietro = 0;
|
||||
|
||||
unsigned int liczba_pokoi = 0, liczba_zajetych = 0;
|
||||
|
||||
std::cout << "Podaj nazwe hotelu: ";
|
||||
std::cin >> nazwa;
|
||||
while (pietra < 1)
|
||||
{
|
||||
std::cout << "Podaj ilosc pieter: ";
|
||||
std::cin >> pietra;
|
||||
}
|
||||
std::cout << "Liczba pokoi na pietro powinna byc nie mniejsza niz 5\n"
|
||||
"Liczba zajetych nie moze byc wieksza niz liczba pokoi na pietrze\n";
|
||||
while (pietra > 0)
|
||||
{
|
||||
if (aktualne_pietro == 13) // Pominięcie "pechowego" piętra
|
||||
{
|
||||
aktualne_pietro++;
|
||||
continue;
|
||||
}
|
||||
|
||||
unsigned int akt_pok = 0, akt_zaj = 0;
|
||||
while (akt_pok < 5)
|
||||
{
|
||||
if (!aktualne_pietro)
|
||||
std::cout << "Podaj liczbe pokoi na parterze: ";
|
||||
else
|
||||
std::cout << "Podaj liczbe pokoi na pietrze " << aktualne_pietro << ": ";
|
||||
std::cin >> akt_pok;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
std::cout << "Podaj liczbe zajetych pokoi (calkowita ilosc pokoi " << akt_pok << "): ";
|
||||
std::cin >> akt_zaj;
|
||||
} while (akt_zaj > akt_pok);
|
||||
liczba_pokoi += akt_pok;
|
||||
liczba_zajetych += akt_zaj;
|
||||
pietra--;
|
||||
aktualne_pietro++;
|
||||
}
|
||||
std::cout << "\nNAZWA HOTELU: " << nazwa << "\nILOSC POKOI: " << liczba_pokoi
|
||||
<< "\nILOSC WOLNYCH POKOI: " << liczba_pokoi - liczba_zajetych
|
||||
<< "\nILOSC ZAJETYCH POKOI: " << liczba_zajetych
|
||||
<< "\nPROCENT ZAJETYCH: " << (double(liczba_zajetych) / double(liczba_pokoi)) * 100.0 << "%"
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// =========
|
||||
// FUNKCJE
|
||||
// =========
|
||||
|
||||
void wypisz_tabliczke(const unsigned int wielkosc)
|
||||
{
|
||||
// Nagłówek
|
||||
std::cout << " |";
|
||||
|
||||
for (int i = 1; i <= wielkosc; ++i)
|
||||
{
|
||||
std::printf("%4i", i); // Używam printf zamiast cout z uwagi na łatwiejsze/bardziej czytelne formatowanie
|
||||
// Formatowanie na 4 znaki jako że max wielkość to 10
|
||||
}
|
||||
|
||||
std::cout << "\n----+";
|
||||
for (int i = 1; i <= wielkosc; ++i)
|
||||
{
|
||||
std::cout << "----"; // 4 myślniki na liczbę dla zgodności z formatowaniem, może wyglądać niepoprawnie w
|
||||
// przypadku używania czcionki o różnej szerokości znaków.
|
||||
}
|
||||
|
||||
// Właściwa tabela
|
||||
for (int i = 1; i <= wielkosc; ++i)
|
||||
{
|
||||
std::printf("\n%-4i|", i);
|
||||
|
||||
for (int j = 1; j <= wielkosc; ++j)
|
||||
{
|
||||
std::printf("%4i", i * j);
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
double srednia(const int suma, const unsigned int ile)
|
||||
{
|
||||
if (!ile)
|
||||
return 0;
|
||||
else
|
||||
return double(suma) / double(ile);
|
||||
}
|
||||
|
||||
double suma(const int m)
|
||||
{
|
||||
double S = 0;
|
||||
for (int j = 0; j <= m; ++j)
|
||||
{
|
||||
S += (1.0 + j) / (2 * (j * j * j) + 3);
|
||||
}
|
||||
return S;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#+TITLE: AHE - Ćwiczenia i inne
|
||||
#+DESCRIPTION: Archiwum ćwiczeń i projektów
|
||||
#+AUTHOR: Mateusz Słodkowicz
|
||||
#+OPTIONS: \n:t
|
||||
#+LANGUAGE: pl
|
||||
Repozytorium na kod z ćwiczeń, projektów itd. z uczelni [[https://www.ahe.lodz.pl/][AHE]].
|
||||
W [[./org][org]] znajdują się pliki .org z których generowane są pliki README.md
|
||||
|
||||
* Rok I
|
||||
Algorytmy i struktury danych - [[./Algorytmy i struktury danych][Link]]
|
||||
|
||||
Podstawy programowania I - [[./Podstawy Programowania I][Link]]
|
|
@ -0,0 +1 @@
|
|||
ltximg/
|
|
@ -0,0 +1,53 @@
|
|||
#+TITLE: Algorytmy i Struktury Danych
|
||||
#+AUTHOR: Mateusz Słodkowicz
|
||||
#+OPTIONS: \n:t
|
||||
#+LANGUAGE: pl
|
||||
#+EXPORT_FILE_NAME: ../Algorytmy i struktury danych/README.md
|
||||
#+PANDOC_OPTIONS: lua-filter:fix.lua
|
||||
|
||||
Zadania/Ćwiczenia z przedmiotu Algorytmy i Struktury Danych.
|
||||
* Ćwiczenie 2 - Zadanie 1
|
||||
Program na rozwiązywanie równania kwadratowego.
|
||||
|
||||
*Wymagania na program*:
|
||||
1. Aplikacja konsolowa (prosty program)
|
||||
2. Na wejściu programu należy podać wartości a,b,c
|
||||
3. Na wyjściu program wypisuje komunikaty, opisane algorytmem
|
||||
|
||||
[[./Pascal/AiSD5_C2 Ćwiczenie 2/zad1_rownanie_kwadratowe.pas][Pascal]] [[./Python/AiSD5_C2 Ćwiczenie 2/zad1_rownanie_kwadratowe.py][Python]]
|
||||
|
||||
* Ćwiczenie 2 - Zadanie 2
|
||||
*Definicja*
|
||||
Rok przestępny to taki, który spełnia następujące warunki:
|
||||
- jest podzielny przez 4 i niepodzielny przez 100
|
||||
lub
|
||||
- jest podzielny przez 400
|
||||
*Wymagania na program*:
|
||||
1. Aplikacja konsolowa (prosty program)
|
||||
2. Na wejściu programu należy podać liczbę określającą numer roku
|
||||
3. Na wyjściu program wypisuje komunikat, czy podany rok jest przestępny.
|
||||
4. Podziel program na cztery części:
|
||||
1) Funkcja typu całkowitego czytająca numer roku podany przez użytkownika i zwracająca odczytaną liczbę
|
||||
2) Funkcja typu logicznego, której argumentem jest liczba całkowita sprawdzająca, czy rok jest przestępny
|
||||
3) Procedura, której argumentami są: numer roku i wartość logiczna, wypisująca na konsoli, czy rok jest przestępny
|
||||
4) Procedura zawierająca w sobie wywołania pozostałych funkcji i procedur, która jest wywoływana z programu głównego.
|
||||
|
||||
[[./Pascal/AiSD5_C2 Ćwiczenie 2/zad2_rok_przestepny.pas][Pascal]] [[./Python/AiSD5_C2 Ćwiczenie 2/zad2_rok_przestepny.py][Python]]
|
||||
|
||||
* Ćwiczenie 2 - Zadanie 3
|
||||
Obliczanie sumy cyfr
|
||||
|
||||
*Wymagania na algorytm*:
|
||||
1. Algorytm iteracyjny (nie rekurencyjny)
|
||||
|
||||
*Wymagania na program*:
|
||||
1. Aplikacja konsolowa (prosty program)
|
||||
2. Na wejściu programu należy podać liczbę całkowitą.
|
||||
3. Na wyjściu program wypisuje wynik obliczeń.
|
||||
4. Podziel program na cztery części:
|
||||
1) Funkcja typu całkowitego czytająca liczbę całkowitą
|
||||
2) Funkcja typu całkowitego, której argumentem jest liczba całkowita, a wynikiem suma cyfr tej liczby
|
||||
3) Procedura wypisująca wynik obliczeń, której argumentami są: liczba całkowita i suma cyfr tej liczby
|
||||
4) Procedura zawierająca w sobie wywołania pozostałych funkcji i procedur, która jest wywoływana z programu głównego.
|
||||
|
||||
[[./Pascal/AiSD5_C2 Ćwiczenie 2/zad3_suma_cyfr.pas][Pascal]] [[./Python/AiSD5_C2 Ćwiczenie 2/zad3_suma_cyfr.py][Python]]
|
|
@ -0,0 +1,182 @@
|
|||
#+TITLE: Podstawy Programowania I
|
||||
#+AUTHOR: Mateusz Słodkowicz
|
||||
#+OPTIONS: \n:t
|
||||
#+OPTIONS: tex:t
|
||||
#+OPTIONS: toc:nil
|
||||
#+LANGUAGE: pl
|
||||
#+EXPORT_FILE_NAME: ../Podstawy Programowania I/README.md
|
||||
#+PANDOC_OPTIONS: lua-filter:fix.lua
|
||||
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 zapisanych do klasy.
|
||||
Program powinien wyświetlać wartość procentową chłopców i dziewcząt w klasie.
|
||||
|
||||
[[file:Zadanie 1.1/zadanie1.cpp][C++]]
|
||||
** Zadanie 2
|
||||
Kino przechowuje tylko pewien procent przychodu ze sprzedaży biletów. Reszta trafia do
|
||||
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 dorosłych. (Cena biletu dla
|
||||
dorosłych wynosi 10 zł, a dla dziecka 6 zł). Wyświetlony powinien zostać komunikat podobny do
|
||||
poniższego:
|
||||
#+begin_example
|
||||
Sprzedane bilety dla dorosłych:
|
||||
|
||||
Sprzedane bilety dla dzieci:
|
||||
|
||||
Zysk kasy brutto:
|
||||
|
||||
Zysk kasy netto:
|
||||
|
||||
Kwota zapłacona dystrybutorowi:
|
||||
#+end_example
|
||||
[[./Zadanie 1.1/zadanie2.cpp][C++]]
|
||||
|
||||
** Zadanie 3
|
||||
Zadeklarować trzy zmienne typu całkowitego. Wczytać dane. Obliczyć sumę tych liczb, ich średnią
|
||||
arytmetyczną i średnią harmoniczną. Wyświetlić wyniki.
|
||||
|
||||
[[./Zadanie 1.1/zadanie3.cpp][C++]]
|
||||
|
||||
** Zadanie 4
|
||||
Rowerzysta pokonuje drogę o długości d w trzech etapach. Przez d oznaczono całą długość drogi
|
||||
przebytej przez rowerzystę. Przebyta droga i średnia prędkość w kolejnych etapach:
|
||||
#+begin_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
|
||||
#+end_example
|
||||
|
||||
Należy napisać program obliczający całkowity czas jazdy rowerzysty. Wyniki przeliczyć na godziny,
|
||||
minuty, sekundy.
|
||||
Wczytać długość drogi d, wyświetlić wyniki.
|
||||
|
||||
[[./Zadanie 1.1/zadanie4.cpp][C++]]
|
||||
|
||||
* Zadania 2
|
||||
Uwagi:
|
||||
* 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>
|
||||
|
||||
[[./Zadanie 1.2/zadanie.cpp][C++]]
|
||||
|
||||
** Zadanie 1
|
||||
Wczytać dwie liczby typu całkowitego (x, y) i wypisać, która liczba jest większa a może są takie same.
|
||||
Sprawdzić czy x jest liczbą nieparzystą. Wypisać odpowiedni komunikat.
|
||||
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}
|
||||
$$
|
||||
|
||||
Dane: x – typu rzeczywistego
|
||||
** Zadanie 3
|
||||
Napisać program pozwalający obliczyć
|
||||
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ść stożka)
|
||||
|
||||
W programie należy użyć struktury wielokrotnego wyboru switch.
|
||||
Obliczoną wartość wypisać na ekranie.
|
||||
** Zadanie 4
|
||||
Firma kurierska pobiera opłaty zgodnie z poniższym cennikiem:
|
||||
| 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 |
|
||||
|
||||
Napisz program, który prosi o wpisanie wagi paczki i odległości, jaką musi przebyć przesyłka, a następnie wyświetli cenę.
|
||||
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:
|
||||
* 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.
|
||||
|
||||
[[./Zadanie 1.3/zadanie.cpp][C++]]
|
||||
|
||||
** Zadanie 1
|
||||
Funkcja, który wyświetli tabliczkę mnożenia liczb od 1 do n w następującej postaci
|
||||
|
||||
| | 1 | 2 | 3 |
|
||||
|---+---+---+---|
|
||||
| 1 | 1 | 2 | 3 |
|
||||
| 2 | 2 | 4 | 6 |
|
||||
| 3 | 3 | 6 | 9 |
|
||||
|
||||
n – należy wczytać, n <1, 10>.
|
||||
W tym przypadku n = 3.
|
||||
|
||||
** Zadanie 2
|
||||
Funkcja, która oblicza i zwraca średnią kilku liczb całkowitych przy założeniu, że ostatnia wczytana wartość
|
||||
jest znacznikiem 0. Przykładowa seria wejściowa może być
|
||||
#+BEGIN_EXAMPLE
|
||||
10 8 11 7 9 0
|
||||
#+END_EXAMPLE
|
||||
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
|
||||
Ten punkt powinien działać w pętli, bez funkcji
|
||||
Napisz program obliczający obłożenie hotelu. Program powinien wystartować, pytając użytkownika o
|
||||
nazwę hotelu i liczbę pięter w hotelu. Pętla powinna iterować raz na każde piętro. W każdej iteracji pętla
|
||||
powinna zapytać użytkownika o liczbę pokoi na piętrze i liczbę pokoi zajętych.
|
||||
Po wszystkich iteracjach program powinien wyświetlić, ile pokoi ma hotel, ile z nich jest zajętych, a ile wolnych oraz procent, jaki
|
||||
stanowią zajęte pokoje.
|
||||
UWAGA. Zdarza się, że w część hoteli nie ma trzynastego piętra (może to być inny numer piętra).
|
||||
Pętla w tym programie powinna pomijać iteracje na tym piętrze.
|
||||
Weryfikacja poprawności wprowadzanych danych: Nie akceptuj liczby mniejszej niż 1 dla liczby pięter.
|
||||
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ę kamień, papier, nożyce.
|
||||
Użytkownik powinien mieć możliwość rozegrania kilku rund.
|
||||
Program powinien działać następująco:
|
||||
1. Kiedy program zostaje uruchomiony, generowana jest liczba losowa od 1 do 3. Jeśli tą liczbą
|
||||
jest 1, to oznacza, że komputer wybrał kamień. Jeśli tą liczbą jest 2, to komputer wybrał
|
||||
papier. Jeśli tą liczbą jest 3,to komputer wybrał nożyce (nie 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.
|
||||
4. Zwycięzca jest wybierany na podstawie następujących zasad:
|
||||
* 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ę.
|
||||
Program powinien być napisany z wykorzystaniem poznanych instrukcji języka.
|
||||
Program można rozbudować, dodając nowe opcje lub dokonać innych zmian. Należy wtedy dołączyć
|
||||
krótki opis programu.
|
||||
|
||||
[[./Projekt1/main.cpp][C++]]
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
function Link(el)
|
||||
el.target = el.target:gsub(" ", "%%20")
|
||||
return el
|
||||
end
|
Loading…
Reference in New Issue