Untitled

 avatar
unknown
plain_text
5 months ago
5.6 kB
3
Indexable
// Zadanie 1 (10 pkt):
// Napisz program, w którym wykorzystasz Int.random do wylosowania czterech liczb z zakresu [1, 2] (z dokładnością do części dziesiętnych). 
// Wyświetl te liczby. Wylicz i wyświetl ich średnią arytmetyczną.

import Foundation

print("Zad1")
var liczby: [Double] = []
var suma: Double = 0

for _ in 1...4 {
    let liczba = Double.random(in: 1...2)
    liczby.append(liczba)
    suma += liczba
}

let srednia = suma / Double(liczby.count)
print(liczby)
print("Srednia: \(srednia)")


// Zadanie 2 (12 pkt):
// Napisz program, w którym wczytasz od użytkownika PESEL. Na jego podstawie określ płeć użytkownika. 
// Wyświetl użytkownikowi informacje o płci.


print("Zad2")
print("Podaj PESEL:")
if let pesel = readLine(), pesel.count == 11 {
    let plec = Int(String(pesel[pesel.index(pesel.startIndex, offsetBy: 9)])) ?? 0
    if plec % 2 == 0 {
        print("Kobieta")
    } else {
        print("Mezczyzna")
    }
} else {
    print("Nieprawidłowy PESEL")
}


// Zadanie 3 (23 pkt):
// Napisz program, w którym zadeklarujesz tablicę liczb całkowitych. Uzupełnij tablicę powtarzającą się sześciokrotnie liczbą, 
// która jest przedostatnią cyfrą Twojego numeru indeksu. Wyświetl tablicę. 
// Do każdego elementu tablicy dodaj liczbę całkowitą wczytaną od użytkownika. Wymuś na użytkowniku podanie prawidłowej wartości. 
// Wyświetl tablicę. Wczytaj od użytkownika dwa indeksy tablicy. Zamień miejscami elementy znajdujące się na tych indeksach.

print("zad 3")
let cyfraIndeksu = 4
var tablica: [Int] = Array(repeating: cyfraIndeksu, count: 6)

print("Tablica po uzupełnieniu: \(tablica)")
var i=0
while i < tablica.count {
    print("Podaj liczbę do dodania do elementu \(i):")
    if let wejście = readLine(), let wartość = Int(wejście) {
        tablica[i] += wartość
        i+=1
    } else {
        print("Nieprawidłowa wartość")
    }
}

print("Tablica po dodaniu wartości: \(tablica)")

print("Podaj dwa indeksy do zamiany:")
if let wejście1 = readLine(), let wejście2 = readLine(),
   let idx1 = Int(wejście1), let idx2 = Int(wejście2),
   idx1 < tablica.count, idx2 < tablica.count {
    let temp = tablica[idx1]
    tablica[idx1] = tablica[idx2]
    tablica[idx2] = temp
    print("Tablica po zamianie: \(tablica)")
} else {
    print("Nieprawidłowe indeksy")
}

// Zadanie 4 (26 pkt):
// Napisz program, w którym utworzysz słownik rejestrSamochodow. Kluczem będzie numer rejestracyjny pojazdu, 
// a wartością będzie struktura Samochod. Struktura Samochod ma uwzględniać informacje takie jak marka, model, VIN (17 znaków), rok produkcji. 
// Utwórz funkcję, która umożliwia dodanie nowego samochodu do słownika. Utwórz funkcję, która umożliwia usunięcie samochodu. 
// Utwórz funkcję, która przyjmuje jako parametr markę i wyświetla wszystkie samochody danej marki. Przetestuj działanie tych funkcji (dane możesz wpisać na sztywno).

print("Zad 4")

struct Samochod {
    var marka: String
    var model: String
    var vin: String
    var rokProdukcji: Int
}

var rejestrSamochodow = [String: Samochod]()

func dodajSamochod(numerRejestracyjny: String, samochod: Samochod) {
    rejestrSamochodow[numerRejestracyjny] = samochod
}

func usunSamochod(numerRejestracyjny: String) {
    rejestrSamochodow.removeValue(forKey: numerRejestracyjny)
}

func wyswietlSamochody(marka: String) {
    for (_, samochod) in rejestrSamochodow {
        if samochod.marka == marka {
            print(samochod)
        }
    }
}

dodajSamochod(numerRejestracyjny: "AB1234", samochod: Samochod(marka: "Toyota", model: "Corolla", vin: "VIN12345678901234", rokProdukcji: 2020))
dodajSamochod(numerRejestracyjny: "CD5678", samochod: Samochod(marka: "BMW", model: "X5", vin: "VIN98765432109876", rokProdukcji: 2022))
dodajSamochod(numerRejestracyjny: "EF9012", samochod: Samochod(marka: "Toyota", model: "Yaris", vin: "VIN12349876543210", rokProdukcji: 2021))

wyswietlSamochody(marka: "Toyota")
usunSamochod(numerRejestracyjny: "AB1234")

// Zadanie 5 (19 pkt):
// Napisz program, w którym definiujesz klasę Osoba, której wartościami są imię i nazwisko oraz funkcją wyswietlInfo. 
// Następnie utwórz klasy pochodne Osoba: klasa Student i klasa Pracownik. Student zawiera dodatkowy numer indeksu, 
// a Pracownik rok zatrudnienia. Utwórz po jednej instancji dla klasy Student i Pracownik. Wyświetl informacje o utworzonych osobach.

print("Zad 5")

class Osoba {
    var imie: String
    var nazwisko: String

    init(imie: String, nazwisko: String) {
        self.imie = imie
        self.nazwisko = nazwisko
    }

    func wyswietlInfo() {
        print("\(imie) \(nazwisko)")
    }
}

class Student: Osoba {
    var numerIndeksu: Int

    init(imie: String, nazwisko: String, numerIndeksu: Int) {
        self.numerIndeksu = numerIndeksu
        super.init(imie: imie, nazwisko: nazwisko)
    }

    override func wyswietlInfo() {
        print("\(imie) \(nazwisko), Indeks: \(numerIndeksu)")
    }
}

class Pracownik: Osoba {
    var rokZatrudnienia: Int

    init(imie: String, nazwisko: String, rokZatrudnienia: Int) {
        self.rokZatrudnienia = rokZatrudnienia
        super.init(imie: imie, nazwisko: nazwisko)
    }

    override func wyswietlInfo() {
        print("\(imie) \(nazwisko), Rok zatrudnienia: \(rokZatrudnienia)")
    }
}

let student = Student(imie: "Jan", nazwisko: "Kowalski", numerIndeksu: 12345)
let pracownik = Pracownik(imie: "Anna", nazwisko: "Nowak", rokZatrudnienia: 2015)

student.wyswietlInfo()
pracownik.wyswietlInfo()





Editor is loading...
Leave a Comment