Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.swift
- //
- // main.swift
- // Lista6_HubertStachowiak
- //
- // Created by Hubert Stachowiak on 26/01/2022.
- //
- import Foundation
- // kula pole powierzchni - 4*pi*r^2
- // kula objętość - (4*pi*r^3)/3
- // stożek pole powierzchni - pi*r(r+l)
- // stożek objętość - (pi*r^2*H)/3
- // sześcian pole powierzchni - 6a^2
- // sześcian objętość - a^3
- class Kula {
- func kula_pp(promien: Double){
- if promien <= 0 {
- print("Błąd")
- return
- }
- let obliczenie = 4 * Double.pi * promien * promien
- print("Kula o promieniu r = \(promien)")
- print("Posiada pole powierzchni: \(obliczenie)")
- return
- }
- func kula_obj(promien: Double){
- if promien <= 0 {
- print("Błąd")
- return
- }
- let obliczenie = ( 4 * Double.pi * promien * promien * promien ) / 3
- print("Kula o promieniu r = \(promien)")
- print("Posiada objętość: \(obliczenie)")
- }
- }
- class Stozek {
- func stozek_pp(tworzaca: Double, promien: Double) {
- if (tworzaca <= 0 || promien <= 0){
- print("Błąd")
- return
- }
- let obliczenia = Double.pi * promien * (promien + tworzaca)
- print("Storzek o promieniu: \(promien) i tworzacej: \(tworzaca)")
- print("Posiada pole powierzchni: \(obliczenia)")
- }
- func stozek_obj(wysokosc: Double, promien: Double) { //(pi*r^2*H)/3
- if (wysokosc <= 0 || promien <= 0){
- print("Błąd")
- return
- }
- let obliczenia = (Double.pi * promien * promien * wysokosc) / 3
- print("Storzek o promieniu: \(promien) i wysokości: \(wysokosc)")
- print("Posiada objętość: \(obliczenia)")
- }
- }
- class Szescian {
- func szescian_pp(bok: Double){
- if bok <= 0 {
- print("Błąd")
- return
- }
- let obliczenia = 6 * bok * bok
- print("Sześcian o boku \(bok)")
- print("Posiada pole powierzchni: \(obliczenia)")
- }
- func szescian_obj(bok: Double){
- if bok <= 0 {
- print("Błąd")
- return
- }
- let obliczenia = bok * bok * bok
- print("Sześcian o boku \(bok)")
- print("Posiada objętość: \(obliczenia)")
- }
- }
- func main1()
- {
- //Testy
- let licz_1: Kula = Kula();
- licz_1.kula_pp(promien: 5);
- licz_1.kula_obj(promien: 5);
- let licz_2: Stozek = Stozek();
- licz_2.stozek_pp(tworzaca: 10.5, promien: 15.8)
- licz_2.stozek_obj(wysokosc: 16.82, promien: 14.1)
- let licz_3: Szescian = Szescian();
- licz_3.szescian_pp(bok: 12.2);
- licz_3.szescian_obj(bok: 14.6);
- }
- //main1();
- // Zadanie 2
- func BMI() -> Void {
- print("Podaj swoja masę [kg]:")
- let masa_ciala = Double(readLine()!)
- print("Podaj swój wzrost [m]:")
- let wzrost = Double(readLine()!)
- if (masa_ciala! <= 0 || wzrost! <= 0) {
- print("Błąd")
- return
- }
- let obliczenia = masa_ciala! / (wzrost! * wzrost!)
- print("Twoje BMI wynosi: \(obliczenia)")
- if obliczenia < 18.5 {
- print("Masz niedowagę.")
- }
- else if (18.5 < obliczenia && obliczenia < 24.9999) {
- print("Twoja waga jest prawidłowa.")
- }
- else if obliczenia > 25 {
- print("Masz nadwagę!!!")
- }
- }
- //BMI()
- // Zadanie 3
- //Ciekawe rozwiązanie znaleziona na Stack'u
- extension BinaryInteger {
- var binaryDescription: String {
- var binaryString = ""
- var internlNumber = self
- for _ in (1...self.bitWidth) {
- binaryString.insert(contentsOf: "\(internlNumber & 1)", at: binaryString.startIndex)
- internlNumber >>= 1
- }
- return binaryString
- }
- }
- //print(Int8(60).binaryDescription)
- // O wiele wiele wiele prostsze rozwiązanie :D
- /*
- func zamieniarka(wartosc: Int) {
- let binarny = String(wartosc, radix: 2)
- let szesnastkowy = String(wartosc, radix: 16)
- print("Postać binarna Twojej wartości to: \(binarny)")
- print("Postać szesnastkowa Twojej liczby to : \(szesnastkowy)")
- return
- }
- zamieniarka(wartosc: 100)
- // Binarny na szesnastkowy
- let x_1 = "1100100"
- let x_2 = String(Int(x_1, radix: 2)!, radix: 16)
- print(x_2)
- // Szesnastkowy na binarny
- let x_3 = "face" // ciekawy przykład :D
- let x_4 = String(Int(x_3, radix: 16)!, radix: 2)
- print(x_4)
- */
- func zamieniarka() -> Void {
- print("Jakiej zamiany chcesz dokonać ?")
- print("Dziesiętny -> Binarny (1)")
- print("Dziesiętny -> Szesnastkowy (2)")
- print("Binarny -> Szesnastkowy (3)")
- print("Szesnastkowy -> Binarny (4)")
- print("Wybierz wpisując liczbę")
- let wartosc = Int(readLine()!)
- if wartosc == 1 {
- print("Podaj liczbę jaką chcesz zamienić:")
- let x_db1 = Int(readLine()!)
- let x_db2 = String(x_db1!, radix: 2)
- print("Oto Twój wynik: \(x_db2)")
- }
- else if wartosc == 2 {
- print("Podaj liczbę jaką chcesz zamienić:")
- let x_dh1 = Int(readLine()!)
- let x_dh2 = String(x_dh1!, radix: 16)
- print("Oto Twój wynik: \(x_dh2)")
- }
- else if wartosc == 3 {
- print("Podaj liczbę jaką chcesz zamienić:")
- let x_bh1 = String(readLine()!)
- let x_bh2 = String(Int(x_bh1, radix: 2)!, radix: 16)
- print("Oto Twój wynik: \(x_bh2)")
- }
- else if wartosc == 4 {
- print("Podaj liczbę jaką chcesz zamienić:")
- let x_hb1 = String(readLine()!)
- let x_hb2 = String(Int(x_hb1, radix: 16)!, radix: 2)
- print("Oto Twój wynik: \(x_hb2)")
- }
- else {
- print("Coś się wukrzaczyło :(")
- }
- }
- //zamieniarka()
- //Zamiana 10 -> 8
- func zamiana10_8() -> Void {
- print("Podaj liczbę jaką chcesz zamienić:")
- let liczba = Int(readLine()!)
- let osemkowa = Int(String(liczba!, radix: 8))
- print(osemkowa!)
- }
- //zamiana10_8()
- func zamiana8_10() -> Void {
- print("Podaj liczbę jaką chcesz zamienić:")
- let liczba = Int(readLine()!)
- let dziesietna = Int(String(liczba!),radix: 8)
- print(dziesietna!)
- }
- //zamiana8_10()
- // Zadanie 4
- func realna_pojemnosc_dysku(pojemnosc: Int) {
- let obliczenia = (pojemnosc * 1000000000) / 1024 / 1024 / 1024
- print("Realna pojemność Twojego dysku to około : \(obliczenia) [GB]")
- let ile_tracisz = pojemnosc - obliczenia
- print("Producent oszukał Cię na \(ile_tracisz) [GB] :(")
- }
- //realna_pojemnosc_dysku(pojemnosc: 1000)
- //Dlaczego się tak dzieje?
- //To proste
- //Producenci używają systemu dziesiątkowego czyli 1KB=1000 bajtów
- //Z drugiej strony nasz system oraz BIOS używają systemu dwójkowego 1KB = 1024 bajtów
- //Smutna prawda :(
- // Zadanie 5
- func kantor_online() -> Void {
- print("Napisz ile posiadasz waluty:")
- let ilosc_kasy = Double(readLine()!)
- print("Napisz jaka walute posiadasz:")
- print("Dostępne waluty/zamiana:")
- print("Dolar amerykański (USD)")
- print("Baht Tajski (THB)")
- print("Bitcoin (BTC)")
- print("Ngultrum bhutański (BTN)")
- print("Ugija mauretańska (MRO)")
- print("Ethereum (ETH)")
- print("Wybieram:")
- let jaka_waluta = readLine()
- if jaka_waluta == "USD" {
- print("Dostępne opcje zamiany:")
- print("Na Baht Tajski (THB)")
- print("Na Bitcoin (BTC)")
- print("Na Ngultrum bhutański (BTN)")
- print("Na Ugija mauretańska (MRO)")
- print("Ethereum (ETH)")
- print("Wybieram:")
- let zamiana = readLine()
- if zamiana == "THB" {
- let obliczenie = ilosc_kasy! * 33.2
- print("Zamieniłeś \(ilosc_kasy!) (USD) na \(obliczenie) na (THB).")
- }
- else if zamiana == "BTC" {
- let obliczenie = ilosc_kasy! * 0.000027
- print("Zamieniłeś \(ilosc_kasy!) (USD) na \(obliczenie) na (BTC).")
- }
- else if zamiana == "BTN" {
- let obliczenie = ilosc_kasy! * 75.16
- print("Zamieniłeś \(ilosc_kasy!) (USD) na \(obliczenie) na (BTN).")
- }
- else if zamiana == "MRO" {
- let obliczenie = ilosc_kasy! * 36.3101
- print("Zamieniłeś \(ilosc_kasy!) (USD) na \(obliczenie) na (MRO).")
- }
- else if zamiana == "ETH" {
- let obliczenie = ilosc_kasy! * 0.00041
- print("Zamieniłeś \(ilosc_kasy!) (USD) na \(obliczenie) na (ETH).")
- }
- else {
- print("Wybrałeś błędną walute")
- }
- }
- else if jaka_waluta == "THB"{
- let obliczenie = ilosc_kasy! * 0.03
- print("Zamieniłeś \(ilosc_kasy!) (THB) na \(obliczenie) (USD).")
- }
- else if jaka_waluta == "BTC"{
- let obliczenie = ilosc_kasy! * 36619.8
- print("Zamieniłeś \(ilosc_kasy!) (BTC) na \(obliczenie) (USD.")
- }
- else if jaka_waluta == "BTN"{
- let obliczenie = ilosc_kasy! * 0.013
- print("Zamieniłeś \(ilosc_kasy!) (BTN) na \(obliczenie) (USD).")
- }
- else if jaka_waluta == "MRO"{
- let obliczenie = ilosc_kasy! * 0.027
- print("Zamieniłeś \(ilosc_kasy!) (MRO) na \(obliczenie) (USD.")
- }
- else if jaka_waluta == "ETH"{
- let obliczenie = ilosc_kasy! * 2445.85
- print("Zamieniłeś \(ilosc_kasy!) (ETH) na \(obliczenie) (USD).")
- }
- else {
- print("Błąd!!!")
- }
- }
- //kantor_online()
- func zamiana_temperatury(temperatura: Double, jednostka_temperatury: String) {
- if jednostka_temperatury == "CEL" {
- let na_fahrenheita = (temperatura * (9/5)) + 32
- let na_kelwiny = temperatura + 273.15
- if na_fahrenheita <= 32 {
- print("Woda zamarza!")
- if na_fahrenheita > 0 {
- var F: String = String(format: "%.1f", na_fahrenheita)
- F = " + " + F
- print("Wyniki:")
- print(F)
- print("\(na_kelwiny) [K]")
- }
- else {
- print("Wyniki:")
- print("\(na_fahrenheita) [F]")
- print("\(na_kelwiny) [K]")
- }
- }
- else if na_fahrenheita >= 212 {
- print("Woda wrze!")
- if na_fahrenheita > 0 {
- var F: String = String(format: "%.1f", na_fahrenheita)
- F = "+ " + F
- print("Wyniki:")
- print("\(F) [F]")
- print("+ \(na_kelwiny) [K]")
- }
- else {
- print("Wyniki:")
- print("\(na_fahrenheita) [F]")
- print("+ \(na_kelwiny) [K]")
- }
- }
- else {
- if na_fahrenheita > 0 {
- var F: String = String(format: "%.1f", na_fahrenheita)
- F = " + " + F
- print("Wyniki:")
- print("\(F) [F]")
- print("\(na_kelwiny) [K]")
- }
- }
- }
- else if jednostka_temperatury == "FAH" {
- let na_celciusze = (temperatura - 32) / 1.8
- let na_kelwiny2 = (na_celciusze + 273.15)
- if temperatura <= 32 {
- print("Woda zamarza!")
- if na_celciusze > 0 {
- var F: String = String(format: "%.1f", na_celciusze)
- F = "+ " + F
- print("Wyniki:")
- print("\(F) [^C]")
- print("\(na_kelwiny2) [K]")
- }
- else {
- print("Wyniki:")
- print("\(na_celciusze) [^C]")
- print("\(na_kelwiny2) [K]")
- }
- }
- else if temperatura >= 212 {
- print("Woda wrze!")
- if na_celciusze > 0 {
- var F: String = String(format: "%.1f", na_celciusze)
- F = "+ " + F
- print("Wyniki:")
- print("\(F) [^C]")
- print("+ \(na_kelwiny2) [K]")
- }
- else {
- print("Wyniki:")
- print("\(na_celciusze) [^C]")
- print("+ \(na_kelwiny2) [K]")
- }
- }
- else {
- if na_celciusze > 0 {
- var F: String = String(format: "%.1f", na_celciusze)
- F = " + " + F
- print("Wyniki:")
- print("\(F) [^C]")
- print("\(na_kelwiny2) [K]")
- }
- }
- }
- else if jednostka_temperatury == "KEL" {
- let na_celciusze = temperatura - 273.15
- let na_fahrenheita = (na_celciusze * (9/5)) + 32
- if na_fahrenheita <= 32 {
- print("Woda zamarza!")
- if na_fahrenheita > 0 {
- var F: String = String(format: "%.1f", na_celciusze)
- F = "+ " + F
- print("Wyniki:")
- print("\(F) [^C]")
- print("\(na_fahrenheita) [F]")
- }
- else {
- print("Wyniki:")
- print("\(na_celciusze) [^C]")
- print("\(na_fahrenheita) [F]")
- }
- }
- else if na_fahrenheita >= 212 {
- print("Woda wrze!")
- if na_celciusze > 0 {
- var F: String = String(format: "%.1f", na_celciusze)
- F = "+ " + F
- print("Wyniki:")
- print("\(F) [^C]")
- print("\(na_fahrenheita) [F]")
- }
- else {
- print("Wyniki:")
- print("\(na_celciusze) [^C]")
- print("+ \(na_fahrenheita) [F]")
- }
- }
- else {
- if na_celciusze > 0 {
- var F: String = String(format: "%.1f", na_celciusze)
- F = "+ " + F
- print("Wyniki:")
- print("\(F) [^C]")
- print("\(na_fahrenheita) [F]")
- }
- }
- }
- }
- //zamiana_temperatury(temperatura: 100, jednostka_temperatury: "CEL")
- // Zamieszałem się lekko z tymi if'ami :D
- // Do wyboru mamy "CEL"/"KEL"/"FAH"
- //zamiana_temperatury(temperatura: 300,jednostka_temperatury: "KEL")
- func wybierz_jednostke() -> String {
- var wybor: String
- print("Wybierz jaką temperature chcesz wpisać:")
- print("Dla uproszczenia:")
- print("Celciusze - CEL")
- print("Kelwiny - KEL")
- print("Fahrenheity - FAH")
- wybor = readLine(strippingNewline: true)!
- return wybor
- }
- func wybierz_wartosc() -> Double {
- let temperatura: Double
- print("Podaj wartosc swojej temperatury:")
- temperatura = Double(readLine(strippingNewline: true)!)!
- return temperatura
- }
- class Celciusze {
- func oblicz_na_Celciusza_Kelwiny(celciusze: Double) -> Double{
- var KEL: Double
- KEL = celciusze + 273.15
- return KEL
- }
- func oblicz_na_Celciusza_Fahrenheity(celciusze: Double) -> Double{
- var FAR: Double
- FAR = (celciusze * 1.8) + 32
- return FAR
- }
- func oblicz_na_Celciusza_Delisle(celciusze: Double) -> Double{
- var DEL: Double
- DEL = (100 - celciusze) * 3 / 2
- return DEL
- }
- }
- class Fahrenheity {
- func oblicz_na_Fahrenheity_Celciusze(fahrenheity: Double) -> Double{
- var CEL: Double
- CEL = (fahrenheity - 32) * (5 / 9)
- return CEL
- }
- func oblicz_na_Fahrenheity_Kelwiny(fahrenheity: Double) -> Double{
- var CEL: Double
- CEL = (fahrenheity - 32) * (5 / 9)
- var KEL: Double
- KEL = CEL + 273.15
- return KEL
- }
- func oblicz_na_Fahrenheity_Delisle(fahrenheity: Double) -> Double{
- var DEL:Double
- DEL = (212 - fahrenheity) * 5 / 6
- return DEL
- }
- }
- class Kelwiny {
- func oblicz_na_Kelwiny_Celciusze(kelwiny: Double) -> Double{
- var CEL: Double
- CEL = kelwiny - 273.15
- return CEL
- }
- func oblicz_na_Kelwiny_Fahrenheity(kelwiny: Double) -> Double{
- var CEL: Double
- CEL = kelwiny - 273.15
- var FAR: Double
- FAR = (CEL * 1.8) + 32
- return FAR
- }
- func oblicz_na_Kelwiny_Delisle(kelwiny: Double) -> Double{
- var CEL: Double
- CEL = kelwiny + 273.15
- var DEL: Double
- DEL = (100 - CEL) * (3 / 2)
- return DEL
- }
- }
- class Delisle {
- func oblicz_na_Delisle_Celciusze(delisle: Double) -> Double{
- var CEL: Double
- CEL = 100 - delisle * (2 / 3)
- return CEL
- }
- }// Zrezygnowałem z tej opcji
- func main() {
- print("Jaką temperature posiadasz?")
- print("Dostępne opcje:")
- print("Celciusze - C")
- print("Fahrenheity - F")
- print("Kelwiny - K")
- let co_mam = readLine()
- if co_mam == "C" || co_mam == "c" {
- print("Podaj wartość w [C]:")
- let licz_1: Celciusze = Celciusze();
- let wybierz_wartosc = Double(readLine()!)
- let y = licz_1.oblicz_na_Celciusza_Kelwiny(celciusze: wybierz_wartosc!)
- let x = licz_1.oblicz_na_Celciusza_Fahrenheity(celciusze: wybierz_wartosc!)
- let z = licz_1.oblicz_na_Celciusza_Delisle(celciusze: wybierz_wartosc!)
- switch x {
- case ..<32:
- print("Woda zamarza!")
- case 212...:
- print(("Woda wrze!"))
- default:
- print(":)")
- }
- switch z {
- case 0...9999999999:
- print("Wynik to +\(z) [De]")
- case ..<0:
- print("Wynik to \(z) [De]")
- default :
- print("Coś się wykrzaczyło!")
- }
- switch y {
- case 0...9999999999:
- print("Wynik to +\(y) [K]")
- case ..<0:
- print("Wynik to \(y) [K]")
- default :
- print("Coś się wykrzaczyło!")
- }
- switch x {
- case 0...9999999999:
- print("Wynik to +\(x) [F]")
- case ..<0:
- print("Wynik to \(x) [F]")
- default :
- print("Coś się wykrzaczyło!")
- }
- }
- else if co_mam == "F" || co_mam == "f" {
- print("Podaj wartość w [F]:")
- let licz_2: Fahrenheity = Fahrenheity();
- let wybierz_wartosc2 = Double(readLine()!)
- let y2 = licz_2.oblicz_na_Fahrenheity_Kelwiny(fahrenheity: wybierz_wartosc2!)
- let x2 = licz_2.oblicz_na_Fahrenheity_Celciusze(fahrenheity: wybierz_wartosc2!)
- let z2 = licz_2.oblicz_na_Fahrenheity_Delisle(fahrenheity: wybierz_wartosc2!)
- let aaa = Double(wybierz_wartosc2!)
- switch aaa {
- case ..<32:
- print("Woda zamarza!")
- case 212...:
- print(("Woda wrze!"))
- default:
- print(":)")
- }
- switch z2 {
- case 0...9999999999:
- print("Wynik to +\(z2) [De]")
- case ..<0:
- print("Wynik to \(z2) [De]")
- default :
- print("Coś się wykrzaczyło!")
- }
- switch y2 {
- case 0...9999999999:
- print("Wynik to +\(y2) [K]")
- case ..<0:
- print("Wynik to \(y2) [K]")
- default :
- print("Coś się wykrzaczyło!")
- }
- switch x2 {
- case 0...9999999999:
- print("Wynik to +\(x2) [C]")
- case ..<0:
- print("Wynik to \(x2) [C]")
- default :
- print("Coś się wykrzaczyło!")
- }
- }
- else if co_mam == "K" || co_mam == "k" {
- print("Podaj wartość w [K]:")
- let licz_3: Kelwiny = Kelwiny();
- let wybierz_wartosc3 = Double(readLine()!)
- let y3 = licz_3.oblicz_na_Kelwiny_Celciusze(kelwiny: wybierz_wartosc3!)
- let x3 = licz_3.oblicz_na_Kelwiny_Fahrenheity(kelwiny: wybierz_wartosc3!)
- let z3 = licz_3.oblicz_na_Kelwiny_Delisle(kelwiny: wybierz_wartosc3!)
- switch x3 {
- case ..<32:
- print("Woda zamarza!")
- case 212...:
- print(("Woda wrze!"))
- default:
- print(":)")
- }
- switch z3 {
- case 0...9999999999:
- print("Wynik to +\(z3) [De]")
- case ..<0:
- print("Wynik to \(z3) [De]")
- default :
- print("Coś się wykrzaczyło!")
- }
- switch y3 {
- case 0...9999999999:
- print("Wynik to +\(y3) [C]")
- case ..<0:
- print("Wynik to \(y3) [C]")
- default :
- print("Coś się wykrzaczyło!")
- }
- switch x3 {
- case 0...9999999999:
- print("Wynik to +\(x3) [F]")
- case ..<0:
- print("Wynik to \(x3) [F]")
- default :
- print("Coś się wykrzaczyło!")
- }
- }
- else {
- print("Błąd")
- }
- }
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement