упр.02 задача 4

Предадени решения

Краен срок:
22.10.2025 23:59
Точки:
1

Срокът за предаване на решения е отминал

// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
assert_eq!(sum_slice(&[1, 2, 3, 4, 5]), 15);
assert_eq!(sum_slice(&[-1]), -1);
assert_eq!(sum_slice(&[]), 0);
}
fn sum_slice(arr: &[i32]) -> i32 {
    // върни сумата на елементите в среза
}

fn main() {
    let a: [i32; 5] = [1, 2, 3, 4, 5];
    let s_full: &[i32] = &a;
    let s_part: &[i32] = &a[1..4];

    println!("Сума на целия масив: {}", sum_slice(s_full));
    println!("Сума на частичен срез: {}", sum_slice(s_part));

    let v = vec![10, 20, 30];
    println!("Сума на вектор: {}", sum_slice(&v));
}
  • a) Имплементирай sum_slice.
  • b) Обясни защо &v може да се използва като &[i32].
  • c) Какво ще стане, ако извикаш sum_slice(&a[2])?

П.С. игнорирайте линка с указания за домашни - добавя се автоматично и не е актуален в случая.

Задължително прочетете (или си припомнете): Указания за предаване на домашни

Погрижете се решението ви да се компилира с базовия тест:

// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
assert_eq!(sum_slice(&[1, 2, 3, 4, 5]), 15);
assert_eq!(sum_slice(&[-1]), -1);
assert_eq!(sum_slice(&[]), 0);
}