Professional Documents
Culture Documents
Assignment 1-Variables & Input Output-Answers
Assignment 1-Variables & Input Output-Answers
Assignment 1-Variables & Input Output-Answers
מטרות
)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יש להקפיד על העלאת קובץ אחד הכולל בתוכו את כל הפתרונות למטלה.
מועד הגשה:
: להבין את הנדרש לביצוע ולענות על עשר השאלות הבאות,במטלה זו עליך לקרוא היטב את השאלות
)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);
}
//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);
}
//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
}
}
פתרון:
>#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כריך חביתה
:פתרון
#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
}
//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גדולה יותר מאשר במספר השני.
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
:פתרון
#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);
13 מתוך1 עמוד
המחלקה להנדסת מכונות
Department of Mechanical Engineering
ד"ר שייקה בילו