תבנית מספרים
חלק מהיחידה יסודות במסלול ה-Rust של Coddy. שיעור 73 מתוך 75.
כשיוצרים תבניות כמו פירמידות, לעיתים קרובות צריך ליצור מחרוזות עם תווים חוזרים. ב-Rust יש כמה דרכים לעשות זאת, אבל הנה אחת השיטות הפשוטות ביותר:
let str = "a".repeat(10);str יכיל את "aaaaaaaaaa"
המתודה repeat() דורשת במפורש ארגומנט מסוג usize, ולא סוג שלם רגיל כמו i32.
usize הוא טיפוס מספר שלם ללא סימן בגודל מצביע ב-Rust — הגודל שלו תלוי בארכיטקטורה שלך (32 ביט במערכות 32-ביט, 64 ביט במערכות 64-ביט).
let count: usize = 5;
let repeated = "x".repeat(count); // זה עובדאם יש לך i32 או טיפוס שלם אחר, יהיה עליך להמיר אותו:
let num: i32 = 7;
let repeated = "y".repeat(num as usize);
// המרה באמצעות 'as usize'זה לא יתקמפל:
let repeated = "z".repeat(num);
// שגיאה: צופה usize, נמצא i32אתגר
קללכל מקרה בדיקה יש קלט אחד — מספר שלם אי־זוגי.
המשימה שלך היא להדפיס פירמידה בגובה n באמצעות *. הנה כמה דוגמאות:
פירמידה בגובה 1
*פירמידה בגובה 5
*
***
*****פירמידה בגובה 7
*
***
*****
*******קלט
- מספר שלם אי־זוגי
nמהמשתמש - 1 <=
n< 1000
טיפים
- נסו להתחיל מהמשולשים הקטנים
- בדקו את הרמז אם נתקעתם ;)
nמייצג את מספר ה־*בשורה התחתונה
הערה: ב־Rust, פונקציות שעוסקות ב״גודל״ או ב״אורך״ של משהו (כמו .repeat()) דורשות טיפוס בשם usize במקום i32; אפשר להתייחס אל usize כמספר שלם רגיל שלעולם אינו שלילי.
נסו בעצמכם
use std::io;
fn main() {
let mut input_n = String::new();
io::stdin().read_line(&mut input_n).unwrap();
let n: usize = input_n.trim().parse().unwrap();
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
5אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3תרגלו בעצמכם: קומפיילר Rust אונליין