From 853d0ced1940e51a22022f6e7962275421efeb94 Mon Sep 17 00:00:00 2001 From: davidon-top Date: Thu, 27 Mar 2025 13:03:57 +0100 Subject: [PATCH] 31 --- slova.txt | 1 + src/u12.rs | 13 ++++++++++++- src/u13.rs | 22 ++++++++++++++++++++- src/u14.rs | 15 +++++++++++++- src/u21.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/u21.rs | 15 +++++++++++++- src/u31.rs | 11 ++++++++++- 7 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 slova.txt create mode 100644 src/u21.py diff --git a/slova.txt b/slova.txt new file mode 100644 index 0000000..99329fc --- /dev/null +++ b/slova.txt @@ -0,0 +1 @@ +Kde sa vzalo, tu sa vzalo, vo dvore vám zrazu stálo. Biele cudo, aká veda, spávat veru už mi nedá. A ty, chasník, cože kukáš? A ci nevieš, kto som ja? V snehu oci ako z pece, nos cervený, tucné líce. \ No newline at end of file diff --git a/src/u12.rs b/src/u12.rs index da0f5d9..0790a30 100644 --- a/src/u12.rs +++ b/src/u12.rs @@ -1 +1,12 @@ -pub fn main() {} +pub fn main() { + let mut input = String::new(); + std::io::stdin().read_line(&mut input).unwrap(); + let input = input.trim(); + println!("str len {}", input.len()); + let tituly = format!("PaedDr. {} PhDr.", input); + println!("s titulmi: {}", tituly); + match tituly.find("PhDr.") { + Some(pos) => println!("phdr pozicia {}", pos), + None => println!("nenasiel titul"), + }; +} diff --git a/src/u13.rs b/src/u13.rs index da0f5d9..b3bd264 100644 --- a/src/u13.rs +++ b/src/u13.rs @@ -1 +1,21 @@ -pub fn main() {} +pub fn main() { + println!("1. mtokm"); + println!("2. kmtom"); + let mut input = String::new(); + std::io::stdin().read_line(&mut input).unwrap(); + match input.trim() { + "1." | "1" | "mtokm" => read_and_convert(|u| {u * 1.609344}), + "2." | "2" | "kmtom" => read_and_convert(|u| {u / 1.609344}), + _ => {} + } +} + +fn read_and_convert(tom: F) +where F: Fn(f64) -> f64 +{ + println!("zadaj udaj"); + let mut input = String::new(); + std::io::stdin().read_line(&mut input).unwrap(); + let unit: f64 = input.trim().parse().unwrap(); + println!("{}", tom(unit)); +} \ No newline at end of file diff --git a/src/u14.rs b/src/u14.rs index da0f5d9..10bb0a9 100644 --- a/src/u14.rs +++ b/src/u14.rs @@ -1 +1,14 @@ -pub fn main() {} +use rand::Rng; + +pub fn main() { + let mut teploty = Vec::with_capacity(20); + let mut rand = rand::thread_rng(); + for _ in 0..20 { + teploty.push(rand.gen::() * 40.0 - 20.0); + } + println!("teploty: {:?}", teploty); + println!("najnizsia {}", teploty.iter().map(|e| e.clone()).reduce(f64::min).unwrap()); + println!("najvizsia {}", teploty.iter().map(|e| e.clone()).reduce(f64::max).unwrap()); + println!("priemer {}", teploty.iter().sum::() / 20.0); + println!("pocet nulovych teplot: {}", teploty.iter().find(|e| **e == 0.0).iter().count()) +} diff --git a/src/u21.py b/src/u21.py new file mode 100644 index 0000000..9bbe927 --- /dev/null +++ b/src/u21.py @@ -0,0 +1,57 @@ +import random +import turtle +import colorsys + +radius = 100 +t = turtle.Turtle() +t.speed(100) +t.penup() + +def rect(width, height, flip): + rgb = colorsys.hls_to_rgb(random.random(), 50 / 100, 100 / 100) + color = "#" + "%02X" % int(rgb[0] * 255) + "%02X" % int(rgb[1] * 255) + "%02X" % int(rgb[2] * 255) + t.fillcolor(color) + t.begin_fill() + head = 0 + if flip: + head = 0 + else: + head = 90 + t.setheading(head) + t.forward(width) + t.right(90) + t.forward(height) + t.right(90) + t.forward(width) + t.right(90) + t.forward(height) + t.end_fill() + t.setheading(head - 90) + t.forward(height) + +def main(): + stepcount = int(input("Zadaj pocet schodov: ")) + + initial = t.pos() + + for i in range(0, stepcount): + print(" " * 4 * i + "*****") + + for i in range(0, stepcount): + j = stepcount - i - 1 + rect(j * 10, 10, False) + + t.setpos(initial) + + t.setheading(180) + t.forward(200) + t.setheading(0) + + for i in range(0, stepcount): + j = stepcount - i - 1 + rect(j* 10, 10, True) + + input() + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/u21.rs b/src/u21.rs index da0f5d9..69e8f92 100644 --- a/src/u21.rs +++ b/src/u21.rs @@ -1 +1,14 @@ -pub fn main() {} +use pyo3::ffi::c_str; +use pyo3::prelude::*; +use std::ffi::CString; + +static code: &'static str = include_str!("u21.py"); + +pub fn main() { + Python::with_gil(|py| { + let c = CString::new(code.as_bytes()).unwrap(); + let activator = + PyModule::from_code(py, c.as_c_str(), c_str!("main.py"), c_str!("main")).unwrap(); + activator.call_method("main", (), None).unwrap(); + }) +} diff --git a/src/u31.rs b/src/u31.rs index da0f5d9..4c2e70c 100644 --- a/src/u31.rs +++ b/src/u31.rs @@ -1 +1,10 @@ -pub fn main() {} +static DNA: &'static str = "AACTATTTCGGGGGGCGAGCCCTCATCGTCTCTTCTGCGGATGACTCAACACGCTAGGGACGTGAAGTCGATTCCTTCGATGGTTATAAATCAAAGACTCAGAGTGCTGTCTGGAGCGTGAATCTAACGGTACGTATCTCGATTGCTCGGTCGCTTTTCGCACTCCGCGAAAGTTCGTACCGCTCATTCACTAGGTTGCGAAGCCTATGCTGATATATGAATCCAAACTAGAGCAGGGCTCTTAAGATTCGGAGTTGTAAATACTTAATACTCCAATCGGCTTTTACGTGCACCACCGCGGGCGGCTGACAAGGGTCTCACATCGAGAAACAAGACAGTTCCGGGCTGGAAGTAGCGCCGGCTAAGGAAGACGCCTGGTACGGCAGGACTATGAAACCAGTACAAAGGCAACATCCTCACTTGGGTGAACGGAAACGCAGTATTATGGTTACTTTTTGGATACGTGAAACATATCCCATGGTAGTCCTTAGACTTGGGAGTCTATCACCCCTAGGGCCCATATCTGGAAATAGACGCCAGGTTGAATCCGTATTTGGAGGTACGATGGAACAGTCTGGGTGGGACGTGCTTCATTTATACCCTGCGCAGGCTGGACCGAGGACCGCAAGGTGCGGCGGTGCACAAGCAATTGACAACTAACCACCGTGTATTCATTATGGTACCAGGAACTTTAAGCCGAGTCAATGAAGCTCGCATTACAGTGTTTACCGCATCTTGCCGTTACTCACAAACTGTGATCCACCACAAGTCAAGCCATTGCCTCTCTGACACGCCGTAAGAATTAATATGTAAACTTTGCGCGGGTTGACTGCGATCCGTTCAGTCTCGTCCGAGGGCACAATCCTATTCCCATTTGTATGTTCAGCTAACTTCTACCCATCCCCCGAAGTTAAGTAGGTCGTGAGATGCCATGGAGGCTCTCGTTCATCCCGTGGGACATCAAGCTTCCCCTTGATAAAGCACCCCGCTCGGGTGTAGC"; +static DNAMUT: &'static str = "AACTATGTCGCGAGGCGAGCTCTCATCGTCTCGTCTGCGGATGACTCCACACGCTAGCGACGTGAAGTCGAATCCGTCGATGGTTATAAATCAGAGACTCAGAGTGCTGTCTGGAGCGTGAATCTAACGGTACGTATCTCGATAGCTCGGTCGCTTTTCGCACTCCGCGAAAGTTCGTACCGCTCATACACTAGGTTGCGAAGCCTATGCTGATATATGAATCCACACTAGAGCAGTGCTCTTAAGAATCGCAGTTGTAAATACTTAATACTCCAATCGGCTTTTACGTGCACCACCGCGCGCGGCTGACAAGGGTCTCACATCGGGAAACAAGACAGTTCCGGGCTGGAAGTAGCGCCGGCTAAGGAAGACGCCTGGTACGGCAGGACTATGAAACCAGTACAAAGGCAACATCCTCACTTGGGTGAACGGAAACGCAGTATTATGGTTACTTCCTGGATACGTGAAACATATCCCATGGTAGTCCTTAGACTTGGGAGTCTATCACCCCTAGGGCCCATATCTGGAGATAGACGCCAGGTTGAATCCGTATTTGGAGGTACGATGGAACAGTCTGGGTGGGACGTGCTTCATTTATACCCTGCGCAGGCTGGACCGAGGACCGCAAGGTGCGGCGGTGCACAAGCAATTGACAACTAACCACCGTGTATTCATTATGGTACCAGGAACTTTAAGCCGAGTCAATGAAGCTCGCATTACAGTGTGTACCGCATCTTGCCGTTACTCACACACTGTGATCCACCACAAGTCAAGCCATTGCCTCTCTGACACGCCGTAAGAATTAATATGTAAACTTTGCGCGGGTTGACTGCGATCCGTTCAGTCTCGTCCGAGGGCACAATCCTATTCCCATTTGTATGTTCAGCTAACTTCTACCCATCCTCTGAAGTTAAGTAGGTCGTGAGATGCCATGGAGGCTCTCGTTCATCCCGTGGGACATCAAGCTTCCCCTTGATAAAGCACCCCGCTCGGGTGTAAA"; + +pub fn main() { + DNA.chars().zip(DNAMUT.chars()).enumerate().for_each(|(i, (d, m))| { + if (d != m) { + println!("Mutacia nastala na {} pozicii povodna {d}, nova {m}", i + 1) + } + }) +}