אנשים אם אפשר קצת עזרה בC... - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

אנשים אם אפשר קצת עזרה בC...


ciclop

Recommended Posts

אם יש לכם זמן, אז אנא נסו לעזור לי בשאלות הבאות:

*כתבו תוכנית שקוראת מספר ממשי חיובי (המייצג מסה), ולאחריו מופרד ע"י רווח אחד מן התווים הבאים: k, c, o או p, המייצג את יחידת המידה (kilogram, carat, ounce או pound). התכנית מחשבת ומדפיסה את המסה ביחידות של גרמים, כאשר היא מבצעת את ההמרה על-פי הטבלה הבאה: kilogram = 1000 gr

carat = 0.2 gr

ounce = 28.34 gr

pound = 453.44 gr

לדוגמה (שימו לב לרווח המפריד):

קלט: 20.4 o

פלט: 578.136 gr

מלבד המקום בו אתם בודקים שהמסה חיובית, יש לכתוב את התכנית ללא שימוש ב- if-else !

הערה: הקפידו לבדוק את הקלט: כזכור, אסור שהמסה תהיה מספר שלילי וכן על יחידת-המידה להיות חוקית. בכל מקרה אחר, הדפיסו הודעת שגיאה וסיימו את התכנית.

*כתבו תכנית שקוראת רצף של מספרים ממשיים אי-שליליים, עד שהיא נתקלת במספר שלילי במקרה זה היא עוצרת, ומדפיסה את הסטטיסטיקות הבאות על המספרים שקראה (לא כולל המספר האחרון, השלילי):

המספר המקסימאלי.

המספר המינימאלי.

הסכום של כל המספרים.

הממוצע של המספרים.

*קירוב הבסיס הטבעי

כידוע לנו, הבסיס הטבעי (e = 2.71828 ) מוגדר על-ידי הגבול הבא:e=lim(1+1/n)^n, n->infinity

כתבו תכנית בשם שקוראת כקלט את מספר איטרציות הקירוב הנדרשות (מספר שנסמן N), ומדפיסה את כל ערכי הביטוי הנ"ל עבור כל ערכי n שבין 1 ל-N. דאגו להשתמש במשתנים מסוג double (ולא float), כדי להרוויח דיוק רב יותר.

הערה: שיטת הקירוב הזו איננה מוצלחת במיוחד. נסו למשל לעבוד עם 100 איטרציות, ותיווכחו כי הטעות עדיין גדולה מ- 0.01 ...

הערה: בתכנית זו אין להשתמש בפונקציות עזר מן הספריה math.h (למי שמכיר).

***תודה על המאמץ!

קישור לתוכן
שתף באתרים אחרים

תודה חבוב, אבל בעיקרון זה מה שניסיתי כבר לעשות ולא עבד. התוכנה מתקמפלת בלי ארורים אבל היא לא עושה את מה שהיא צריכה. זה מה שניסיתי:

#include <stdio.h>

int main(void)

{

double mass;

char letter;

printf("insert mass and first letter of mass unit\n");

scanf("%lf %c",&mass,&letter);

if (mass<0)

printf("Invalid input\n");

return 1;

switch (letter)

{

case 'o':

printf("%lf gr",mass*28.34);

break;

case 'c':

printf("%lf gr",mass/5);

break;

case 'k':

printf("%lf gr",mass*1000);

break;

case 'p':

printf("%lf gr",mass*435.44);

break;

default: printf ("Invalid input\n");

}

return 0;

}

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...