Assignment 1-Variables & Input Output-Answers

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

‫המחלקה להנדסת מכונות‬

‫‪Department of Mechanical Engineering‬‬

‫תכנות מחשבים בשפת ‪C‬‬


‫פתרון מטלה מספר ‪ - 1‬קלט פלט‬
‫כתב וערך‪ :‬ד"ר שייקה בילו‬
‫כללי‬
‫‪ )1‬במסגרת דרישות התרגול בקורס תכנות מחשבים בשפת ‪ C‬עליך להגיש חמש מטלות במועד הקבוע במטלה‪.‬‬
‫‪ )2‬כל מטלה תוגש בתקשוב דרך ה‪ MOODLE -‬בלבד באופן מושלם כולל כל פתרונות התרגילים ובמועד‪.‬‬
‫‪ )3‬ניתן להגיש את המטלות בזוגות‪.‬‬

‫מטרות‬
‫‪ )1‬לתרגל תוך כדי התמודדות באופן עצמאי מספר רב ככול שניתן של פתרון בעיות מגוונות בשפת ‪.C‬‬
‫‪ )2‬לצבור את מרב הניקוד במסגרת קורס התכנות בשפת ‪ C‬בחלק של ביצוע מטלות הגשה כתרגול נוסף לנלמד בכיתה‪.‬‬
‫‪ )3‬להגיע מוכן למבחן האמצע ולבחינת הסיום אחרי תרגול מספר רב של תרגילים כדי לעבור אותם בהצלחה‪.‬‬

‫שיטת עבודה‬
‫‪ )1‬יש לקרוא היטב כל שאלה במטלה‪ ,‬לחקור ולהתעמק בה כדי להבין את הדרישות לכתיבת פתרון מושלם‪.‬‬
‫‪ )2‬כל תוכנית המייצגת פתרון לשאלה מתוך המטלה חייבת לרוץ ללא שגיאות או הערות מערכת‪.‬‬
‫‪ )3‬יש לוודא כי במהלך כתיבת התוכנית נשמר עקרון הכתיבה המובנית‪ ,‬כולל תיעוד וכתיבה היררכית‪.‬‬
‫‪ )4‬יש לדאוג כי לכל המשתנים יהיו שמות בעלי משמעות וטיפוס מתאים ולוודא כי אין הגדרות מיותרות או חוזרות‪.‬‬
‫‪ )5‬עליך להקפיד כי במהלך התוכנית‪ ,‬ובעיקר במקומות מפתח‪ ,‬יופיעו הנחיות‪/‬הערות‪/‬הסברים למשתמש בהם יוגדר‪ :‬מה‬
‫עושה קטע התוכנית‪ ,‬מהו הקלט הנדרש‪ ,‬מה מתבצע בכל מקטע‪ ,‬מהי משמעות הפלט‪ ,‬פירוט הנחיות מיוחדות‪.‬‬
‫‪ )6‬לצורך הכנסת הערות‪/‬הנחיות‪/‬הסברים יש להשתמש בכתיבה בין ‪ /*…………*/‬או ע"י שימוש ב‪.// -‬‬
‫‪ )7‬עבור כל אחת ממטלות ההגשה יש להגיש קובץ קוד מקור בשפת ‪ C‬אחד בלבד הכולל בתוכו את כל התוכניות לפתרון כל‬
‫שאלות המטלה‪( .‬לתשומת ליבכם‪ ,‬אני אקבל קבצי ‪ C‬בלבד!!!)‬
‫‪ )8‬על תוכניות הפתרון לשאלות המטלה לטפל בחריגים‪ ,‬כגון קלט שגוי וכדומה רק במקרים בהם תדרשו לכך‪.‬‬
‫‪ )9‬על התוכנית לענות בדיוק על מה שנדרש ותוך שמירה על ידידותיות למשתמש בכל מהלך ריצת התוכנית‪.‬‬
‫‪ )10‬סביבת העבודה המומלצת‪. Microsoft Visual Studio C++ Community 2019.. 2020 :‬‬

‫הערות‬
‫‪ )1‬את התוכניות יש להעלות לאתר הקורס בלשונית מטלות עד המועד הרשום‪.‬‬
‫‪ )2‬כל איחור בהגשת מטלה יגרור הורדה בציון‪.‬‬
‫‪ )3‬יש להקפיד על העלאת קובץ אחד הכולל בתוכו את כל הפתרונות למטלה‪.‬‬
‫מועד הגשה‪:‬‬

