ساعت دوم روز است. توسعه برنامه نویسی درس از الگوریتم های خطی. انواع داده های عددی
| § 3.3. برنامه نویسی الگوریتم های خطی
درس 26
§ 3.3. برنامه نویسی الگوریتم های خطی
کلید واژه ها:
نوع داده واقعی
نوع داده عدد صحیح
نوع داده کاراکتر
نوع داده رشته ای
نوع داده بولی
برنامه هایی که الگوریتم های خطی را پیاده سازی می کنند ساده ترین هستند. تمام دستورات موجود در آنها به صورت متوالی و یکی پس از دیگری اجرا می شوند.
هنگام برنامه نویسی الگوریتم های خطی، بیایید نگاهی دقیق تر به انواع داده های عدد صحیح، بولی، کاراکتر و رشته ای بیندازیم.
3.3.1. انواع داده های عددی
شما قبلاً با انواع داده های عددی اولیه آشنا هستید عدد صحیحو واقعی. توابع استاندارد برای آنها قابل اعمال است که برخی از آنها در جدول آورده شده است. 3.3.
جدول 3.3
توابع استاندارد پاسکال
بررسی نحوه عملکرد توابع گرد, بین المللیو فراکساستفاده از آنها به برخی از واقعی است ایکس. برنامه مربوطه به شکل زیر خواهد بود:
برنامه را چندین بار برای هر x ∈ اجرا کنید (10.2؛ 10.8؛ -10.2؛ -10.8). در مورد نوع نتیجه هر یک از این توابع چه می توانید بگویید؟
3.3.2. نوع داده عدد صحیح
عملیات زیر بر روی اعداد صحیح در پاسکال انجام می شود: جمع (+)، تفریق (-)، ضرب (*)، بدست آوردن یک ضریب صحیح (div)، گرفتن باقیمانده عدد صحیح از تقسیم (mod) و تقسیم (/). نتایج پنج عملیات اول اعداد صحیح هستند. نتیجه یک عمل تقسیم می تواند یک عدد واقعی باشد.
بیایید مثالی از استفاده از عملیات div و mod را در نظر بگیریم، در پاسکال برنامه ای برای یافتن مجموع ارقام یک عدد سه رقمی طبیعی وارد شده از صفحه کلید بنویسیم.
ما از این واقعیت استفاده می کنیم که یک عدد سه رقمی مثبت را می توان به صورت مجموع زیر نشان داد: x - a * 100 + 6 * 10 + c، که در آن a، b، c ارقام عدد هستند.
مجموع ارقام 123 چقدر است؟ و اعداد -123؟ آیا نتایج شما با نتایج برنامه مطابقت دارد؟ چگونه می توان یک باگ در برنامه را توضیح داد و رفع کرد؟
3.3.3. انواع داده های کاراکتر و رشته ای
مقدار یک مقدار کاراکتر (نوع کاراکتر) در پاسکال به هر یک از کاراکترهایی گفته می شود که با فشار دادن یکی از کلیدها یا ترکیبی از کلیدهای صفحه کلید و همچنین برخی از کاراکترهای دیگر از جمله کاراکترهای نامرئی می توان آنها را در صفحه به دست آورد. مجموعه ای از این نمادها از 256 عنصر تشکیل شده است که به هر کدام از آنها، با توجه به جدول کد استفاده شده، یک کد اختصاص داده می شود - عدد 0 تا 255.
کاراکترهای مربوط به 32 کد اول کاراکترهای کنترلی هستند و بقیه کاراکترهای نمایشگر هستند. کاراکترهای نمایش داده شده نیز شامل یک فاصله است که دارای کد 32 است.
علائم نگارشی، علائم عملیات حسابی، اعداد، حروف بزرگ و کوچک لاتین مربوط به کدهای 33 تا 127 است. حروف الفبای ملی مربوط به کدهایی با اعداد 128 و بالاتر است.
در متن برنامه، یک ثابت نوع کاراکتر را می توان با قرار دادن هر کاراکتر نمایش داده شده در آپستروف ها مشخص کرد: "5"، "B"، "*".
اگر مقدار یک متغیر کاراکتری از صفحه کلید خوانده شود، باید بدون آپستروف تایپ شود.
برای پیدا کردن کد کاراکتر، از تابع ord استفاده کنید، جایی که کاراکتر به عنوان پارامتر داده می شود.
برای پیدا کردن یک کاراکتر به کد، از تابع chr استفاده کنید، جایی که کد کاراکتر به عنوان یک پارامتر مشخص شده است.
مقدار یک مقدار رشته (رشته نوع) یک دنباله دلخواه از کاراکترهای محصور در آپاستروف است. در پاسکال (مانند زبان الگوریتمی) رشته ها را می توان به هم متصل کرد.
مثال.بیایید برنامه ای به پاسکال بنویسیم که در آن برای حرفی که از صفحه کلید وارد می شود، کد آن روی صفحه نمایش داده می شود. سپس یک رشته روی صفحه نمایش داده می شود که دنباله ای از سه حرف از جدول کد استفاده شده است: حرف قبل از حرف اصلی. حرف اولیه؛ نامه به دنبال اصل
3.3.4، نوع داده Boolean
همانطور که می دانید، مقادیر بولی تنها دو مقدار را می گیرند. در پاسکال است نادرستو درست است، واقعی. این ثابت ها به گونه ای تعریف شده اند که نادرست هستند< true.
مقادیر بولی در نتیجه عملیات مقایسه عددی، کاراکتر، رشته و عبارات بولی. بنابراین، در پاسکال، یک متغیر بولی را می توان نتیجه یک عملیات مقایسه نسبت داد.
مثال. بیایید برنامه ای بنویسیم که صحت عبارت "عدد n زوج است" را برای یک عدد صحیح دلخواه n تعیین کند.
اجازه دهید پاسخیک متغیر بولی و n یک متغیر عدد صحیح است. سپس در نتیجه اجرای عملگر انتساب
ans:=n mod 2 = 0
متغیر پاسخمقدار تخصیص داده خواهد شد درست است، واقعیبرای هر n و نادرستدر غیر این صورت.
متغیرهای بولی را می توان مقادیر عبارات منطقی ساخته شده با استفاده از توابع منطقی شناخته شده برای شما و یا، نه، که در پاسکال بر این اساس نشان داده شده اند، اختصاص داد. و، یا، نه.
مثال.بیایید برنامه ای بنویسیم که درستی عبارت "یک مثلث با طول ضلع a، b، c متساوی الساقین است" را برای اعداد صحیح دلخواه a، b، c تعیین کند.
مهم ترین
زبان پاسکال از انواع داده های واقعی، عدد صحیح، کاراکتر، رشته ای، منطقی و دیگر انواع داده ها استفاده می کند. عملیات و توابع مربوطه برای آنها تعریف شده است.
سوالات و وظایف
1. با مطالب ارائه پاراگراف موجود در مکمل الکترونیکی کتاب درسی آشنا شوید. از این مواد هنگام تهیه پاسخ به سوالات و تکمیل تکالیف استفاده کنید.
2. برای x معین، y را با استفاده از فرمول y \u003d x 3 + 2.5x 2 - x + 1 محاسبه کنید.
که در آن:
الف) عملیات افزایش قدرت ممنوع است.
ب) در یک عملگر انتساب، نمی توانید بیش از یک عملیات حسابی (جمع، ضرب، تفریق) استفاده کنید.
ج) بیش از پنج عملگر انتساب را نمی توان در یک برنامه استفاده کرد.
سرنخ : عبارت را به شکل زیر تبدیل کنید: y \u003d ((x + 2.5) x - 1) x + 1.
3. با توجه به مختصات داده شده نقاط A و. طول قطعه AB را محاسبه کنید.
سرنخ . فاصله d بین نقاط A (x a, y a) و B (x b, y b) با فرمول بیان می شود.
4. طول اضلاع مثلث a,b,c مشخص است. برنامه ای بنویسید تا مساحت این مثلث را محاسبه کنید.
5. مختصات رئوس A، B، C مثلث معلوم است. برنامه ای بنویسید تا مساحت این مثلث را محاسبه کنید.
6. اگر مبلغ مالیات بر حسب روبل و کوپک محاسبه شود، خدمات مالیاتی آن را به نزدیکترین روبل گرد می کند (تا 50 کوپک - با کسری، بیش از 50 کوپک (از جمله 50) - با مازاد). از رایانه برای وارد کردن مبلغ دقیق مالیات و نمایش میزان پرداخت استفاده کنید.
7. عملکرد تابع تصادفی را با اجرای چندین بار برنامه کاوش کنید:
چگونه می توان یک عدد تصادفی از بازه (0، x) بدست آورد؟
چگونه می توانید یک عدد تصادفی از بازه (0، x] بدست آورید؟
چگونه می توانید یک عدد تصادفی از بازه (n, x + n) بدست آورید؟
8. یک شرکت بلیط قرعه کشی در سه دسته صادر کرد: برای جوانان، بزرگسالان و بازنشستگان. شماره بلیط های هر دسته در موارد زیر است:
برای جوانان - از 1 تا 100؛
برای بزرگسالان - از 101 تا 200؛
برای بازنشستگان - از 201 تا 250.
از رایانه برای انتخاب تصادفی بلیط بخت آزمایی در هر دسته استفاده کنید.
9. برنامه ای به پاسکال بنویسید که برای یک عدد دو رقمی طبیعی دلخواه، تعیین کند:
الف) مجموع و حاصل ضرب ارقام آن؛
ب) عددی که با جابجایی ارقام عدد اصلی ایجاد می شود.
10. برنامه ای را به زبان پاسکال بنویسید که الگوریتم صندوقدار را پیاده سازی کند که در کمترین تعداد ممکن اسکناس های 500 (k500)، 100 (klOO)، 50 (k50) و 10 (klO) روبلی به مشتری تغییر (های) می دهد. .
11. می رود ک-ثانیه روز برنامه ای را توسعه دهید که با توجه به ورودی ک-ثانیه روز تعیین می کند چند ساعت کامل ساعتو دقیقه کامل متراز اول روز گذشت به عنوان مثال، اگر ک= 13 257 = 3 3600 + 40 60 + 57، سپس ساعت= 3 و متر = 40.
نمایش عبارت:
ساعت ... دقیقه است
.به جای بیضی، برنامه باید مقادیر hum را خروجی دهد و آنها را از کلمات با یک فاصله جدا کند.
12. برنامه ای به پاسکال بنویسید که مجموع کدهای حروف کلمه "BYTE" را محاسبه کند.
13. یک برنامه پاسکال بنویسید که رشته ای از کاراکترها را تولید و نمایش دهد که کدهای آن 66، 69، 71، 73، 78 است.
14. برنامه ای بسازید که سه مقدار رشته را بخواهد - یک صفت، یک اسم و یک فعل مرتبط، و سپس تمام عبارات ممکن را با استفاده از کلمات وارد شده چاپ می کند.
15. با توجه به مقادیر متغیرهای عدد صحیح: a = 10، b = 20. مقدار متغیر منطقی چقدر خواهد بود رزبعد از عملیات واگذاری؟
الف) rez:=(a=10) یا (b>10)
ب) rez: = (a>5) و (b>5) و (a<20) and (b<30)
ج) رز: = (نه (الف<15)) or (b>20)
16. برنامه ای بنویسید که معرفی کند درست است، واقعیاگر گفته درست باشد، و نادرستدر غیر این صورت:
الف) مجموع ارقام یک عدد سه رقمی ایکسیک عدد زوج است؛
ب) مثلث با اضلاع الف، ب، جهمه کاره است
محاسبه |
||||||
وظیفه 2 (برنامه 1_2)
این k ثانیه از روز است. تعیین کنید که چند ساعت کامل (h) و دقیقه کامل (m) و ثانیه (s) از این لحظه گذشته است.
مساحت ذوزنقه را با پایه های a، b، ارتفاع h و حجم مخروط کوتاه شده تعیین کنید، اگر a، b را - مساحت پایه ها در نظر بگیریم.
3. مختصات مرکز ثقل سه نقطه مادی با جرم های m 1, m 2, m 3 و مختصات (x 1, y 1), (x 2, y 2), (x 3, y 3) را تعیین کنید.
4. حجم توپ و مساحت دایره را برای یک شعاع داده شده R محاسبه کنید، نسبت بین آنها را پیدا کنید.
5. میانه های مثلث را در ضلع های داده شده a, b, c محاسبه کنید.
6. مساحت سطح و حجم مخروط را برای شعاع و ارتفاع داده شده h محاسبه کنید.
7. برای شعاع معین، حجم توپ و مساحت سطح را پیدا کنید.
8. محاسبه کنید چه ثانیه ای از روز در موقعیت عقربه ها در ساعت h، m دقیقه و s ثانیه است و همچنین زاویه (بر حسب درجه) بین موقعیت عقربه ساعت در ابتدای روز و موقعیت آن. در لحظه مشخص شده
9. یک عدد صحیح دو رقمی x وارد کنید<15. Написать программу перевода его в восьмеричную систему счисления.
10. مختصات دو نقطه (x 1، y 1)، (x 2، y 2) را وارد کنید. فاصله بین آنها را پیدا کنید.
آزمایشگاه 2
برنامه نویسی الگوریتم های شاخه ای کنترل بیانیه های انتقال
ساختار دستور انتقال کنترل شرطی:
اگر (<выражение>) <оператор 1> دیگر <оператор 2>;
(اگر) (در غیر این صورت) - کلمات کلیدی،
جایی که<условие>یک عبارت بولی دلخواه است که می تواند دو مقدار داشته باشد: true (TRUE) و false (FALSE).
<оператор>- هر عملگر زبان C با نقطه ویرگول به پایان می رسد.
شکل کوتاه عملگر شرطی:
اگر (<выражение>) <оператор>;
عملگر پرش بدون قید و شرط: قابل اعتماد و متخصص <идентификатор-метка>;
برچسب یک شناسه است. برچسب قبل از عبارت C/C++ که پرش به آن انجام میشود قرار میگیرد و با یک دو نقطه (:) از هم جدا میشود.
مثال 1. برنامه ای برای محاسبه حقوق پایه طبق قانون زیر تهیه کنید: اگر سابقه کار کارمند کمتر از سه سال باشد، حقوق 100 دلار است، با سابقه کار از سه تا 5 سال - 150 دلار، بیش از 5 سال حقوق. هر سال 10 دلار افزایش می یابد و با تجربه بیش از 20 سال، 300 دلار است.
برای برنامه ریزی راه حل این مسئله، فرمول ریاضی مسئله را تعریف می کنیم:
100 اگر ST< 3;
ZP= 150 اگر 3 ≤ST 5;
150+ (ST -5)*10 اگر 5< ST≤ 20;
300 اگر ST > 20;
#عبارتند از
#عبارتند از
void main()
(int ST; //ST- تجربه (بایت (عدد صحیح) نوع بدون علامت)
floatZP; //ZP- حقوق (نوع شناور)
printf("\n ارشد را وارد کنید");
scanf("%d"،&ST);
اگر (ST<3) ZP = 100;
در غیر این صورت اگر (ST<5) ZP = 150;
دیگری اگر (ST>=20) ZP=300;
دیگر ZP=150+(ST-5)*10;
printf ("\n حقوق = %10.2f$\n",ZP);
بیانیه را انتخاب کنید تعویض بسته به مقدار هر متغیر یا عبارت (کلید انتخاب)، اجازه می دهد تا عملگرهای خاصی را که با ثابت های مربوطه مشخص شده اند، اجرا کند.
ساختار اپراتور:
تعویض (<выражение>)
مورد<константа 1>: <группа операторов 1>;
مورد<константа 2>: <группа операторов 2>;
مورد<константа N>: <группа операторов N>
پیش فرض: <операторы>;
}
جایی که<выражение>-بیان (متغیر) از هر نوع ترتیبی.
<константа>ثابت از همان نوع است<выражение>;
<оператор>- اپراتور دلخواه C/C++.
مثال 2. نام شکل را بسته به تعداد گوشه ها (مثلث، چهار گوش، پنج ضلعی، شش ضلعی، چند ضلعی) چاپ کنید.
گونه ای از اجرای کار با استفاده از عملگر انتخاب توسط SA (شکل 2b) و برنامه زیر ارائه شده است:
#عبارتند از
#عبارتند از
void main()
{
int T; // T تعداد گوشه هاست
clrscr(); // صفحه نمایش را پاک کنید
printf ("تعداد گوشه ها را وارد کنید");
scanf("%d"،&T);
سوئیچ (T)
مورد 1: مورد 2: printf ("این شکل نیست\n"); زنگ تفريح؛
مورد 3: printf ("با %d گوشه - مثلث\n"، T); زنگ تفريح؛
مورد 4: printf ("با %d گوشه - چهار\n"، T); زنگ تفريح؛
مورد 5: printf ("با %d گوشه - پنج ضلعی\n"، T); زنگ تفريح؛
مورد 6: printf ("با %d گوشه - شش ضلعی\n"، T); زنگ تفريح؛
پیش فرض : printf ("با %d گوشه - چند ضلعی\n"، T);
تمرین 1 (برنامه 2_1)
مقدار تابع را بسته به فاصله زمانی که آرگومان وارد شده از صفحه کلید در آن قرار می گیرد محاسبه کنید:
1. قلعه ,
a t 2 log t در 1
,
که در آن a=-0.5،b=2 z = 1 در t<1,
e a t cos b t در t>2،
2. برای x ,
در x2،
که در آن a=2.3 f=x در 0.3< x 2,
cos(x-a) برای x
,
3. برای x ، (a+b)/(e x + cosx) در 0 x2.3،
که در آن a=-2.7،b=-0.27 z = (a+b)/(x+1) در 2.3 x5،
e x +sinx در 7
,
4. برای i , a i 4 + b i برای i< 10,
که در آن a=2.2،b=0.3. y = tg (i + 0.5) برای i = 10،
e 2i +
برای من > 10،
5. برای x , x 2 - 7/x 2 در x<1.3,
که در آن a = 1.5 y = تبر 3 + 7
در 1.3 x3،
log(x + 7
) برای x
,
6. قلعه [-1.4],
در تی<0.1,
که در آن a=2.1،b=0.37. z = at + b در 0.1 t 2،
در تی
,
7. برای x ، a e sin x +2.5 در x<0.3,
جایی که a=1.5. y = e cos x + a در 0.3 x<4,
(sin x)/ (a + e x) برای x 4،
8. برای x ، y = a/x + b x 2 - c در x
,
که در آن a=1.8،b=-0.5، c=3.5 (a + bx)/
در x> 1.2،
9. برای تی ، تی
برای t>a،
که در آن a=2.5 z = t sin a t در t=a،
e-at cos a t at t 10. برای x ، e - bx گناه b x در x<2.3, که در آن a=1،b=3. y= cos bx در 2.3 e -ax cos b x در x
,