1 курс 23 урок помогите новичку =)

swift

#1

помогите новичку, новичку в принцепе программирования как такового.
в начале 23 видеоуроками если не воспроизводить видео есть задание


застрял на первом же задание, не могу понять как прописать кортеж в свойствах и записать остаток, собственно куда его записать, как я понимаю в кортеж остаток будет записан во вторую переменую…строго не судите…вопросов будет много, но не подумайте что сам не пытался разобраться, день помучался…дайте хотяб подсказку или похожий пример, пример даже будет лучше, чем готовое решение…заранее спасибо

class WorkBook {
    let maxPage: Int
    let text: Int
    let wordsOnPage: Int
    var page: Int {
        return text / wordsOnPage
    }
 init(maxPage: Int, text: Int, wordsOnPage: Int) {
     self.maxPage = maxPage
     self.text = text
     self.wordsOnPage = wordsOnPage
    }
}

let zd1 = WorkBook(maxPage: 12, text: 2630, wordsOnPage: 200)
zd1.page

мой результат
со вторым заданием я так понимаю нужно будет создать условие что если второе значение не равно нулю тогда прибавляем к первому 1 и получаем результат, если второе значение равно нулю то ни чего не происходит
с третьим вообще не понятно что нужно, какое ленивое свойство будет вызываться , то есть какое станет так скажем не активным пока его не вызовем. возможно не округление число страниц


#2

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#3

к сожалению урок не имеет прямого отношения к заданию, но спасибо за внимание…жду реальной помощи


#4

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#5

В “принцепе” я не ради помощи, как таковой, а скорее сам себя тренирую. Но решение приведу.
Хотя с пакетом согласен.
Но автору темы в решение рекомендую не смотреть.

18+
import UIKit

class WorkBook {
    
    static let maxPage = 12
    let text: Int
    let wordsOnPage: Int
    lazy var funcOMG = noName()
    
    var pages: (fullPages: Int, rest: Int) {
        let fullPages = text / wordsOnPage
        let rest = text % wordsOnPage
        return (fullPages, rest)
    }
    
    var calcWorkBookQuantity: Int {
        if self.pages.fullPages % WorkBook.maxPage == 0 && self.pages.rest == 0 {
            return self.pages.fullPages / WorkBook.maxPage
        } else {
            return self.pages.fullPages / WorkBook.maxPage + 1
        }
    }
    
    init(text: Int, wordsOnPage: Int){
        self.text = text
        self.wordsOnPage = wordsOnPage
    }
    
    func noName() -> String {
        return "О великий школьник, тебе нужно \(self.calcWorkBookQuantity) тетрадей!"
    }
}


WorkBook.maxPage

let workBook = WorkBook(text: 721, wordsOnPage: 30)
workBook.calcWorkBookQuantity
workBook.funcOMG

#6

paketik и ruMaximum большое спасибо за понимание, буду разбирать и вникать, изучать на много проще зная задачу и путь ее решения, нежели только задачу, но ушел в тупик из-за отсутствия знаний. По части отформатировать текст, это значит наоборот писать как есть не применяя форматирования ?немного не понял, сори


#7

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#8
func noName() -> String {
        if self.calcWorkBookQuantity == 1 {
            return "О великий школьник, тебе нужно \(self.calcWorkBookQuantity) тетрадь!"
        } else if self.calcWorkBookQuantity <= 4 {
            return "О великий школьник, тебе нужно \(self.calcWorkBookQuantity) тетради!"
        } else {
            return "О великий школьник, тебе нужно \(self.calcWorkBookQuantity) тетрадей!"
        }
    }

чутка доработал, начинаю немного понимать, даже меньше чем немного…) всем еще раз спасибо


#9

Ход мысли верный, но по сути не имеет большого смысла, так как 21 тетраДЬ, 22 тетраДИ и так далее


#10

ну да, так то еще десятые сотые и тп, хм…но как то же надо что бы грамотно выводилось…тут наверное надо условие что бы по последней цифре выбиралось 2, 3, 4 ди, 1 дь, 0, 5, 6, 7, 8, 9 дей…может сравнение с массивом