‫עמוד ‪ 1‬מתוך ‪13‬‬


‫המחלקה להנדסת מכונות‬
Department of Mechanical Engineering

:‫ להבין את הנדרש לביצוע ולענות על עשר השאלות הבאות‬,‫במטלה זו עליך לקרוא היטב את השאלות‬
)10%( 1 ‫שאלה מספר‬
‫ ידוע כי‬,‫ מכשירי סודה סטרים לארץ ולייצוא‬1,000 ‫במפעל סודה סטרים שבאזור התעשייה "עידן הנגב" מייצרים כל יום‬
.‫ מפורקים והחלקים שלהם עוברים למיחזור‬,‫ מהמכשירים המיוצרים נפסלים במהלך בדיקות האיכות‬0.05%
‫כתוב תוכנית המחשבת כמה מכשירי סודה סטרים תקינים ניתן לספק כל יום להפצה לארץ ולחו"ל וכמה מכשירים‬
.‫הולכים לפירוק אחרי פסילה‬
:‫פתרון‬
#include <stdio.h>
//Main program function
void main()
{
//Variables
float totalSodaStreamGood, totalSodaStreamBad;
int total;

//Calculation
total = 1000;
totalSodaStreamBad = total * 0.5 / 100;
totalSodaStreamGood = total - totalSodaStreamBad;

//Outpot
printf("Intel Soda Stream report:\n");
printf("All SodaStream in a day :\t%5d\n", total);
printf("Bad SodaStream in a day :\t%5d\n", (int)totalSodaStreamBad);
printf("Good SodaStream in a day:\t%5d\n", (int)totalSodaStreamGood);
}

)10%( 2 ‫שאלה מספר‬


.‫ נגררים גדולים לרכב כל שבוע‬3-‫ נגררים קלים לרכב ו‬5 ‫במפעל לעבודות מתכת באזור התעשיה של נס ציונה מייצרים‬
.‫ לפני מע"מ‬₪ 9,000 ‫ לפני מע"מ ומחיר נגרר גדול לרכב‬₪ 5,000 ‫מחיר נגרר קל לרכב‬
‫ הפדיון הכולל של המפעל אם הצליח למכור את כל הנגררים שייצר‬,‫כתוב תוכנית המחשבת ומדפיסה מהי ההכנסה השבועית‬
.‫ מההכנסה לפני מע"מ‬33% ‫כולל מע"מ ומהו הרווח בשקלים כשידוע שהרווח עומד על‬
:‫פתרון‬
#include <stdio.h>
//Main program function
void main()
{
//Variables
float HeavyTrailer=3.0,LightTrailer=5.0,TrailersIncome,TrailersProfit;

//Calculation
TrailersIncome=(HeavyTrailer * 9000) + (LightTrailer * 5000) * 1.17;
TrailersProfit=(HeavyTrailer * 9000) * 0.33 + (LightTrailer * 5000) * 0.33;
//Output
printf("Trailers report:\n");
printf("LightTrailer income:\t%9.2f\n", (LightTrailer * 5000) * 1.17);
printf("HeavyTrailer income:\t%9.2f\n", (HeavyTrailer * 9000) * 1.17);

13 ‫ מתוך‬1 ‫עמוד‬
‫המחלקה להנדסת מכונות‬
Department of Mechanical Engineering
printf("All Trailers income:\t%9.2f\n", TrailersIncome);
printf("LightTrailer profit:\t%9.2f\n", (LightTrailer * 5000) * 0.33);
printf("HeavyTrailer profit:\t%9.2f\n", (HeavyTrailer * 9000) * 0.33);
printf("All Trailers income:\t%9.2f\n", TrailersProfit);
}

)10%( 3 ‫שעלה מספר‬


‫ הראשון מד מים אלקטרוני המדדת את ספיקת המים‬,‫במ פעל למדי מים בקיבוץ דורות מייצרים שלושה סוגים של מדי מים‬
‫ השני מד מים מכני המחשב את ספיפק המים ע"י סיבוב גלגלי שיניים הנעים לפי לחץ‬,‫ומשדר את הכמות בשידור אלחוטי‬
‫המים בצנור והשלישי מד מים היברידי המסוגל לבצע את המדידה באופן אלקטורני וכשאין לא מתח הוא מבצע את המדידה‬
.‫מכנית‬
‫ כל המחירים הם לפני מע"מ‬,₪ 1,500 C ‫קוד‬-‫ ומחיר השלישי‬₪ 750 B ‫קוד‬-‫ מחיר השני‬,₪ 1,000 A ‫קוד‬-‫מחיר הראשון‬
.17% ‫בסך‬
.‫כתוב תוכנית הקולטת הזמנה של מדי מים ומחשבת ומדפיסה את הסכום לתשלום אחרי תוספת מע"מ‬
.‫התוכנית תקלוט את קוד מד המים ואת הכמות המוזמנת ולפי הקוד תחשב ותדפיס את הסכום לתשלום‬
:‫פתרון‬
#include <stdio.h>
//Main program function
void main()
{
//Variables
float WaterMeterA = 1000, WaterMeterB = 750;
float WaterMeterC = 1500, WaterMetersPrice = 0;
char code;
int amount;

//InputOutput
printf("Enter code for WaterMeter\n");
scanf("\n%c", &code);
printf("Enter amount of WaterMeters\n");
scanf("%d", &amount);

//Calculation
switch (code)
{
case 'A': WaterMetersPrice = WaterMeterA * amount * 1.17;
break;
case 'B': WaterMetersPrice = WaterMeterB * amount * 1.17;
break;
case 'C': WaterMetersPrice = WaterMeterC * amount * 1.17;
break;
default: printf("You enterd wrong code !!!!\n");
return;
break;
}
//Output
printf("Total price to pay: %.2f\n", WaterMetersPrice);

13 ‫ מתוך‬1 ‫עמוד‬
‫המחלקה להנדסת מכונות‬
‫‪Department of Mechanical Engineering‬‬
‫}‬
‫שאלה מספר ‪)10%( 4‬‬
‫במפעל ‪ TDI‬לייצור כלי נשק באזור התעשיה הצפוני ביבנה מייצרים חלקים‪ ,‬תוספים ואביזרים עבור רובי סער‪ ,‬תתי‬
‫מקלעים‪ ,‬אקדחים ועוד כלי נשק אישיים‪ .‬כל רכיב המיוצר במפעל מותאם לכלי הנשק עבורו הוא תוכנן בדיוק מירבי‪.‬‬
‫למשל עבור אקדחים החברה מתמחה בייצור ערכת ‪ MICRO - RONI GEN4‬שהופכת כל אקדח לרובה קצר קנה‪.‬‬
‫כיוון שהערכה מיוצרת מחומרים מורכבים לאחר בדיקת הערכה לעיתים יש צורך לפסול אותה בגלל אי דיוקים במידות וחוסר‬
‫התאמה מושלמת לאקדח עבורו היא יוצרה‪ ,‬יריחו‪ ,‬גלוק‪ CZ ,‬או אחר‪.‬‬
‫הבדיקה של הערכה לפני אישור מכירתה היא תהליך בין שלושה שלבים‪ ,‬אם הערכה עוברת את שלושת שלבי הבדיקה‬
‫‪ A,B,C‬בהצלחה הערכה יוצאת למכירה‪ ,‬אם הערכה עוברת שני שלבי בדיקה ‪ A,B‬או ‪ A,C‬או ‪ C,B‬בהצלחה היא חוזרת‬
‫לתיקונים והתאמות‪ ,‬אם הערכה עוברת רק שלב בדיקה אחד בהצלחה ‪ A‬או ‪ B‬או ‪ ,C‬היא חוזרת לפס הייצור לפירוק‪ ,‬התאמה‬
‫מחדש‪ ,‬תיקנים‪ ,‬השלמות והרכבה חוזרת‪.‬‬
‫כתוב תוכנית הקולטת את כמות הבדיקות אותם עברה הערכה בהצלחה ומדפיסה מה יש לבצע כדי להביא את הערכה למצב‬
‫אופטימלי ולהתאמה מקסימלית לאקדח עבורה היא יוצרה‪.‬‬
‫פתרון‪:‬‬
‫>‪#include <stdio.h‬‬
‫‪//Main program function‬‬
‫)(‪void main‬‬
‫{‬
‫‪//Variables‬‬
‫;‪int MicroRoniCheckA, MicroRoniCheckB = 1‬‬
‫;‪int MicroRoniCheckC = 1, sumMicroRoniChecks = 0‬‬
‫;‪int code‬‬

‫‪//InputOutput‬‬
‫;)"‪printf("Enter code for MicroRoniCheckA (1=passed 0=fails)\n‬‬
‫;)‪scanf("%d", &MicroRoniCheckA‬‬
‫;)"‪printf("Enter code for MicroRoniCheckB (1=passed 0=fails)\n‬‬
‫;)‪scanf("%d", &MicroRoniCheckB‬‬
‫;)"‪printf("Enter code for MicroRoniCheckC (1=passed 0=fails)\n‬‬
‫;)‪scanf("%d", &MicroRoniCheckC‬‬

‫‪//Calculation‬‬
‫;‪sumMicroRoniChecks = MicroRoniCheckA + MicroRoniCheckB + MicroRoniCheckC‬‬
‫)‪switch (sumMicroRoniChecks‬‬
‫{‬
‫‪case 1:printf("MicroRoni-return to disassembly, adjustment and‬‬
‫;)"‪reassembly\n‬‬
‫;‪break‬‬
‫;)"‪case 2:printf("MicroRoni-return for corrections and adjustments\n‬‬
‫;‪break‬‬
‫;)"‪case 3:printf("MicroRoni-passed the test and is for sale\n‬‬
‫;‪break‬‬
‫;)"‪default:printf("Wrong code !!!\n‬‬
‫;‪return‬‬
‫;‪break‬‬
‫}‬
‫}‬

