Shanraq.org Shanraq.org
Сандар және арифметика
IT

Rust: алғашқы қадамнан жеке жоспарлау құралына дейін 10-сабақ (барлығы 10)

Сандар және арифметика

Есептеуді және сан түрлерінің шегін тексеру.

Мәтін ИИ көмегімен аударылды.

Алғышарт: 1–9 сабақ. Басқаша айтылмаса, organizer ішінде жұмыс істеңіз.

Бұл не үшін керек?

Жоспарлау құралында сандар пайда болды. Бүтін санда бөлшек бөлік жоқ. Жылжымалы нүктелі сандар кең ауқымдағы сандарды жуықтап көрсетеді. Бит — екілік бірлік; байт сегіз биттен тұрады. Бит саны түр көрсете алатын мәндерді өлшеуіш ыдыстың сыйымдылығы сияқты шектейді.

Алдымен тұтас көрініс

src/main.rs ауыстырып, organizer ішінен cargo run орындаңыз:

fn main() {
    let total: u32 = 7;
    let done: u32 = 2;
    let remaining = total - done;
    println!("Қалды: {remaining}");
    println!("Толық жұп: {}", remaining / 2);
    println!("Жұпсыз: {}", remaining % 2);
}

Нәтиже:

Қалды: 5
Толық жұп: 2
Жұпсыз: 1
  • азайтады, / бөледі, % бөлуден қалған қалдықты береді. println! ішіндегі бос {} орнына үтірден кейінгі аргумент қойылады. Осылайша қосымша айнымалы атамай, есептеу нәтижесін шығарамыз.

Жеті істің екеуі орындалса, бесеуі қалады. Бүтін сандарды бөлгенде 5 / 2 нәтижесі 2, ал 5 % 2 қалдығы 1 болады. Бүтін бөлу бөлшек бөлікті нөлге қарай алып тастайды. Бүтін санды нөлге бөлуге болмайды.

Түрді қалай таңдаймыз?

u8 нөлден 255-ке дейінгі мәндерді, i8 −128-ден 127-ге дейінгі мәндерді сақтайды. u32 ауқымы — 0-ден 4 294 967 295-ке дейін; i32 ауқымы — −2 147 483 648-ден 2 147 483 647-ге дейін. u таңбасыз, i таңбалы түрді білдіреді; сан — бит саны. 16, 64 және 128 биттік бүтін түрлер де бар. usize құрылғы ортасына байланысты, өлшем мен реттік орын үшін қолданылады; оны деректер жиынтықтарында кездестіреміз. Бүгінгі сан шағын болса да, түрдің шегі бар.

f32 мен f64 — 32 және 64 биттік жылжымалы нүктелі түрлер. f64 әдетте дәлірек және ауқымы кеңірек. Басқа шектеу болмаса, бөлшек литерал f64 болады. Әр ондық бөлшек екілік түрде дәл берілмейді. Істер санына бүтін түр керек; ақшаны дәл есептеуге бөлшек түрді ойланбай таңдауға болмайды. Бұл жобада ақша есептемейміз.

+, -, *, / және % — қосу, азайту, көбейту, бөлу және қалдық. Көбейту мен бөлу қосудан бұрын орындалады; дөңгелек жақшалар қажетті ретті ашық көрсетеді.

Бөлшек сандарды бөлуді және амалдардың ретін салыстырыңыз. f64 түрін анық көрсетеміз; кодта ондық бөлшек нүктемен жазылады. Осы мысалдағы сандар екілік түрде дәл беріледі. average атауы «орташа» дегенді білдіреді; мұнда ол істер саны емес, бөлу нәтижесі. Әуелі үш жолды да болжаңыз.

fn main() {
    let average: f64 = 5.0 / 2.0;
    println!("{average}");
    println!("{}", 2 + 3 * 4);
    println!("{}", (2 + 3) * 4);
}
2.5
14
20

Ауқымнан асу және түрлендіру

Ауқымнан асу нәтиженің түрге сыймауын білдіреді. Біздің дайын деректерде done ешқашан total мәнінен аспайды. Бұл шарт бұзылса, таңбасыз азайту кәдімгі теріс мән бермейді. Тексеруі қосылған құрастыру тоқтауы мүмкін; тексеру өшірулі кездегі айналып кетуді дұрыс нәтиже деп қабылдамаңыз. Шарттар мен енгізілген мәнді тексеру сабақтарында бұл ережені ашық қорғаймыз.

Таңбасыз u32 мәніне теріс таңба қолдануға болмайды. Әдейі қате мысалдан E0600 күтіледі:

fn main() {
    let count: u32 = -1;
    println!("{count}");
}

Түрлендіру — санның жазылуын ғана ауыстыру емес, бөлек әрекет. Кейін қате беруі мүмкін қауіпсіз түрлендірулерді үйренеміз. as сөзін әмбебап түзету ретінде қолданбаңыз: ауқымды тарылту деректі жоғалтуы мүмкін. Әзірге түрлеріміз сәйкес, дайын мәндер міндеттің шартына сай.

Тірек сызба

Мағына → түр → ауқым → амал → күтілетін жауап → тексеру. Құрастыру total мен done мәндерінің мағынаға сай екенін дәлелдемейді.

Жаттығу

  1. Іске қоспай 6 / 2 және 6 % 2 нәтижесін болжаңыз.
  2. Толықтырыңыз: remaining = total ___ done.
  3. Теріс істер санын қабылдау үшін түрді өзгертпей тұрып, мұндай мәннің мағынасы бар-жоғын шешіңіз.

Тапсырма

Міндетті. total = 10, done = 4 болғанда «Қалды: 6», «Толық жұп: 3», «Жұпсыз: 0» шығарыңыз. Дайын жауапты жай басып шығармай, есептеңіз.

Өз деректеріңізбен. total = done деп тексеріңіз. Үш нәтиже де нөл болуы керек.

Көмек және үлгі жауап

Тек бастапқы мәндер өзгереді, есептеу өрнектері сол күйінде қалады. Жаттығу жауабы: 3 және 0; азайту; біздің міндетте істер саны теріс болмауы тиіс. Нөлдік жағдай азайтудың орнына қосып қоймағаныңызды тексеруге көмектеседі.

fn main() {
    let total: u32 = 10;
    let done: u32 = 4;
    let remaining = total - done;
    println!("Қалды: {remaining}");
    println!("Толық жұп: {}", remaining / 2);
    println!("Жұпсыз: {}", remaining % 2);
}

Күтілетін нәтиже:

Қалды: 6
Толық жұп: 3
Жұпсыз: 0

Айнымалы жасап, түрін түсіндіріп, мәнін өзгертіп, қалған істі өзіңіз есептей алсаңыз, келесі топтамаға дайынсыз. 11–15 сабақта логика, тармақталу, қайталау, функциялар және жиымдар қарастырылады; олар әзірге дайындалып жатыр.

Алдыңғы сабақ · Мазмұны

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.