‫עמוד ‪ 1‬מתוך ‪13‬‬


‫המחלקה להנדסת מכונות‬
‫‪Department of Mechanical Engineering‬‬

‫שאלה מספר ‪)10%( 5‬‬


‫כתוב תוכנית הקולטת מספר שנה בודקת ומדפיסה האם השנה היא שנה מעבורת או לא‪.‬‬
‫כל שנה המקיימת אחד מהתנאים הבאים היא שנה מעוברת‪:‬‬
‫השנה מתחלקת ב‪ 4-‬אך אינה מתחלקת ב‪100-‬‬ ‫‪‬‬
‫השנה מתחלקת ב‪.400-‬‬ ‫‪‬‬
‫למשל ‪, 2004‬היא שנה מעוברת‪ ,‬אך ‪ 1900‬אינה שנה מעוברת‪ ,‬משום שהיא מתחלקת ב‪ ,100-‬אך לא ב‪.400-‬‬
‫‪ 2000‬היא שנה מעוברת‪ ,‬משום שהיא מתחלקת ב‪.400-‬‬

‫פתרון‪:‬‬
‫>‪#include<stdio.h‬‬
‫)(‪int main‬‬
‫{‬
‫‪//Variables‬‬
‫;‪int year‬‬
‫‪//InputOutput‬‬
‫;)"‪printf("==========================================\n‬‬
‫;)"‪printf("Enter a year to check if it is a leap year\n‬‬
‫;)‪scanf("%d", &year‬‬
‫;)"‪printf("==========================================\n‬‬
‫‪//Calculations‬‬
‫)‪if (year % 400 == 0‬‬
‫;)‪printf("%d is a leap year.\n", year‬‬
‫‪else‬‬
‫)‪if (year % 100 == 0‬‬
‫;)‪printf("%d is not a leap year.\n", year‬‬
‫‪else‬‬
‫)‪if (year % 4 == 0‬‬
‫;)‪printf("%d is a leap year.\n", year‬‬
‫‪else‬‬
‫;)‪printf("%d is not a leap year.\n", year‬‬
‫;‪return 0‬‬
‫}‬
‫שאלה מספר ‪)10%( 6‬‬
‫פתח אלגוריתם בשפת ‪ C‬אשר הקלט שלו הוא תו המציין סוג של כיך בחנות נוחות שבתחנות דלק‪.‬‬
‫א ‪ -‬כל אחד מארבעה התווים הבאים מייצג סוג כריך‪:‬‬
‫'‪ - 'P‬כריך פסטרמה‪ – 'C’ ,‬כריך גבינה‪ – 'T' ,‬כריך טופו‪ – 'O’ ,‬כריך חביתה‪.‬‬
‫התו‪ 'X' -‬יקלט במידה והלקוח מתחרט ואינו קונה דבר‪.‬‬
‫ב – כמות הכריכים מכל סוג אותם רוצה הלקוח לרכוש‪.‬‬
‫פלט התכנית יהיה פירוט לכל לקוח כמה עליו לשלם‪ ,‬במידה והסכום שעל הלקוח לשלם גדול מ‪ 50 -‬ש"ח הוא יקבל‬
‫הודעה "זכית במשקה מוגז חינם"‪ .‬אם הוקלד '‪ 'X‬יש להוציא הודעה מתאימה על סיום התוכנית‪.‬‬
‫טבלת מחירי כריכים‪:‬‬
‫‪.₪ 28.5‬‬ ‫'‪ - 'P‬כריך פסטרמה‬
‫‪.₪ 19.9‬‬ ‫’‪ – 'C‬כריך גבינה‬
‫‪.₪ 25.9‬‬ ‫'‪ – 'T‬כריך טופו‬
‫‪.₪ 30.9‬‬ ‫’‪ – 'O‬כריך חביתה‬

‫עמוד ‪ 1‬מתוך ‪13‬‬


‫המחלקה להנדסת מכונות‬
Department of Mechanical Engineering

:‫פתרון‬
#include <stdio.h>
#include <conio.h>
void main()
{
//variables
int amount;
char sandwich;
float total;
//input
printf("Please enter the type of sandwich you have selected:\n");
printf("For a pastrami sandwich enter P or p\n");
printf("For a cheese sandwich enter C or c\n");
printf("For a tofu sandwich enter T or t\n");
printf("For an omelet sandwich enter O or o\n");
printf("For exit the program enter X or x\n");
scanf("%c", &sandwich);
//checking input
if (sandwich == 'x' || sandwich == 'X')
{
printf("Command cancelled\n Exit program");
_getch();
return;
}
//Output
printf("Please enter number of sandwiches desirable\n");
scanf("%d", &amount);

//Checking input
switch (sandwich)
{
case 'p': case 'P':
total = 28.5 * amount;
break;
case 'c': case 'C':
total = 19.9 * amount;
break;
case 't': case 'T':
total = 25.9 * amount;
break;
case 'o': case 'O':
total = 30.9 * amount;
break;
default:
printf("Wrong sandwich Choice !!!\n");
break;
}

13 ‫ מתוך‬1 ‫עמוד‬
‫המחלקה להנדסת מכונות‬
Department of Mechanical Engineering
//Output
printf("You need to pay %.2f NIS\n", total);
if (total > 50)
printf("You won Free drink\n");
_getch();
}
)10%( 7 ‫שאלה מספר‬
:‫) ספרות ומבצעת פעולות שונות כבדיקת תקינות והצגת תפריט פעולות לבחירה‬5( ‫כתבו תכנית הקולטת מספר שלם עד חמש‬
‫ במידה ולא תוצג הודעה מתאימה במידה וכן יש לבקש מהמשתמש לבחור‬,‫) ספרות בלבד‬5( ‫התוכנית תבדוק שהקלט עד חמש‬
.‫באחת מהאפשרויות הבאות‬
.1 ‫זוגי ולהציג הודעה מתאימה הקש‬-‫ לבדיקה האם המספר שנקלט הוא זוגי או אי‬.1
) 4 ‫ התוצאה תהיה‬, 2356 ‫ (לדוגמה עבור המספר‬.2 ‫ לחישוב והדפסת מספר הספרות של המספר הקש‬.2
.3 ‫ לבדיקה האם המספר שלילי הקש‬.3
.4 ‫ להעלאת המספר בריבוע הקש‬.4
.5 ‫ ליציאה מהתוכנית הקש‬.5
.‫ תתקבל כפלט למשתמש הודעה ברורה לגבי תוצאת הבדיקה‬5 ‫ עד‬1 -‫יש להקפיד כי לאחר כל בדיקה מ‬
:‫פתרון‬
#include <stdio.h>
#include <conio.h>

void main()
{
//variables
int num, code = 0, counter = 1;
//Input
printf("Please enter five digits number:\n");
scanf("%d", &num);
//Checking input
if (num <= 99999)
{
printf("The number is O.K. you can select your choice:\n");
printf("1. Check whether the number is even or odd\n");
printf("2. Calculate number digits\n");
printf("3. Check if the number is negative\n");
printf("4. Number square raised\n");
printf("5. Exit program\n");
scanf("%d", &code);
//Checking digit
switch (code)
{
case (1):
if (num % 2 == 0)
printf("The number is even\n");
else
printf("The number is odd\n");
break;
case (2):

13 ‫ מתוך‬1 ‫עמוד‬
‫המחלקה להנדסת מכונות‬
‫‪Department of Mechanical Engineering‬‬
‫)‪while (num = num / 10‬‬
‫;‪counter++‬‬
‫;)‪printf("The number of digits is %d\n", counter‬‬
‫;‪break‬‬
‫‪case (3):‬‬
‫)‪if (num < 0‬‬
‫;)‪printf("The number %d is negative\n", num‬‬
‫‪else‬‬
‫;)‪printf("The number %d is positive\n", num‬‬
‫;‪break‬‬
‫‪case (4):‬‬
‫;)‪printf("The number %d square raised is %d\n", num, num * num‬‬
‫;‪break‬‬
‫‪case (5):‬‬
‫;)"‪printf("Exit Program\n‬‬
‫;)(‪_getch‬‬
‫;‪return‬‬
‫;‪break‬‬
‫;)"‪default: printf("Wrong choice !!!\n‬‬
‫;‪break‬‬
‫}‬
‫}‬
‫‪else‬‬
‫;)"‪printf("The number as more than five digits !!!\n‬‬
‫;)(‪_getch‬‬
‫}‬

‫שאלה מספר ‪)10%( 8‬‬


‫כתבו תוכנית הקולטת מספר שלם וחיובי בין חמש (‪ )5‬ספרות‪ ,‬בודקת את תקינותו‪ ,‬במידה והוא אינו תקין תופיע הודעה‬
‫רלוונטית על המסך‪ ,‬במידה והוא תקין התוכנית מכניסה את המספר למשתנה רלוונטי‪.‬‬
‫בהמשך התוכנית תבדוק האם המספר שנקלט הוא פלינדרום‪ ,‬ומדפיסה למסך את התשובה המתאימה אמת או שקר‪ .‬ניתן‬
‫להשתמש במשתני עזר לפי הצורך והענין‪.‬‬
‫הנחייה‪ :‬מספר המוגדר כפלינדרום הוא מספר שניתן לקרוא אותו גם משמאל לימין וגם מימין לשמאל ובכל מקרה נקבל את‬
‫אותו מספר‪ .‬יש לשים לב לכך שגם אם המספר שנקלט מכיל מספר ספרות זוגי או אי זוגי‪ ,‬מספר הבדיקות שיש לבצע הוא‬
‫תמיד שווה למספר הספרות במספר לחלק ל‪-‬שתיים‪.‬‬
‫דוגמאות‪. 97879, 21912 , 99999, 32823 :‬‬
‫פתרון ‪:1‬‬
‫>‪#include <stdio.h‬‬
‫>‪#include <conio.h‬‬
‫)(‪void main‬‬
‫{‬
‫‪//Variables‬‬
‫;‪int num, newnum = 0‬‬
‫‪//Input‬‬
‫;)"‪printf("Please enter 5 digits number.\n‬‬
‫;)‪scanf("%d", &num‬‬
‫‪//Calculations‬‬

‫עמוד ‪ 1‬מתוך ‪13‬‬


‫המחלקה להנדסת מכונות‬
‫‪Department of Mechanical Engineering‬‬
‫;‪newnum += num % 10 * 10000‬‬
‫;‪newnum += num % 100 / 10 * 1000‬‬
‫;‪newnum += num % 1000 / 100 * 100‬‬
‫;‪newnum += num % 10000 / 1000 * 10‬‬
‫;‪newnum += num / 10000 % 10‬‬
‫‪//Checking the newnum for Palindrome‬‬
‫)‪if (num == newnum‬‬
‫;)"‪printf("The number is palindrome\n‬‬
‫‪else‬‬
‫;)"‪printf("The number is not palindrome\n‬‬
‫;)(‪_getch‬‬
‫}‬
‫פתרון ‪:2‬‬
‫>‪#include <stdio.h‬‬
‫>‪#include <conio.h‬‬
‫)(‪void main‬‬
‫{‬
‫‪//Variables‬‬
‫;‪int num, digit1, digit2, digit3, digit4, digit5‬‬
‫‪//Input‬‬
‫;)"‪printf("Please enter 5 digits number.\n‬‬
‫;)‪scanf("%d", &num‬‬

‫‪//Calculations‬‬
‫;‪digit1 = num % 10‬‬
‫;‪digit2 = num % 100 / 10‬‬
‫;‪digit3 = num % 1000 / 100‬‬
‫;‪digit4 = num % 10000 / 1000‬‬
‫;‪digit5 = num / 10000‬‬
‫‪//Palindrome check‬‬
‫)‪if (digit1==digit5 && digit2==digit4‬‬
‫;)"‪printf("The number is palindrome\n‬‬
‫‪else‬‬
‫;)"‪printf("The number is not palindrome\n‬‬
‫;)(‪_getch‬‬
‫}‬
‫שאלה מספר ‪)10%( 9‬‬
‫כתוב תכנית הקולטת שני מספרים שלמים בני חמש ספרות כל אחד ומבצעת את המשימות הבאות‪:‬‬
‫‪ )1‬בודקת איזה מספר מכיל יותר פעמים ספרה אי זוגית‪ ,‬מספר שהכיל יותר פעמים ספרה זוגית הוא יחשב מספר מנצח‬
‫והוא יודפס יחד עם הודעה מתאימה‪ .‬אם מספר הפעמים שהספרות הזוגיות זהה בשני המספרים‪ ,‬אזי התכנית תדפיס‬
‫שוויון‪ ,‬אם אין במספר ספרות זוגיות כלל התוכנית תדפיס הודעה מתאימה‪.‬‬
‫דוגמאות‪:‬‬
‫עבור הזוג הבא ‪ 49271 ,53416 -‬יודפס‪" :‬שוויון" כיוון שכמות הספרות האי זוגיות בשני המספרים זהה ‪.3‬‬
‫עבור הזוג הבא‪ 14461 ,53752 -‬יודפס‪" :‬המספר השני ניצח"‬
‫הסבר‪:‬כיוון שמספר הספרות האי זוגיות בו (‪ )4‬גדולה יותר מאשר במספר השני בו יש שתי (‪ )2‬ספרות אי זוגיות‪.‬‬
‫עבור הזוג הבא‪ 94261 ,56723 -‬יודפס‪" :‬המספר הראשון ניצח"‬
‫הסבר‪:‬כיוון שמספר הספרות האי זוגיות בו (‪ )3‬גדולה יותר מאשר במספר השני‪.‬‬

‫עמוד ‪ 1‬מתוך ‪13‬‬


‫המחלקה להנדסת מכונות‬
Department of Mechanical Engineering
."‫"אין בשני המספרים ספרות אי זוגיות כלל‬ :‫יודפס‬ 64864 ,26482 – ‫עבור הזוג הבא‬
:‫פתרון‬
#include <stdio.h>
#include <conio.h>
#include <stdio.h>
#include <conio.h>
void main()
{
//Variables
int num1, num2, cnt1 = 0, cnt2 = 0;
//Input
printf("please enter 2 numbers with 5 digits\n");
scanf("%d%d", &num1, &num2);
//Checking the numbers
if (num1 % 10 % 2 == 0)
cnt1++;
if (num1 % 100 / 10 % 2 == 0)
cnt1++;
if (num1 / 100 % 2 == 0)
cnt1++;
if (num1 / 1000 % 2 == 0)
cnt1++;
if (num1 / 10000 % 2 == 0)
cnt1++;

if (num2 % 10 % 2 == 0)
cnt2++;
if (num2 % 100 / 10 % 2 == 0)
cnt2++;
if (num2 / 100 % 2 == 0)
cnt2++;
if (num2 / 1000 % 2 == 0)
cnt2++;
if (num2 / 10000 % 2 == 0)
cnt2++;
//Output
printf("Even digits in num1 %d\n", cnt1);
printf("Even digits in num2 %d\n", cnt2);
//Checking for the winner
if (cnt1 > cnt2)
printf("Num1 %d wins !!!\n", num1);
else
if (cnt1 < cnt2)
printf("Num2 %d wins !!!\n", num2);
else
printf("Equal even digits!!!\n");
_getch();
}

13 ‫ מתוך‬1 ‫עמוד‬
‫המחלקה להנדסת מכונות‬
‫‪Department of Mechanical Engineering‬‬

‫שאלה מספר ‪)10%( 10‬‬


‫כתוב תכנית המבצעת את שבע (‪ )7‬המשימות הבאות‪:‬‬
‫‪ .1‬קולטת ערכים רלוונטיים מהמשתמש‪ ,‬מחשבת ומדפיסה שטח ריבוע‪.‬‬
‫‪ .2‬קולטת ערכים רלוונטיים מהמשתמש‪ ,‬מחשבת ומדפיסה שטח מלבן‪.‬‬
‫‪ .3‬קולטת ערכים רלוונטיים מהמשתמש‪ ,‬מחשבת ומדפיסה שטח מקבילית‪.‬‬
‫‪ .4‬קולטת ערכים רלוונטיים מהמשתמש‪ ,‬מחשבת ומדפיסה שטח מעוין‪.‬‬
‫‪ .5‬קולטת ערכים רלוונטיים מהמשתמש‪ ,‬מחשבת ומדפיסה שטח משולש‪.‬‬
‫‪ .6‬קולטת ערכים רלוונטיים מהמשתמש‪ ,‬מחשבת ומדפיסה שטח מעגל‪.‬‬
‫‪ .7‬קולטת ערכים רלוונטיים מהמשתמש‪ ,‬מחשבת ומדפיסה שטח טרפז‪.‬‬
‫הנחיות‪ :‬עליך לבצע את החישובים לפי הנוסחאות הבאות‪ ,‬לאחר קליטת הערכים‬
‫עבור כל דורה‪ ,‬יש לבדוק את תקינות הקלט ולבצע את החישוב ולהדפיס את‬
‫התוצאה‪.‬‬

‫עמוד ‪ 1‬מתוך ‪13‬‬


‫המחלקה להנדסת מכונות‬
Department of Mechanical Engineering

:‫פתרון‬
#include <stdio.h>
#include <conio.h>
int main()
{
//Variables
float squareside, squarebase, rectangleside, parallelogrambase, radius;
float parallelogramheight, firstdiagonal, seconddiagonal, trianglebase;
float triangleheight, firsttrapezebase, secondtrapezebase, trapezeheight;
//1-square area calculation
printf("square area :\nEnter side length\n");
scanf("%f", &squareside);
printf("square area %.3f\n", squareside * squareside);

//2-rectangle area calculation


printf("rectangle area :\nEnter length basis and side length\n");
scanf("%f%f", &squarebase, &rectangleside);
printf("rectangle area %.3f\n", rectangleside * squarebase);

//3-parallelogram area calculation


printf("parallelogram area :\nEnter length basis and height\n");
scanf("%f%f", &parallelogrambase, &parallelogramheight);
printf("parallelogram area %.3f\n", parallelogrambase * parallelogramhigh);

//4-rhombus area calculation


printf("rhombus area :\nEnter length diagonal 1 and diagonal 2\n");
scanf("%f%f", &firstdiagonal, &seconddiagonal);
printf("parallelogram area %.3f\n", firstdiagonal * seconddiagonal * 0.5);

//5-triangle area calculation


printf("triangle area :\nEnter length height and basis\n");
scanf("%f%f", &trianglebase, &triangleheight);
printf("triangle area %.3f\n", trianglebase * triangleheight * 0.5);

//6-circle area calculation


printf("circle area :\nEnter length radius\n");
scanf("%f", &radius);
printf("circle area %.3f\n", radius * radius * 3.14);

//7-trapez area calculation


printf("trapeze area :\nEnter length basis 1 and basis 2 and height\n");
scanf("%f%f%f", &firsttrapezebase, &secondtrapezebase, &trapezeheight);
printf("trapeze area %.3f\n",(firsttrapezebase + secondtrapezebase) *
trapezehigh * 0.5);
_getch();
}
!!! ‫עבודה פורייה‬

13 ‫ מתוך‬1 ‫עמוד‬
‫המחלקה להנדסת מכונות‬
‫‪Department of Mechanical Engineering‬‬
‫ד"ר שייקה בילו‬

‫עמוד ‪ 1‬מתוך ‪13‬‬

You might also like