زنگ

کسانی هستند که این اخبار را قبل از شما می خوانند.
برای دریافت جدیدترین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید زنگ را بخوانید
بدون هرزنامه

به طور کلی ، امروز ما در مورد هر یک از چرخه های پاسکال اطلاعات بیشتری کسب خواهیم کرد و نحوه تنظیم آنها را خواهیم دید. ما از هم جدا خواهیم کرد حلقه while با پیش شرط, برای حلقه با پارامترو حلقه تکرار- تا با شرط پس از شرط.

1. حلقه با پارامتر در Pascal - FOR

حلقه FOR شرط خاصی را تنظیم می کند که طبق آن برنامه قبل از اجرای آن کار خواهد کرد ، فرض کنید ما باید 5 (یا n) بار برنامه را حلقه کنیم ، در این صورت می توان با استفاده از این حلقه به راحتی این کار را انجام داد. حلقه FOR یک مشخصه دارد - یک شمارنده ، که معمولاً با حرف i یا j مشخص می شود.

ظاهریک حلقه با یک پارامتر در پاسکال:

برای i: = 1 به n انجام // من i را اول به یک ، سپس به دو ، سه ، ... ، n اختصاص می دهیم

بعد از پاس 1 ، 1 را به متغیر i اختصاص می دهیم ، بعد از ثانیه 2 را به همین ترتیب اختصاص می دهیم و همینطور ادامه می دهیم تا به n برسیم. to است تا .. به ترتیب صعودی ، همچنین نزولی وجود دارد - به .. به ترتیب نزولی.

نمودار بلوک یک حلقه با یک پارامتر:

2. حلقه پیش شرط در Pascal - در حالی که

عملگر حلقه پیش شرط تعداد دفعات نامعلومی را پیشاپیش انجام می دهد. اگر برخی عبارات منطقی یا نتیجه آن نادرست باشد ، از این حلقه خارج می شود. از آنجا که صحت عبارت منطقی در ابتدا بررسی می شود ، ممکن است بدنه حلقه حتی یک بار اجرا نشود.

ساختار حلقه با پیش شرط:

در حالی که شروع به پایان می دهید ؛

بیان بولی، حقیقت آن در ابتدای اجرای اپراتور حلقوی بررسی می شود.

هرگونه عبارات زبان قابل اجرا.

دستور اجرای چرخه:

در حالی که شرط درست است ، بدنه حلقه اجرا می شود. به محض اینکه شرایط نادرست شود ، اجرای حلقه خاتمه می یابد.

نمودار بلوک یک حلقه با پیش شرط:


توجه: بلوک های مستطیلی هر عملی را که در یک چرخه یا بعد از آن انجام می شود (مرحله چرخه) ، به صورت بیضی شکل - ابتدا یا انتهای کل برنامه یا قسمت آن ، نشان می دهد. نقش اصلی در این بلوک - نمودار توسط قسمت مرکزی آن بازی می شود.

مثال:

وظیفه: مجموع سری 1 + 1.5 + 2 + 2.5 + 3 + 3.5 + .. + 30 را محاسبه کنید

برنامه مثال-در حالی که؛

جمع جمع: واقعی؛ n: واقعی؛ مجموع BEGIN: = 0؛ n: = 1؛ while n

3. حلقه با شرایط پس از تکرار - تکرار - تا.

این عملگر شبیه عملگر یک حلقه با پیش شرط است ، اما از نظر تفاوت در این شرایط پس از اجرای بدنه (اعمال) حلقه ، متفاوت است. این تضمین می کند که برخلاف حلقه های تجزیه شده قبلی ، حداقل یک بار اجرا می شود.

لطفا توجه داشته باشید که این اپراتورحلقه وجود چندین عملگر را در متن حلقه فرض می کند ، یعنی شما می توانید چندین عمل را انجام دهید ، بنابراین کلمات سرویس شروع و پایان نیازی نیست.

دنباله دستورات موجود در متن حلقه یک بار اجرا می شود و پس از آن شرط نوشته شده پس از کلمه تا بررسی می شود. اگر شرط برآورده نشود ، چرخه به پایان می رسد. در غیر این صورت ، بدن حلقه یک بار دیگر تکرار می شود ، پس از آن دوباره شرایط بررسی می شود.

نمودار بلوک یک حلقه با پس شرط:

قالب ضبط ، ساختار حلقه:
تکرار تا زمانی که

مثال:

آزمون برنامه 2؛ Var b: واقعی؛ شروع b: = 100؛ b را تکرار کنید: = b / 2؛ تا اینکه ب

نتیجه گیری:

1- یک حلقه با یک پارامتر از متغیری به نام پارامتر یا شمارنده حلقه استفاده می کند. قبل از اجرای چرخه ، پارامتر (شمارنده) تنظیم می شود مقدار اولیه... بعد از اجرای مرحله حلقه ، مقدار پارامتر یک افزایش می یابد. چرخه تا رسیدن پارامتر به مقدار نهایی خود ادامه می یابد ، که بعد از (پایین) نشان داده می شود.

2. حلقه با پیش شرط تا زمانی که شرط اجرا نادرست شود ، اجرا می شود و در صورت صحت شرط ادامه می یابد.

3. حلقه با پس شرط تا زمان واقعی شدن شرط اجرا می شود ، اگر شرط نادرست باشد ، حلقه ادامه می یابد.

هدف: برای ارائه ایده ای از حلقه های دارای پارامتر ، نمودارهای بلوکی را نشان می دهیم که چنین حلقه هایی را نشان می دهد. یاد بگیرید که نمودارهای فلو و برنامه ها را با استفاده از مثالهای خصوصی با چرخه تنظیم کنید. ایده تفاوت حلقه ها را با یک پیش شرط ، یک پس شرط و یک حلقه با یک پارامتر ارائه دهید. اگر برنامه شامل چندین حلقه است ، یاد بگیرید که از حلقه های مختلف در یک برنامه استفاده کنید. با استفاده از کامپایلرهای BPW یا Turbo Pascal برنامه ها را وارد و اجرا کنید.

1. اپراتوربرای ... به ... انجام ... حلقه

گاهی اوقات مشخص می شود که چرخه باید چند بار اجرا شود. برای مشکلات از این نوع ، پاسکال اپراتورها را در اختیار دارد حلقه هایی با پارامترها .
قالب نوشتن چنین عملگرهایی به شرح زیر است:
برای<چرخه بخار> := <مقدار شروع> به<مقدار نهایی.> انجام دادن <اپراتور>.
اینجا برای, به, انجام دادن- کلمات رزرو شده (برای ، قبل ، اجرا) ؛
<بخار چرخه> - پارامتر حلقه - متغیر از نوععدد صحیح (به طور دقیق تر ، هر نوع ترتیبی);
<زود معنی.> - مقدار اولیه - شماره یا عبارت از همان نوع ؛
<پایان معنی.> - مقدار نهایی - شماره یا عبارت از همان نوع ؛
<اپراتور> یک عملگر دلخواه پاسکال است.
اگر چندین اپراتور وجود داشته باشد ، همانند اپراتور در حالی که ... انجام دادن ...،از براکت های اپراتور استفاده می شود: شروع ... پایان.
به عنوان مثال ، سوابق زیر از عملگر حلقه امکان پذیر است:

برایمن: = الف بهب انجام دادن s1؛

برای j: = a بهب شروع کنید s1؛ s2؛ ... ، sn پایان؛ یا

برای k: = p بهمتر انجام دادن
شروع
s1؛
s2؛
...
sn
پایان;

در اینجا s1 ، s2 ، s3 ، ... sn عملگرهای چرخه هستند.
هنگام اجرای عبارت برایابتدا عبارت ارزیابی می شود<مقدار شروع.> و اختصاص مقدار آن به متغیر حلقه
<چرخه بخار> := <زود معنی.>.
پس از آن ، آنها به صورت چرخه ای تکرار می شوند:
1) بررسی شرایط<چرخه بخار> <پایان معنی.> ؛ اگر شرط برآورده نشود ، اپراتور برایترک کرد
2) اجرای بیانیه<اپراتور> یا عملگرهای s1؛ s2؛ s3؛ ... sn؛
3) متغیر حلقه<بخار چرخه> یک افزایش می یابد.

باید فوراً متوجه شوید که مشخص کردن مرحله حلقه ای غیر از 1 در این عملگر غیرممکن است.


نمایش گرافیکی چرخه ها برایاینگونه خواهد بود (شکل 33 را ببینید):

شکل. 33

در اینجا: i یک متغیر حلقه است. n مقدار اولیه آن است ؛ k مقدار نهایی آن است. بدنه حلقه از یک اپراتور یا چندین اپراتور تشکیل شده است: s1؛ s2؛ ... sn ؛ که به صورت مستطیل کشیده شده اند.

برای نشان دادن کار اپراتور برایمثالی را در نظر بگیرید که قبلاً هنگام مطالعه عملکرد این اپراتور به صورت سنتی درآمده است.

مثال 1. برنامه ای برای محاسبه فاکتوریل عدد n ، یعنی n! ایجاد کنید.

از ریاضیات به یاد بیاورید که فاکتوریل یک عدد n برابر با حاصلضرب اعداد از 1 تا n است.
مثلا:

ز توجه داشته باشید . در ریاضیات پذیرفته می شود: 0! = 1


نمودار بلوکی


شکل. 34

برنامه

برنامهمسئله 1؛ (محاسبه فاکتوریل n!)
استفاده می کند WinCrt ؛
var
n ، f ، i: longint؛
شروع

f: = 1؛
اگر n<> 0 سپس برایمن: = 1 به n انجام دادن f: = f * i ؛
پایان.

متغیر n - برای شماره وارد شده توسط کاربر ، فاکتوریل آن را باید پیدا کرد. f متغیری است که حاوی " انباشتن"مقدار فاکتوریل عدد n ؛ i - متغیر حلقه.
مقدار اولیه متغیر f: = 1 تنظیم شده است.
سپس چرخه آغاز می شود. به متغیر i مقدار اولیه 1 اختصاص داده می شود. با n - نهایی مقایسه می شود (1<= n), اگر یکشرایط درست است ، سپسعملگر اجرا می شود (در این برنامه یکی است): f: = f * i، 1 * 1 = 1؛ مقدار متغیر حلقه 1 افزایش می یابد ، یعنی برابر می شود با: i: = i + 1 ، 1 + 1 = 2 و حلقه تکرار می شود.
چه زمانیمقدار i برابر n می شود ، سپسحلقه برای آخرین بار اجرا می شود ، زیرا مقدار بعدی i n + 1 خواهد بود ، که بیشتر از مقدار نهایی n است ، وضعیتمن<= n - به دروغ، حلقه اجرا نمی شود.

2. عملگر حلقهبرای ... پایین آوردن ... انجام ...

فرم دیگری از عملگر حلقه وجود دارد برای:
برای<چرخه بخار.> := <زود zn.> پایین آمدن <پایان zn.> انجام دادن <اپراتور>.

جایگزینی یک کلمه ذخیره شده بهدر پایین آمدنیعنی که مرحله پارامتر حلقه است (-1).

تغییر در مقدار پارامتر از یک مقدار بزرگتر به یک مقدار کوچکتر تبدیل می شود ، یعنی
<زود معنی.> <پایان معنی.>.
برنامه محاسبه فاکتوریل یک عدد را می توان با استفاده از این عملگر حلقه نوشت.
برنامه

برنامه Problem1a؛
استفاده می کند WinCrt ؛
var
n، i، f: longint؛
شروع
بنویسید ("یک عدد طبیعی وارد کنید")؛ readln (n) ؛
f: = 1؛
اگر n<> 0 سپس برایمن: = n پایین آمدن 1 انجام دادن f: = f * i ؛
writeln ("شماره فاکتور" ، n ، "برابر" ، f)
پایان.

1. برنامه را طوری تغییر دهید که نه جدول مربعات اعداد از 1 به n بلکه مربع فقط یک عدد n که توسط کاربر وارد شده است نمایش داده شود.

2- برنامه را اصلاح کرده و تکمیل کنید تا مقدار مربع عدد و آن تعداد عددی که مجموع آنها برابر است را نمایش دهد.

3 ... ادامه دارد موضوع افزایش اعداد طبیعی به یک قدرت ،بدون عملیات ضرب ، دو مثال جالب دیگر را در نظر بگیرید. در مورد اول ، ما باید ترکیب کنیم " سرمایه گذاری"به دو چرخه دیگر وارد شوید برای، و در دوم ، چرخه ها برایو تکرار.

مثال 3. مکعب هر عدد طبیعی n برابر با مجموع n عدد فرد زیر است که به ترتیب اعداد ، مجموع آن مکعب شماره قبلی n - 1 است:

13 = 1
23 = 3 + 5
33 = 7 + 9 + 11
43 = 13 + 15 + 17 + 19
. . . . . . . . . . . . . . . . . . . . . .

بر اساس این ویژگی ، برنامه ای ایجاد کنید که جدول مکعب اعداد طبیعی را چاپ کند.

در اینجا در حال حاضر به دو چرخه نیاز است. یکی خارجی است ، با تعداد اعداد فرد ، که برابر با عدد مکعب است ، به عنوان مثال ، برای 43 این چرخه باید 4 بار اجرا شود. در همان چرخه ، پس از محاسبه مقدار ، لازم است که مقدار آن به همراه عددی که مکعب است بر روی صفحه نمایش داده شود.
دوم درونی است که اعداد فرد را جمع می کند و " کار کردن"اعداد فرد مورد نظر برای افزودن.


نمودار بلوکی

شکل. 36

برنامه

برنامهمسئله 3؛ (مکعب اعداد طبیعی از 1 تا n)
استفاده می کند WinCrt ؛
var
i، j، n، s، k: longint؛
شروع
writeln ("یک عدد طبیعی وارد کنید ، تا جایی که لازم باشد")؛
نوشتن ("نمایش مکعب اعداد")؛ readln (n) ؛
writeln ("مکعب اعداد به شرح زیر است:")؛
k: = 1؛
برایمن: = 1 به n انجام دادن
شروع
s: = 0؛
برای j: = 1 بهمن انجام دادن
شروع
s: = s + k؛
k: = k + 2
پایان;
writeln ("مکعب اعداد" ، من ، "برابر" ، s)
پایان
پایان.

بیایید کار این برنامه را تحلیل کنیم

متغیرهای i و j به عنوان متغیرهای حلقه های داخلی اول - خارجی و دوم مورد نیاز هستند. k متغیر برای اعداد فرد و s برای مجموع اعداد. نوع این متغیرها روی عدد صحیح تنظیم شده است ، اما از آنجایی که عدد صحیح بزرگتری بزرگتر از 32767 وجود دارد ، طولانی است.
این برنامه با درخواست از کاربر با استفاده از دستورات نوشتار و نوشتن برای وارد کردن یک عدد طبیعی شروع می شود ، که باید یک جدول مکعب از اعداد برگردانده شود. سپس با استفاده از دستور readln ، این مقدار در حافظه کامپیوتر وارد شده و به متغیر n اختصاص می یابد.
کتیبه " مکعب اعداد به شرح زیر است". به دلایل مشخص قبل از شروع حلقه ها داده می شود. نمی توان آن را در حلقه ها ارائه داد - چندین بار تکرار می شود. در انتهای حلقه ها نیز ، بعد از خود اعداد ، در پایین نوشته می شود متغیر k اولین مقدار عجیب 1 را به خود اختصاص می دهد.
حلقه بیرونی از تعداد اعداد از 1 تا n شروع می شود. چندین اپراتور وجود دارد ، بنابراین " باز کن"براکت های اپراتور: - شروع ...
قبل از شروع حلقه داخلی ، متغیر s روی صفر تنظیم می شود - مجموع. علاوه بر این ، چنین صفر بارانی هر بار هنگام تکرار اتفاق می افتد خارجی قبل از شروع حلقه داخلی حلقه کنید.
حلقه داخلی از 1 تا i اجرا می شود. چرا؟ این حلقه مجموع را محاسبه می کند و ضریب k را 2 برابر می کند ، یعنی " تولید شده"شماره فرد بعدی.

اطلاع! متغیر k قبل از شروع هر حلقه داخلی اختصاص داده نشده است 1. چرا؟
عبارت Writeln بعدی در داخل حلقه بیرونی اطلاعات را روی صفحه می نویسد. چرا در حلقه بیرونی قرار می گیرد؟

مثال 4. از ریاضیات معلوم شده است که هر توان طبیعی یک عدد n مجموع n عدد طبیعی فرد متوالی است. برنامه ای بنویسید که برای هر توان یک عدد طبیعی n توالی اعداد فرد پیدا کند که مجموع آنها برابر با این توان باشد.

به عنوان مثال ، برای 53 این توالی از اعداد را تولید می کند: 21 ، 23 ، 25 ، 27 ، 29.

برنامه برنامه نویسی

1. بیایید هدف از تنظیم برنامه را تعریف کنیم: لازم است نشان دادن ، که در واقع هر قدرت طبیعی یک عدد طبیعی است می توان به عنوان مجموع اعداد فرد پی در پی نشان می دهد.
و اگر چنین است ، پس کاملاً باید مقدار توان عدد n را با توان k بدانیم.
این کار را می توان با یک حلقه ساده انجام داد:

s: = 1؛
برایمن: = 1 بهک انجام دادن s: = s * n ؛

مقدار درجه در متغیر s جمع می شود ، برای این مقدار 1 می شود.
در این حلقه ، مقدار متغیر s به ترتیب متوالی k برابر با پایه توان n می شود. پس از اجرای حلقه ، متغیر s مقدار توان عدد n را با توان k دریافت می کند.
2. تمام حساسیت سوال در این واقعیت است که اولین عدد فرد ناشناخته است ، از این رو لازم است که جمع اعداد فرد متوالی را شروع کنید.
برای این شما نیاز دارید تلاش كردن اعداد فرد را از ابتدا و 1 اضافه کنید (تعداد آنها مشخص است - n) ؛
1 + 3 + 5 + 7 + 9 ...,
و سپس با مقایسه با مقدار توان s نتیجه بدست آمده را بررسی کنید. اگر برابری درست است ، حلقه را خاتمه دهید و اعداد فرد حاصل را نمایش دهید ، اگر برابری درست نیست ، لازم است که جمع بندی را از عدد فرد بعدی شروع کنید - 3: 3 + 5 + 7 + 9 ... و غیره
سازماندهی این فرآیند با حلقه راحت تر است تکرار... متغیر j ، که اعداد فرد اولیه را تنظیم می کند ، باید قبل از شروع چرخه روی مقدار اولیه 1 تنظیم شود.
نمای کلی چنین چرخه ای:

j: = 1؛
تکرار
. . . . . .
j: = j + 2
تا زمان... = ثانیه

3. باید در مورد چگونگی محاسبه مجموع اعداد فرد متوالی فکر کرد. ما قبلاً با این س encounteredال روبرو شده ایم و می دانیم که برای این منظور باید چرخه ای از 1 تا n ایجاد کنیم که در آن یکی از متغیرها مثلاً m این مقدار را جمع کند و متغیر دوم باید " کار کردن"شماره فرد بعدی.
این چرخه را می توان اینگونه نوشت:

p: = j؛ m: = 0؛
برایمن: = 1 به n انجام دادن
شروع
m: = m + p ؛
p: = p + 2
پایان;

توجه داشته باشید! p متغیر ، هر چرخه تکرار، (خارج از عدد داده شده) ، مقدار اولیه جدیدی از یک عدد فرد دریافت می کند و متغیر m - برای مجموع باید قبل از هر جمع جدید برای دنباله دیگری از اعداد فرد به صفر تنظیم شود.
4- سرانجام ، وقتی توالی اعداد فرد پیدا شد ، باید نمایش داده شود. برای انجام این کار ، شما باید یک چرخه دیگر از 1 تا n ترتیب دهید ، که در آن مقادیر این اعداد فرد باید خارج شود. برای اولین عدد فرد از دنباله ، باید مقدار j را بگیریم ، اما از آنجا که قبلاً 2 افزایش یافته است ، بنابراین 2 باید از j کم شود. این چرخه خواهد بود:

j: = j - 2 ؛
برایمن: = 1 به n انجام دادن
شروع
نوشتن (j ، "") ؛
j: = j + 2
پایان

نمودار بلوکی

برنج . 37
برنامه

برنامهمسئله 4؛
استفاده می کند WinCrt ؛
var
n ، i ، k ، j ، m ، s ، p: longint؛
شروع
بنویسید ("یک عدد طبیعی را وارد کنید - پایه درجه") ؛ readln (n) ؛
بنویسید ("یک عدد طبیعی وارد کنید - نماینده") ؛ readln (k) ؛
s: = 1؛ j: = 1؛
برایمن: = 1 بهک انجام دادن s: = s * n ؛
تکرار
p: = j؛
m: = 0؛
برایمن: = 1 به n انجام دادن
شروع
m: = m + p ؛
p: = p + 2
پایان;
j: = j + 2
تا زمان m = s؛
نوشتن ("درجه با رادیکس" ، n) ؛
writeln ("و شاخص" ، k ، "یعنی" ، s) ؛
writeln ("برابر است با مجموع اعداد فرد بعدی")؛
j: = j - 2 ؛
برایمن: = 1 به n انجام دادن
شروع
نوشتن (j ، "") ؛
j: = j + 2
پایان
پایان.

برای درک بهتر نحوه کار ، درجه 25 را بگیرید و نحوه اجرای دستورات برنامه را به ترتیب دنبال کنید.

1 ... این برنامه را روی رایانه ها اجرا کنید.

2 ... فلوچارت و برنامه ای تهیه کنید که بفهمد آیا کار می تواند
الف) سه؛ ب) چهار عدد متوالی طبیعی برابر با مقداری از قدرت برخی از اعداد طبیعی (مربع ، مکعب و غیره)؟

4. کارهای متفرقه

مثال 5. تمام اعداد چهار رقمی را چاپ کنید ، در علامت اعشاری که دو رقم یکسان وجود ندارد.

اظهار نظر ... قبل از شروع به تهیه نمودار فلو برای این کار ، باید بدانید که چگونه حلقه ها در حلقه ها برای حلقه ها با پارامترها به تصویر کشیده شده اند. ساختار کلی دو حلقه تو در تو با پارامترها به شرح زیر است:


شکل. 38
بلافاصله این ایده ایجاد می شود که برنامه ای مطابق با طرح زیر تهیه شود:
سازمان دادن چرخهبا تعداد هزاران ، t از 1 تا 9 ، و سپس داخلی چرخه: با تعداد صدها نفر ، از 0 تا 9 ؛ با تعداد ده ها ، d از 0 تا 9 ؛ با تعداد واحد ، e از 0 تا 9 ؛ بررسی شرایط: اگر یکاعداد متفاوت هستند ، سپسعدد چهار رقمی متشکل از آنها را نمایش دهید.
نمودار بلوکی

شکل. 39
برنامه

برنامهمسئله 5؛ (روش اول)
استفاده می کند WinCrt ؛
var
t، s، d، e: عدد صحیح؛
شروع
برای t: = 1 به 9 انجام دادن
برای s: = 0 به 9 انجام دادن
براید: = 0 به 9 انجام دادن
برای e: = 0 به 9 انجام دادن
اگر(تی<>د) و(تی<>د) و(تی<>ه) و(ها<>د) و
(ها<>ه) و(د<>ه)
سپسبنویسید (t * 1000 + s * 100 + d * 10 + e ، "")
پایان.

واضح است که این برنامه غیر منطقی انجام شده است. در آن ، تمام چرخه ها به طور کامل انجام می شود.
از این طریق می توان برنامه را بهبود بخشید. وقتی چرخه ای از صدها اجرا می شود ، باید چرخه بعدی ده ها را شروع کنید ، اگر یک صدها رقم s برابر با هزار رقم t نیست ، در غیر این صورت ، در غیر این صورت ، چرخه صدها باید ادامه یابد ، یعنی رقم بعدی صدها را بگیرید.
برای رقم دهها ، همچنین شرط تعیین کنید که چرخه بعدی از آن اجرا شود ، اگر یک رقم ده ها برابر با رقم صدها و هزاران نیست ، در غیر این صورت ، در غیر این صورت ، لازم است که به شکل بعدی ده ها برویم.
و سپس ، " داخل"چرخه واحد برای نوشتن شرط کافی است ، اگر یک رقم واحد هبا ده ها برابر نیست د، صدها sو هزاران تی ،سپس عدد چهار رقمی عدد مورد نظر است و بر روی صفحه نمایش داده می شود.


نمودار بلوکی

برنج . 40

برنامه

برنامه Problem5a؛ (روش دوم)
استفاده می کند WinCrt ؛
var
t، s، d، e: عدد صحیح؛
شروع
writeln ("همه اعداد چهار رقمی از رقم های مختلف")؛
برای t: = 1 به 9 انجام دادن
برای s: = 0 به 9 اگر انجام دهید s<>تی سپس
براید: = 0 به 9 اگر انجام دهید(د<>د) و(د<>ت) سپس
برای e: = 0 به 9 انجام دادن
اگر(e<>د) و(e<>د) و(e<>ت)
سپسبنویسید ((((t * 10 + s) * 10 + d) * 10) + e ، "")
پایان.

تکلیف 4

1. این برنامه را تکمیل و اصلاح کنید تا نه تنها اعداد مختلف چهار رقمی ، بلکه تعداد آنها را نیز نمایش دهد.

2. هنگام ضرب یک عدد چهار رقمی ، متشکل از رقم های مختلف ، در 9 ، نتیجه حاصل از محصول عددی است که با عدد ضرب فقط به این دلیل که بین ارقام هزار و صفر صفر وجود دارد ، متفاوت است. ضرب را پیدا کنید. نمودار فلو و برنامه را تنظیم کنید.

مثال 6. سه برابر اعداد طبیعی a ، b ، c ، برآورده کننده برابری: - اعداد فیثاغورث نامیده می شوند.
به عنوان مثال ، 3 ، 4 و 5 اعداد فیثاغورسی هستند زیرا

برنامه ای برای یافتن و چاپ همه اعداد فیثاغورسی که از 20 بیشتر نیست ، ایجاد کنید.

ریاضیات این سوال ساده است. برای اعداد a ، b و c ، مقادیر ممکن اعداد طبیعی از 1 تا 20 هستند.
مقدار اولیه a یک ، a = 1 است. بیایید تمام مقادیر ممکن b را از 1 تا 20 و همچنین مقادیر c را از 1 تا 20 بررسی کنیم و برابری a a + b b = c c را بررسی کنیم. پس از برابری ، مقادیر a ، b و c را نمایش دهید.
بعد ، باید مقدار a = 2 را بگیرید و مقادیر b را از 2 به 20 بررسی کنید. چرا از 1 نیست ، بلکه از 2؟ بله ، زیرا مجموعه ای از دو عدد از 1 و 2 قبلاً با مقادیر a = 1 و b = 2 در نظر گرفته شده است ، به طوری که مقادیر a و b را تکرار نمی کند ، یعنی از ظاهر دو جفت عدد یکسان جلوگیری کنید ، مقادیر b باید اسکن شده یا تا زمان شروع مقدار شروع شود آیا از آتا 20
در این راستا ، چندین روش ممکن برای سازماندهی حلقه ها برای متغیرهای a و b وجود دارد.
راه اول:

برای a: = 1 به 20 انجام دادن
برای b: = a به 20 انجام دادن

راه دوم:

برای a: = 20 پایین آمدن 1 انجام دادن
برایب: = 1 بهآ انجام دادن

راه سوم:

برای a: = 1 به 20 انجام دادن
برایب: = 1 بهآ انجام دادن

به راحتی می توان دریافت که در هر یک از این روشها جفت اعداد تکرار نخواهند شد. خودتان بررسی کنید
برای مقادیر c ، ما موظفیم تمام اعداد طبیعی را از 1 تا 20 برای هر جفت از اعداد a و b بررسی کنیم. بنابراین ، حلقه برای c باید به صورت زیر باشد: برای c: = 1 به 20 انجام دادن

نمودار بلوکی

برنج . 41

برنامه

برنامهمسئله 6؛
استفاده می کند WinCrt ؛
var
a، b، c: عدد صحیح؛
شروع
writeln ("سه برابر اعداد فیثاغورس از فاصله") ؛
برای a: = 1 به 20 انجام دادن
برایب: = 1 بهآ انجام دادن
برای c: = 1 به 20 انجام دادن
اگر a * a + b * b = c * c سپس Writeln (a ، "" ، b ، "" ، c)
پایان.

1- نمودار فلو و برنامه ای بسازید که تمام جوابهای معادله را پیدا کند ، جایی که n یک عدد مشخص از فاصله است.

2. از فاصله ای که عبارت برای آن مربع یک عدد طبیعی است ، تمام اعداد طبیعی x را پیدا کنید.

مثال 7. از چند طریق می توان عدد طبیعی داده شده n را به عنوان مجموع دو مکعب اعداد طبیعی نشان داد:

جایگزینی اصطلاحات روش جدیدی نمی دهد. از عملیات افزایش به 1/3 توان استفاده نمی شود.

ایده ساده زیر برای ایجاد یک برنامه بلافاصله بوجود می آید.

دو حلقه را سازماندهی کنید ، یکی حلقه خارجی با متغیر i از 1 تا n و دیگری حلقه داخلی از طریق j ، همچنین از 1 تا n.

ماهیت برنامه به شرح زیر خواهد بود:

اولین مقدار i 1 است ، سه برابر در خودش ضرب می شود (این جایگزینی افزایش به قدرت 3 است) ؛
سپس " پشت سر گذاشتن"تمام مقادیر j از 1 تا n ، هر یک از آنها نیز سه برابر در خود ضرب می شود و به مقدار i i i ، یعنی i در مکعب اضافه می شود.
بعلاوه ، این جمع بررسی می شود که آیا با مقدار n برابر است یا خیر ، اگر تساوی برآورده شود ، سپس شمارنده از پیش تعیین شده در برنامه 1 افزایش می یابد ، و مقادیر i و j را می توان نمایش داد.
حلقه i ادامه می یابد ، من مقدار دوم را می گیرم - 2 و حلقه داخلی j از 1 تا n دوباره شروع می شود و غیره.
اگر طبق این برنامه برنامه ای تنظیم کنیم ، آنگاه دو اشکال قابل توجه خواهد داشت:
1) کارهای بی فایده زیادی در حال انجام است - هر دو چرخه از 1 تا n سازمان یافته اند و در میان آنها چرخه های زائد زیادی وجود دارد (کافی است مقادیر را از 1 به ریشه مکعب n برسانید) ؛
2) برنامه مقادیری را که با تنظیم مجدد اصطلاحات بدست آمده است برمی گرداند ، به عنوان مثال: 2 2 2 + 3 3 3 = 35 و 3 3 3 + 2 2 2 = 35 ، که مطابق بیان مسئله نامعتبر است. چگونه می توان این معایب را برطرف کرد؟
اگر ابتدا بفهمیم که برای هر یک از اعداد چند مقدار برای در نظر گرفتن نابرابری باید در نظر بگیریم ، می توان اولین اشکال را از بین برد.
برای انجام این کار ، می توانید یک حلقه را با یک پیش شرط ، یک حلقه " تا زمان "، که در آن یک شمارنده - k وجود دارد ، که تعداد چندین بار اجرای چنین حلقه را می شمارد.

می توانید این کار را مانند این انجام دهید:

k: = 0؛ من: = 1؛
در حالی کهمن * من * من + 1<= n انجام دادن
شروع
k: = k + 1 ؛
من: = من + 1
پایان;


اکنون می توانید تعداد چرخه ها را به میزان قابل توجهی کاهش دهید " آزمودنی ها"اعداد را تنظیم کنید و آنها را از 1 به k مرتب کنید ، زیرا برای مقادیر i بزرگتر از k ، حتی با کوچکترین مقدار j (j: = 2) ، نابرابری i i i + 1<=n не выполняется.
برای از بین بردن اشکال دوم ، یعنی برای عدم صدور گزینه های جایگزینی اصطلاحات ، می توانید موارد زیر را انجام دهید:

حلقه بیرونی را روی عدد اول از k به 1 مرتب کرده و حلقه داخلی را برای عدد دوم در j از 1 تا i قرار دهید. این قسمت از برنامه را دریافت می کنید:

p: = 0؛
برایمن: = k پایین آمدن 1 انجام دادن
برای j: = 1 بهمن انجام دادن
اگر i * i * i + j * j * j = n
سپس
شروع
p: = p + 1 ؛
پایان;

این قسمت از برنامه را با دقت بفهمید و به این فکر کنید که چرا ، در این حالت ، از تکرار انواع مختلف اجتناب می کنیم و موارد جایگزینی اصطلاحات را حذف می کنیم؟

ترک کرد خوببرنامه را تمام کنید. در واقع ، اغلب مواردی وجود دارد که یک عدد را نمی توان به عنوان مجموع مکعب های دو عدد نشان داد. این شرایط را نیز باید در نظر گرفت.

برای انجام این کار ، پس از تکمیل تمام حلقه ها ، ما یک عملگر شرطی را معرفی می کنیم که در آن ، بسته به مقادیر شمارنده p ، پیام های مربوطه نمایش داده می شوند.

اگر یک p = 0 ، سپس پیامی صادر کنید که یک عدد را نمی توان به صورت مجموع مکعب های دو عدد نشان داد ، و در غیر این صورت، در مورد تعداد راهها پیامی صادر کنید.
این قسمت از برنامه را می توان به صورت زیر انجام داد:

اگر p = 0
سپس
شروع

پایان
دیگر


نمودار بلوکی


برنج . 42

برنامه

برنامهمسئله 7؛
استفاده می کند WinCrt ؛
var
i، j، n، k، p: longint؛
شروع
بنویسید ("یک عدد طبیعی وارد کنید")؛ readln (n) ؛
k: = 0؛ من: = 1؛
در حالی کهمن * من * من + 1<= n انجام دادن
شروع
k: = k + 1 ؛ من: = من + 1
پایان;
p: = 0؛
برایمن: = k پایین آمدن 1 انجام دادن
برای j: = 1 بهمن انجام دادن
اگر i * i * i + j * j * j = n
سپس
شروع
p: = p + 1 ؛
writeln (من ، "*" ، من ، "*" ، من ، "+" ، j ، "*" ، j ، "*" ، j ، "=" ، n)
پایان;
اگر p = 0
سپس
شروع
بنویسید ("Number"، n، "نمی تواند به عنوان نمایش داده شود")؛
writeln ("مجموع مکعب های دو عدد")
پایان
دیگر writeln ("تعداد راهها برابر است" ، ص)
پایان.

راه حل دیگر برای این مشکل

برنامه Problem7b ؛
استفاده می کند WinCrt ؛
برچسب 1, 2;
var
i، j، m، k، n: longint؛
شروع
بنویسید ("یک عدد طبیعی وارد کنید")؛ readln (n) ؛
m: = 0؛ من: = 1؛ j: = 1؛
در حالی که j * j * j + 1< n انجام دادن j: = j + 1 ؛
تکرار
k: = i * i * i + j * j * j ؛
اگر k = n سپس m: = m + 1 ؛
اگرک<= n سپسمن: = من + 1 ؛
اگر k> = n سپس j: = j - 1 ؛
تا زمان i> j؛
اگر m = 0 سپس برو به 1;
نوشتن ("تعداد" ، n ، "می تواند به عنوان یک مجموع نشان داده شود")؛
writeln ("مکعب های دو عدد" ، m ، "راه ها") ؛ goto 2؛
1: بنویسید ("این عدد قابل نمایش نیست")؛
writeln ("مجموع مکعب های دو عدد")؛
2: پایان.

با توجه به Natural n. آیا می توان n را به صورت مجموع سه مربع اعداد طبیعی نشان داد؟ در صورت امکان ، تمام سه برابر x ، y ، z از اعداد طبیعی را نشان دهید تا جایگزینی اصطلاحات راهی جدید نداشته باشد. نمودار فلو و برنامه را تنظیم کنید.

5. تبدیل نوع

مثال 8. یک عدد اعشاری دو رقمی که به عددی که با همان رقم نوشته شده است اضافه شده ، اما به ترتیب معکوس ، یک مربع کامل می دهد. همه این اعداد را پیدا کنید.

بگذارید عدد دو رقمی مورد نیاز = a 10 + b ، سپس عددی که با همان رقم نوشته شده است ، اما به ترتیب معکوس ، = b 10 + a خواهد بود ، به عنوان مثال ، 12 و 21 ، 13 و 31 و غیره
حاصل جمع این اعداد باید یک مربع کامل بدست آورد ، مربع دقیق اعداد صحیح. چگونه می توانم این را بررسی کنم؟
بررسی را می توان به این صورت انجام داد: ریشه مربع حاصل از حاصل را استخراج کنید. سپس نتیجه را به یک عدد صحیح گرد کنید ، و سپس نتیجه را در خود ضرب کنید ، اگر مجموع این اعداد دوباره بدست آمد ، یک مربع دقیق یا کامل است.
به عنوان مثال ، 12 + 21 = 33 ، ریشه مربع 33 را استخراج می کنیم ، این 5.74 است ...؛ دور ، 6 خواهد شد 6 را در خودش ضرب کنید و 36 بگیرید.
ما نتیجه اصلی را دریافت نکردیم ، بنابراین مجموع 33 یک مربع دقیق نیست.
مثالی دیگر ، تا ایده راه حل را درک کنید. بگذارید عدد دو رقمی 29 باشد ، سپس عددی که با همان رقم نوشته شده است ، اما به ترتیب معکوس - 92 ، در کل آنها 121 را می دهند. ریشه مربع 121 را بگیرید و 11 بگیرید. ضرب 11 به خودی خود ، دوباره 121 بدست می آوریم یک مربع دقیق ، به این معنی که عدد دو رقمی 29 عدد مورد نظر است.
برای ساختن یک برنامه مطابق با این اصل ، شما باید ریشه مربع حاصل از جمع را استخراج کنید ، که می تواند با استفاده از تابع استاندارد sqrt (x) انجام شود. نتیجه تابع sqrt (x) یک عدد واقعی است ، باید گرد شود یا قسمت کسری برداشته شود ، اما ما نمی دانیم چگونه این کار را انجام دهیم.
اما ، حتی مهم تر ، این است که اگر ریشه مربع در مجموعه اعداد صحیح به طور کامل استخراج شود ، همانطور که برای 121 (برابر با 11 است) ، پس در مجموعه اعداد واقعی ، دقیقاً عدد 11 بدست نمی آوریم نتیجه بسیار نزدیک به 11 خواهد بود و پس از ضرب به خودی خود هنوز 121 شکست می خورد ، یعنی نیاز است تبدیل مقدار واقعی برای عدد صحیح.
بنابراین ما دو وظیفه داریم: 1) نحوه گرد کردن اعداد و 2) نحوه تبدیل نوع واقعی به عدد صحیح را تعیین کنید.

برای این ، پاسکال توابع استاندارد round (x) و trunc (x) دارد

توابع استاندارد گردو تنهدر نظر گرفته شده اند که مقادیر یک نوع واقعی را با مقادیر نوع صحیح جایگزین کنند.
تابع گرد(x) عدد واقعی x را به یک عدد صحیح گرد می کند - مقدار آن نزدیکترین عدد صحیح است:
گرد(4.2) = 4, گرد(4.7) = 5, گرد(4.5)=5,
گرد(-4.2) = -4, گرد(-4.7) = -5, گرد(-4.5) = -5.
تابع تنه(x) بخش کسری عدد واقعی x را دور می اندازد:
تنه(1.2) = 1, تنه(5.8) = 5, تنه(-1.2) = -1,
تنه(-5.8) = -5, تنه(-6.7) = -6, تنه(8,9) = 8

توابع گرد مانند این است:
تنه(x + 0.5) = گرد(ایکس)، اگر یک x 0 ،
تنه(x - 0.5) = گرد(ایکس)، اگر یک ایکس< 0.
بنابراین ، در برنامه می توانید از یکی از این توابع استفاده کنید. کدام یک؟ خودتان فکر کنید و سعی کنید ابتدا از عملکرد موجود در برنامه استفاده کنید تنهو سپس آن را با جایگزین کنید گردو نتایج را مقایسه کنید.

  • نشان دهید که یک عدد چهار رقمی که هزارها و ده ها در آن یکسان و صدها و یکها نیز یکسان هستند ، نمی تواند یک مربع دقیق باشد.
  • حاصلضرب شش عدد طبیعی متوالی می تواند برابر با حاصلضرب سه عدد طبیعی متوالی باشد. به عنوان مثال ، 1 2 3 4 5 6 = 8 9 10 = 720. آیا اعداد دیگری مانند آن وجود دارد؟
  • ثابت کنید که محصول چهار عدد صحیح متوالی به علاوه یک مربع کامل بدست می آورد.
  • 11 عدد طبیعی متوالی پیدا کنید که مجموع مربع آنها مربع یک عدد صحیح باشد.
  • آیا عدد صحیحی وجود دارد که با قطع شدن اولین رقم (سمت چپ) 57 برابر کاهش یابد؟
  • با دانستن اینکه این مربع یک عدد طبیعی است و ارقام آن به دو جفت رقم یکسان تقسیم می شوند ، یک عدد چهار رقمی پیدا کنید.
  • تمام اعداد هفت رقمی را که بر 15 قابل تقسیم هستند و فقط به صورت 0 و 1 نوشته می شوند ، پیدا کنید.
  • یک عدد شش رقمی با عدد 1 شروع می شود. اگر این عدد در انتهای شماره مرتب شود ، عدد جدید سه برابر اصلی خواهد بود. شماره را پیدا کنید.
  • چند عدد مربع دقیق از اعداد 3 ، 4 ، 5 ، 6 قابل ساخت است؟
  • به شما 20 عدد طبیعی مختلف داده می شود که بیشتر از 50 نیست. دو عدد را پیدا کنید که اختلاف آنها 4 ، 5 یا 9 باشد.
  • اگر عدد دو رقمی همان سمت راست به آن نسبت داده شود ، چند برابر می شود؟
  • بزرگترین مقدار نسبت عدد سه رقمی به عددی برابر با مجموع ارقام این عدد را تعیین کنید.
  • اگر تفاوت این عدد با عددی که با همان رقم نوشته شده است اما به ترتیب معکوس 297 باشد ، یک عدد سه رقمی پیدا کنید که ضرب آن 45 باشد.
  • یک عدد چهار رقمی مضربی از 11 پیدا کنید ، به شرط: b + c = a و یک مربع کامل وجود دارد.
  • یک عدد سه رقمی برابر با جمع ده ها ، مربع صدها و مکعب یک ها پیدا کنید.
  • دو عدد پیدا کنید که حاصلضرب آن یک عدد سه رقمی است ، که مکعب بعضی از عدد است و ضریب آن مربع این عدد است.
  • تفاوت بین یک عدد و حاصل ارقام آن برابر است با مجموع ارقام آن عدد. این شماره را پیدا کنید
  • تمام مقادیر عدد m را که برای آن جمع 1 است پیدا کنید! + 2! + ، + متر! یک مربع کامل است
  • یک عدد مثبت چهار رقمی پیدا کنید که مضربی از 7 باشد و حاصل جمع یک مکعب و یک مربع از تعدادی باشد.
  • یک عدد تقسیم بر 7 ، یک باقیمانده 3 می دهد. مربع آن هنگامی که بر 72 تقسیم شود ، 44 باقی مانده را نشان می دهد. مکعب آن ، اگر بر 73 تقسیم شود ، باقیمانده 111 را می دهد. این عدد را پیدا کنید.
    1. عدد a2 + a + 1589 برای کدام ارزش طبیعی یک مربع دقیق خواهد بود؟
    2. تعداد کاملی از فرم 16p را پیدا کنید.
    3. اگر مجموع مربعات آنها 468 و مجموع بزرگترین تقسیم کننده و کمترین مضرب آنها 42 باشد ، دو عدد پیدا کنید.

    دستور حلقه for یک ساختار الگوریتمی را پیاده سازی می کند حلقه با پارامتر(یا یک حلقه با پیشخوان). از حلقه for هنگامی استفاده می شود که در برنامه ، قبل از اجرای دستورالعمل های حلقه ، تعداد مراحل این حلقه مشخص شود (یا از پیش تعیین شده باشد). در بلوک نمودار ، دستور for به صورت زیر نشان داده شده است:

    نحو:

    برای ( مقداردهی اولیه; وضعیت; تغییر) (دستورالعمل بدن حلقه ؛)

    اگر یک دستورالعمل در متن حلقه وجود داشته باشد ، () را می توان حذف کرد. متغیر پارامتر حلقه (شمارنده) می تواند از هر نوع عددی باشد. این باعث می شود ++ C برای حلقه به عنوان یک حلقه while همه کاره باشد. در بخش اصلاحات ، متداولترین عملیات پسوندپیوند یا افزایش پیشوند (یا کاهش) است ، اما هر عبارت انتسابی که مقدار پارامتر حلقه را اصلاح کند ، قابل استفاده است. این حلقه به صورت زیر عمل می کند:

    • در ابتدا یک توصیف و مقداردهی اولیه متغیر شمارنده وجود دارد
    • بعد ، شرط را بررسی کنید: اگر عبارت مقدار دارد درست است، واقعی، تکرار رخ خواهد داد
    • پس از اجرای دستورالعمل های بدنه حلقه ، مقدار ضد تغییر می یابد

    توجه داشته باشید: در C ++ توصیف متغیر شمارنده در سرآیند حلقه یک قانون است. اما این ضروری نیست ، به خصوص اگر قصد دارید چندین متغیر را در قسمت مقداردهی اولیه تنظیم کنید همانطور که در برنامه 9.2 اجرا می شود. با این حال ، استفاده از توصیف متغیر شمارنده در هدر حلقه منجر به توصیف متغیر محلی می شود که با پایان حلقه به طور خودکار از بین می رود. بنابراین ، مگر اینکه کاملاً ضروری باشد ، نباید متغیر شمارنده را خارج از حلقه for توصیف کنید.
    در حالی که حلقه for در حال اجرا است ، تغییر عملوندها در عبارات هدر حلقه توصیه نمی شود - این امر منجر به انواع خطاها می شود! اما مقادیر متغیرها (یا ثابت ها) ، از جمله مقادیر متغیر (شمارنده) ، قابل استفاده است. بیایید به یک نمونه کلاسیک نگاه کنیم.

    برنامه 9.1با توجه به یک عدد طبیعی N. تمام مقسوم علیه های این عدد را چاپ کنید.

    #عبارتند از << "N = "; cin >> N برای (int i = 2؛ i< N / 2; i++) { if (N % i == 0) cout << i << " "; } return 0; } N = 16000 2 4 5 8 10 16 20 25 32 40 50 64 80 100 125 128 160 200 250 320 400 500 640 800 1000 1600 2000 3200 4000

    استفاده از یک عبارت ادامه در حلقه for

    هنگام استفاده از دستور Continue در یک حلقه for ، لازم است که ویژگی های این حلقه را در نظر بگیرید:

    • دستورالعمل های ادامه داده شده حذف می شوند
    • سپس شمارنده اصلاح می شود
    • به تکرار بعدی بروید (در غیر این صورت ، شرایط را بررسی کنید)

    بیایید این را با یک مثال نشان دهیم: int main () (برای (int i = 1؛ i< 20; i++) { if (i % 2 == 0) continue; cout << i << " "; } 1 3 5 7 9 11 13 15 17 19

    توجه داشته باشید... لطفا توجه داشته باشید: اگرچه از خروجی اعداد بر اساس شرط صرف نظر می شود ، افزایش شمارنده انجام می شود. این مثال فقط برای اهداف تصویرسازی است ، شما نباید حلقه ای را مانند آن برنامه ریزی کنید! بهتر است این مشکل را به صورت زیر حل کنید:

    int main () (برای (int i = 1؛ i< 20; i += 2) cout << i << " ";

    چندین عبارت در بخش مقداردهی اولیه و اصلاح

    همانطور که قبلاً اشاره کردیم ، باید سه بخش در عنوان عبارت for وجود داشته باشد. عبارات موجود در این بخشها قابل حذف هستند ، اما "؛" ... در پایان ، شما فقط می توانید ترک کنید. ... یک سربرگ به شکل:

    برای (؛؛) (...)

    عنوان یک حلقه "بی پایان" است. (خروج از حلقه باید در داخل بدنه حلقه برنامه ریزی شود).
    C ++ از اصطلاحات متعدد در بخشهای مقداردهی اولیه و اصلاح در عنوان دستور for پشتیبانی می کند. در این حالت شرط ادامه چرخه باید یکسان باشد!
    مثلا. بیان مسئله: فاکتوریل عددی را که از 20 بیشتر نباشد محاسبه کنید.
    برنامه 9.2

    #عبارتند از استفاده از namespace std؛ int main () (امضا نشده طولانی طولانی n ؛ int i ، k ؛ cout<< "k = "; cin >> k؛ // 0<= k <= 20 for(n = 1, i = 1; i <= k; n *= i, ++i); cout << k << "! = " << n << endl; return 0; } k = 20 20! = 2432902008176640000

    توجه داشته باشید: توجه داشته باشید که جریان خروجی در خط 12 بدنه حلقه نیست! (در انتهای عنوان -؛). بنابراین ، این حلقه در بدن یک عبارت خالی دارد ، و تمام عبارات در هدر ارزیابی می شوند. برنامه 9.2 فاکتوریل عددی بین 0 تا 20 را به درستی محاسبه می کند.

    حلقه مبتنی بر محدوده

    برای تکرار عناصر آرایه یا ظرف ، باید از همان نوع اقدامات استفاده کنید ، در حالی که از کد دست و پا گیر استفاده می کنید. برای ساده سازی کار با ظروف در C ++ ، فرم خاصی از حلقه for وجود دارد - مبتنی بر دامنه برای (loop) برای محدودهیا محدوده ای برای).
    نحو:

    برای ( آگهی : sequence_name) بیان حلقه

    با استفاده از محدوده مبتنی بر برای مثال آرایه C:
    برنامه 9.3

    #عبارتند از استفاده از namespace std؛ int main () (int x (1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10) ؛ برای (خودکار و s: x) (cout<< s << " "; } return 0; }

    برای اینکه عناصر آرایه تغییر کنند ، متغیر s باید یک متغیر مرجع باشد (مانند مثال بالا). اگر متغیر مرجع نباشد ، داده ها کپی می شوند. مشخص کننده خودکار برای استنباط نوع اتوماتیک در این حلقه استفاده می شود. محدوده مبتنی بر برای کار با آرایه های پویا محدودیت دارد: از تغییر اندازه آرایه پشتیبانی نمی کند ، زیرا حاوی یک نشانگر ثابت برای انتهای آرایه است. هنگام کار با آرایه هایی با اندازه ثابت ، محدوده for یک گزینه عالی و ایمن برای معمولی است.

    برای حلقه ها تودرتو شده است

    دقیقاً مانند سایر دستورات حلقه ، برای یک ساختار حلقه تو در تو پشتیبانی می کند. با استفاده از تو در تو برای حلقه هابرای سازماندهی ورودی و خروجی آرایه های دو بعدی بسیار کم حجم تر از استفاده از حلقه while است.
    با این حال ، هنگام حل مشکلات عبور از این آرایه ها ، باید از جمله if شرطی استفاده نکنید. غالباً ، این کار می تواند با دستکاری شاخص ها (متغیرهای حلقه i و j) منطقی تر انجام شود. یعنی تغییر یک شاخص را به مقدار ارزش شاخص دیگر وابسته کنیم. بیایید به دو نمونه نگاه کنیم.
    برنامه 9.4به شما یک ماتریس مربع اندازه n داده می شود که عناصر آن برابر با 0. عناصر زیر و مورب اصلی را با مضامین پر کنید.

    #عبارتند از استفاده از namespace std؛ int main () (int n؛ cout<< "n = "; cin >> n؛ int mas [n] [n] ؛ // با صفر پر کنید (int i = 0؛ i< n; i++) for(int j = 0; j < n; j++) mas[i][j] = 0; // Реализация for(int i = 0; i < n; i++) for(int j = 0; j <= i; j++) mas[i][j] = 1; // Вывод for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cout.width(2); cout << mas[i][j]; } cout << "\n"; } return 0; } n = 10 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1

    برنامه 9.5برنامه ای برای پر کردن آرایه با اعداد از مثلث پاسکال و خروجی این آرایه ایجاد کنید. مثلث پاسکال این است:


    در این مثلث ، واحد هایی در اوج و کناره ها وجود دارد (در برنامه 9.5 ، مثلث "در سمت خود گذاشته شده است" - اضلاع مثلث: ستون اول و مورب اصلی). هر عدد برابر است با مجموع دو عدد بالای آن. خطوط مثلث در مورد محور عمودی متقارن هستند و حاوی ضرایب دو جمله ای هستند.

    #عبارتند از استفاده از namespace std؛ int main () (int n؛ cout<< "n = "; cin >> n؛ int pas [n] [n] ؛ برای (int i = 0؛ i< n; i++) for (int j = 0; j < n; j++) pas[i][j] = 0; pas = 1; for (int i = 1; i < n; i++) { pas[i] = 1; for (int j = 1; j <= i; j++) { pas[i][j] = pas + pas[j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { cout.width(4); cout << pas[i][j]; } cout << "\n"; } return 0; } n = 12 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 10 45 120 210 252 210 120 45 10 1 1 11 55 165 330 462 462 330 165 55 11 1

    پرسش و پاسخ
    1. آیا می توان دستور for loop را با دستور حلقه while در یک برنامه جایگزین کرد؟ آیا همیشه می توان این کار را انجام داد؟
    2. چه زمانی استفاده از دستور for برای سازماندهی حلقه ها راحت تر است؟ در حالی که؟
    3. آیا عبارات زیر در عنوان یک عبارت for امکان پذیر است: الف) برای (؛ a> b &&! (A٪ 2)؛) ب) برای (a> b ؛؛) c) برای (؛؛ i = 0) د) برای (؛ i = 0؛) ه) برای (؛؛ i ++، --b) f) برای (--i ؛؛) g) برای (b = 0؛ b! = a؛)؟
    4. متغیر i پارامتر حلقه خارجی است و j پارامتر یک تو در تو است. آیا j در حلقه بیرونی در دسترس خواهد بود؟ من در یک حلقه تو در تو هستم؟
    کتاب درسی
    مشق شب
    1. بازگشت. 29. برنامه ای بنویسید که در آن اعداد طبیعی وارد شود آو ب، و صفحه نمایش تمام اعداد اول را در محدوده از نشان می دهد آقبل از ب(ایده الگوریتم برنامه 8.5)
    2. بازگشت. 30. Perfect عددی برابر با مجموع تمام مقسوم علیه آن است که از خودش کمتر هستند (مثلاً عدد 6 = 1 + 2 + 3). برنامه ای بنویسید که عدد طبیعی N را وارد کند و کامل بودن عدد N را تعیین کند.
    3. برنامه ای بنویسید که یک جدول عددی nxn مربع چاپ کند که برای n = 10 به این شکل باشد: 1 * * * * * * * * * * * 2 * * * * * * * * * 3 * * * * * * * * * * 4 * * * * * * * * * 5 * * * * * * * * 6 * * * * * * * * * * 7 * * * * * * * * * 8 * * * * * * * * * * 9 * * * * * * * * * 10
    ادبیات
    1. Laforêt R. برنامه نویسی شی گرا در C ++ (ویرایش چهارم). پیتر: 2004
    2. پراتا ، استفان. زبان برنامه نویسی C ++. سخنرانی ها و تمرین ها ، ویرایش ششم: در. از انگلیسی - م.: LLC "I.D. ویلیامز »، 2012
    3. Lippmann B. Stanley ، Josie Lajoye ، Barbara E. Mu. زبان برنامه نویسی C ++. دوره مقدماتی اد پنجم م: LLC "من D. Williams ”، 2014
    4. Ellain A. C ++. از لامر به برنامه نویس. SPb.: Peter ، 2015
    5. Schildt G. C ++: دوره مقدماتی ، ویرایش سوم. م.: ویلیامز ، 2010



    عملگر حلقه با یک پارامتر دقیقاً در چنین مواردی استفاده می شود که لازم است یک حلقه با تعداد مشخصی از تکرارها سازماندهی شود.

    برای <параметр_цикла>:=<начальное_знач> به <конечное_знач> انجام دادن <оператор>;

    برای <параметр_цикла>:=<конечное_знач> پایین آمدن <начальное_зна.> انجام دادن <оператор>;

    عملگر نمایانگر بدنه حلقه می تواند ساده یا مرکب باشد.

    پارامتر حلقه و همچنین دامنه تغییر آن فقط می تواند از نوع عدد صحیح یا شمارش شده باشد.

    پارامتر همراه با سایر متغیرها توصیف شده است.

    مرحله حلقه for همیشه ثابت است و برابر با "1" یا "-1" است.

    ده عدد صحیح مثبت اول را نمایش دهید

    var i: عدد صحیح؛ // وارد پیشخوان شوید

    fori: = 1to10do // در حالی که شمارنده بین 1 تا 10 است موارد زیر را انجام دهید

    نوشتن (من) // مقدار مقابله را نمایش دهید

    vari، sum: integer؛

    جمع: = 0؛ // صفر کردن مقدار متغیر

    fori: = 10to99do // تکرار بیش از اعداد مثبت دو رقمی

    if i mod 3 = 0 سپس // تعدد 3

    sum: = sum + i؛ // مجموع مقدار قبلی متغیر و عدد مربوط به شرط

    حاصل ضرب ده عدد اول مثبت را نشان دهید

    vari، pr: عدد صحیح؛

    pr: = 1؛ // هنگام پیدا کردن محصول ، مقدار اولیه متغیر 0 نیست ، بلکه 1 است

    برای i: = 1 تا 10 انجام دهید

    if i mod 2 = 0 سپس // تعریف برابری

    به شما دو عدد صحیح A و B (A) داده می شود< B). Вывести в порядке возрастания все целые числа, расположенные между A и B (в том числе A и B), a также количество N этих чисел .

    var i، pr: عدد صحیح؛

    k: = 0؛ // مقدار متغیر نشان دهنده مقدار صفر است

    fori: = AtoBdo // تکرار بیش از اعداد از یک محدوده داده شده

    نوشتن (من) // خروجی در اعداد به ترتیب صعودی

    k: = k + 1 ؛ // تعداد اعداد را بشمارید

    Writeln (k) ؛ // خروجی کمیت خارج از حلقه اتفاق می افتد ، از یک بار نمایش داده می شود

    N عدد مختلف وارد کنید. میانگین حسابی همه اعداد را پیدا کنید.

    var n، i، a: عدد صحیح؛

    برای i: = 1 تا N انجام دهید

    Writeln ("میانگین حساب =" ، s / n: 4: 2) ؛

    حلقه اپراتور با مدتی ... انجام پیش شرط (در حال حاضر ...)

    اپراتور while ... do برای پیاده سازی حلقه ها با پیش شرط طراحی شده است.

    شرایط اجرای بدنه حلقه while قبل از شروع هر مرحله بررسی می شود. بنابراین ، اگر شرط بلافاصله برآورده نشود ، بدنه حلقه نادیده گرفته می شود ، و کنترل بلافاصله پس از بدن حلقه به اپراتور منتقل می شود.

    تماس با اپراتوردر حالی که ... انجام دهید به عنوان "خداحافظ ... انجام" ترجمه می شود و به این شکل است:

    در حالی که <условие> انجام دادن <оператор>

    حلقه while الگوریتم زیر را نشان می دهد: در حالی که شرط درست است ، عبارات بدنه حلقه اجرا می شود.

    شرایط به خودی خود می تواند یک ثابت بولی ، یک متغیر یا یک عبارت بولی باشد.

    موارد زیر را هنگام نوشتن حلقه های پیش شرط به خاطر بسپارید.

      برای اینکه یک چرخه روزی بتواند به پایان برسد ، محتوای بدن آن لزوماً باید بر وضعیت چرخه تأثیر بگذارد.

      شرط باید شامل عبارات و مقادیر معتبری باشد که قبل از اولین اجرای بدنه حلقه تعریف شده است.

    اگر شرط حلقه نادرست باشد ، حلقه حتی یک بار اجرا نمی شود!

    بیان 1و در بیان 2- مقدار اولیه و نهایی پارامتر چرخه.

    عملکرد اپراتور چرخه از نوع به (شمارش مستقیم):

    2. شرط بررسی می شود: آیا مقدار متغیر از مقدار بیان 2 بیشتر است؟

    اگر بله ، چرخه متوقف می شود. در غیر اینصورت ، عملگر اجرا می شود ، مقدار متغیر یک افزایش می یابد ، و سپس عمل با شروع از نقطه 2 تکرار می شود.

    عملکرد عملگر حلقه از نوع downto (شمارش معکوس):

    1. به متغیر مقدار بیان اختصاص داده می شود 1 ؛

    2. شرط بررسی می شود: آیا مقدار متغیر از مقدار بیان 2 کمتر است؟

    اگر بله ، چرخه متوقف می شود. در غیر اینصورت ، عملگر اجرا می شود ، مقدار متغیر یک کاهش می یابد و سپس عمل شروع می شود ، از نقطه 2 شروع می شود.

    قوانین:

    1. پارامتر چرخهفقط یک متغیر عدد صحیح وجود دارد.

    2. پارامتر حلقهنمی توان به صراحت در متن حلقه تغییر کرد.

    مثلا:

    برای i: = 1 تا 10 انجام دهید

    من: = من + 1 ؛ (اشتباه)

    3. مرحله حلقه فقط می تواند 1+ (حلقه با to) یا –1 (حلقه با downto) باشد.

    4- مطابق با نمای کلی ، بدنه چرخه باید از یک اپراتور تشکیل شود ، اگر چندین عملگر وجود داشته باشد ، ما از یک عملگر مرکب استفاده می کنیم و براکت های عملگر آغاز می شوند .. پایان ؛.

    5- چرخه ممکن است حتی یک بار اجرا نشود.

    وظیفه: یک بلوک نمودار و یک برنامه برای محاسبه مقدار متوسط ​​n عدد وارد شده از صفحه کلید بنویسید.

    var i، n: عدد صحیح؛ x، s: واقعی؛

    بنویسید ("تعداد اعداد را وارد کنید") ؛

    برای i: = 1 تا n انجام دهید

    بنویسید ("شماره را وارد کنید" ، i) ؛

    writeln ("میانگین =" ، s / n) ؛

    اپراتور حلقه با پیش شرط (در حالی که)

    دستور حلقهیک عملگر حلقه است که تعداد تکرار آن قبلاً ناشناخته است.

    فرم عمومی:

    در حالی که عبارت boolean عبارت را انجام می دهد؛

    بیان بولیشرط ادامه چرخه است.

    اپراتور

    عملکرد اپراتور:

    1. عبارت منطقی محاسبه می شود.

    2. اگر درست باشد ، عملگر اجرا می شود ، پس از آن تمام اقدامات با شروع از نقطه 1 تکرار می شوند.

    3- اگر عبارت بولی نادرست باشد ، حلقه خاتمه می یابد.

    قوانین:

    1. بدنه حلقه باید فقط از یک عملگر تشکیل شود ، اگر چندین مورد از آنها وجود داشته باشد ، ما از یک عملگر مرکب استفاده می کنیم.

    2. از آنجا که شرط در ابتدای چرخه بررسی می شود ، ممکن است چرخه حتی یک بار اجرا نشود.

    3- برای اینکه نامحدود حلقه نباشد ، مقادیر موجود در عبارت منطقی باید در بدنه حلقه تغییر کنند.

    مثلا:

    در حالی که<100 do

    وظیفهنمودار بلوکی و برنامه ای را بنویسید که جدولی از مقادیر تابع را محاسبه و چاپ کند.

    var x، xn، xk، y، h: واقعی؛

    writeln ("مقدار اولیه و نهایی x و مرحله تغییر x را وارد کنید")؛

    writeln ("| x | y |") ؛

    در حالی که x<=xk do

    writeln ("|" ، x: 7: 2 ، "|" ، y: 7: 2 ، "|") ؛

    اپراتور حلقه با شرط پس از شرط (تکرار ... تا حلقه).

    تکرار عملگر حلقه..تا زمانیک عملگر حلقه است که تعداد تکرار آن از قبل ناشناخته است.

    فرم عمومی:

    اپراتورها

    تا بیان بولی


    عملکرد عملگر حلقه تکرار می شود..تا زمانی که:

    دستورات موجود در متن حلقه تا زمانی که مقدار عبارت منطقی نادرست باشد ، اجرا می شوند. به محض اینکه عبارت boolean به TRUE ارزیابی شود ، اجرای دستور حلقه خاتمه می یابد.

    قوانین:

    1. بدنه حلقه همیشه حداقل یک بار اجرا می شود ، زیرا شرط در انتهای حلقه است.

    2. در این عملگر حلقه نیازی به دستور مرکب نیست ، تمام عبارات در بدنه حلقه محدود به تکرار..تا زمان کلمات کلیدی است.

    وظیفهیک نمودار جریان و یک برنامه برای محاسبه بنویسید .

    rep_unt برنامه؛

    var n، k، s: عدد صحیح؛

    بنویسید ("k را وارد کنید")؛

    بنویسید ("Summarable"، s)؛

    آرایه های داده

    آرایهمجموعه ای از داده های مرتب شده است که نام و نوع یکسانی دارند و با یک عدد (فهرست) از یکدیگر متفاوت هستند. آرایه ها یک بعدی و چند بعدی هستند. نمونه هایی از آرایه ها:

    2 5 –15 10 20 - آرایه ای از نوع عدد صحیح با 6 عنصر.

    2.3 9 2.45 4.78 5.32 - آرایه ای از نوع واقعی با 5 عنصر ؛

    ایوانف ایوان ایوانوویچ - مجموعه ای از شخصیت از 20 عنصر ؛

    نمای کلی شرح آرایه های یک بعدی:

    نام آرایه var: آرایه [مقدار شاخص شروع .. مقدار شاخص پایان] از نوع؛

    جایی که مقدار شاخص اولیهو مقدار شاخص نهایی- مقادیر عدد صحیح با تعیین دامنه شاخص آرایه.

    مثلا:

    بردار var: آرایه واقعی؛

    نمای کلی شرح آرایه های چند بعدی:

    نام آرایه var: آرایه [مقدار شروع شاخص .. مقدار شاخص پایان ، ... ، ...] از<тип>;

    مثلا:

    varmatrix: آرایه ای از integer؛ - شرح ماتریس با اندازه 3´5.

    دسترسی به عناصر آرایه.

    می توانید با تعیین نام آن و قرار دادن مقادیر شاخص آن در براکت های مربع ، به عناصر یک آرایه مراجعه کنید (در آرایه های چند بعدی ، با کاما از هم جدا شده).

    فقط مقادیر ثابت عدد صحیح را می توان به عنوان شاخص هایی استفاده کرد.

    مثلا:

    a [i] ، b ، v1 ، a

    پایگاه داده

    مفهوم پایگاه داده

    رایانه ها در ابتدا برای حل طراحی شده بودند وظایف محاسباتی، با این حال ، با گذشت زمان ، آنها به طور فزاینده ای مورد استفاده قرار گرفتند برای ساخت سیستم های پردازش اسناد، یا بهتر بگوییم ، اطلاعات موجود در آنها. به چنین سیستم هایی گفته می شود اطلاعات... به عنوان مثال سیستم ها هستند حساب کردن برای حجم کار انجام شده در این شرکت, حقوق و دستمزد, حسابداری سهام, کتابهای حسابداری در کتابخانهو غیره.

    این نوع سیستم اطلاعاتنیاز به ایجاد در حافظه کامپیوتر دارد به صورت پویا به روز شدمدل از موضوعبا استفاده از یک مخزن واحد - پایگاه داده (DB) موضوع - بخشی از دنیای واقعی که به منظور سازماندهی کنترل و در نهایت اتوماسیون مورد مطالعه قرار می گیرد. هر یک موضوعشامل مجموعه ای از هر اشیاء... گروههایی از اینها اشیاء، متحد شده توسط هر ویژگی گروه بندی، معمول است که تماس بگیرید موجودیت ها ... به عنوان مثال ، اگر ما در مورد حسابداری محصولات در یک انبار صحبت می کنیم ، پس می توانید نهادها را انتخاب کنید " تولید - محصول", "خریدار", "بارنامه". اشیا representatives نمایندگان خاص آنها خواهند بود ، به عنوان مثال ، قند, JSC "Gefest", برگه تحویل شماره 252.

    پایگاه داده - این مجموعه ای از اطلاعات در مورد واقعی است اشیاء, فرایندهایا پدیده هامربوط به یک خاص است موضوع، به گونه ای سازماندهی شده است که نمایشی مناسب (دسترسی ، نمایش) از این مجموعه ، چه به صورت کلی و چه در هر قسمت از آن ، فراهم کند.

    ذخیره اطلاعات در پایگاه دادههستند میزها ، هر کدام حاوی اطلاعات مربوط به همان نوع هستند اشیاء(ترکیب شده ویژگی گروه بندی) تشکیل ذات... هر یک خط میزهاشامل داده های یک هدف - شی، نمونه، مثال موجودیت ها(به عنوان مثال، کالا, خریدار, در بالای سر)، ولی ستون ها میزهاحاوی ویژگی های مختلف این اشیا است - ویژگی های (به عنوان مثال، نام محصولات, نام خریدارو شماره فاکتور).

    از نظر پایگاه داده رشته هایجداول خوانده می شوند سوابق و او ستون هاحاشیه ... همه چيز سوابقساختار یکسانی دارند - از همان تشکیل شده اند زمینه های , که مقادیر مختلفی را ذخیره می کنند ویژگی هایهدف - شی. هر یک سوابق مفیدشامل یک ویژگی است هدف - شیو کاملاً تعریف شده است نوع داده(به عنوان مثال رشته متن ، شماره ، تاریخ). تمام سوابق یک جدول یکسان هستند زمینه های، فقط آنها دارای مقادیر مختلف هستند ویژگی های.

    قبل از وارد کردن داده ها به میزها، شما باید تعریف کنید ساختاراز اینها میزها... این به معنای توصیف است عناوینو انواع زمینه، و همچنین تعدادی از ویژگی های دیگر (به عنوان مثال ، اندازه میدان, معیارهای اعتبار سنجی ورودی) نمونه ای از تعریف ساختار جدول مشتری در شکل 8.1 نشان داده شده است.

    ساختار جدول "خریدار".

    علاوه بر شرح سازه هایجداول کاملاً پیچیده است پایگاه دادهنیاز به تعریف اتصالاتبین میزها ارتباطات آیا ارتباطی بین دو نفر برقرار شده است میزها... به عنوان مثال ، اطلاعات مشتری در جدول قبلی می تواند با جدول دیگری "موضوع کالاها" تکمیل شود

    چنین پایگاه دادهنامیده می شوند رابطه ای(از جانب رابطه- ارتباط ، نگرش) پایگاه داده رابطه ای مجموعه ای از ارتباط متقابل است میزها، هر کدام حاوی اطلاعاتی در مورد اشیاءاز یک نوع خاص

    کراوات در پایگاه داده های رابطه ایبا همزمانی مقادیر تعیین می شوند زمینه هایدر جداول مختلف به قسمتهایی که رابطه بین جداول برقرار می شود گفته می شود زمینه های ارتباطی ... در مثالی که داده شد ، این است رشتهنام خریدار

    بسته به نوع اطلاعات موجود در میزهاپایگاه های داده ، می تواند سه نوع لینک اصلی بین آنها وجود داشته باشد: یک به یک, یک به یک, بسیاری به بسیاری.

    نگرش یک به یک بین جداول در حالتی تنظیم می شود که یک رکورد وارد شود والدین زیرمجموعهجدول. در مثال داده شده ، رابطه ای از این نوع بین جداول "خریدار" و "موضوع کالا" برقرار شده است.

    نگرش یک به یک زمانی اتفاق می افتد که یک بار وارد شوید والدینجدول مربوط به بیش از یک رکورد در نیست زیرمجموعهجدول.

    در صورت رابطه بسیاری به بسیاری یک ورودی در والدینجدول می تواند با هر تعداد رکورد در مطابقت داشته باشد زیرمجموعهجدول و بالعکس

    مقید به رابطه است میزهابر اساس اصل تعامل داشته باشند اصلی(استاد) - تابع(جزئیات) در مثال ما ، جدول "خریدار" - اصلی، و جدول "کالاهای آزاد شده" - تابع. اصلیجدول نیز اغلب نامیده می شود والدین، ولی تابعزیرمجموعه... یکسان جدولشاید اصلیدر رابطه با یکی جدولپایگاه داده و زیرمجموعهدر رابطه با دیگری.

    سیستم های مدیریت پایگاه داده (DBMS). طبقه بندی

    برای کار با داده ها استفاده می شود سیستم های مدیریت پایگاه داده (DBMS). DBMS آیا ابزارهای نرم افزاری برای تعریف داده ها (توصیف ساختار پایگاه داده ها - جداول ، پیوندها) ، پردازش و مدیریت داده ها طراحی شده اند. نمونه هایی از DBMS - FoxPro ، Oracle ، SQL-Server ، Delphi ، dBase ، Clipper ، MS Access و غیره

    سه نوع اصلی DBMS وجود دارد: استفاده جهانی صنعتی, هدف ویژه صنعتیو توسعه یافته برای مشتری خاص (سفارشی).

    DBMS تخصصیبرای مدیریت پایگاه های داده برای یک هدف خاص - حسابداری ، انبار ، بانکداری و غیره ایجاد شده اند.

    DBMS جهانییک چارچوب کاربردی به وضوح مشخص ندارند ، آنها "برای همه موارد" طراحی شده اند ، و در نتیجه ، کاملاً پیچیده هستند و دانش کاربر را به دانش خاصی نیاز دارد.

    بر خلاف IndustrialSUBC سفارشیمشخصات کار مشتری (این یا آن شرکت) را حداکثر در نظر بگیرید ، رابط کاربری آنها معمولاً برای کاربران بصری است و نیاز به دانش خاصی از آنها ندارد. از سوی دیگر، تخصصیو جهانی صنعتی DBMSنسبتاً ارزان ، نسبتاً قابل اطمینان (اشکال زدایی) و آماده کار فوری ، در عین حال DBMS سفارشیبه هزینه های قابل توجهی نیاز دارد و تهیه و رفع اشکال آنها مدت زمان قابل توجهی (از چند ماه تا چند سال) به طول می انجامد.

    بسته به محل استقرار DBMS ، بین این تفاوت قائل می شویم محلیو توزیع شده(سرور مشتری) DBMS تمام اجزا DBMS محلی در رایانه کاربر پایگاه داده میزبانی می شود. اگر چندین کاربر به طور همزمان از طریق شبکه رایانه ای به یک پایگاه داده یکسان دسترسی پیدا کنند ، هر رایانه کاربر باید کپی خود را از DBMS محلی داشته باشد. در مقابل ، بخش قابل توجهی از نرم افزار و سخت افزار است توزیع DBMS متمرکز شده و روی یک کامپیوتر به اندازه کافی قدرتمند قرار دارد (سرور) ،در حالی که رایانه های کاربران قسمت نسبتاً کمی از DBMS را حمل می کنند که اصطلاحاً نامیده می شود مشتری. محلی DBMS ها ممکن است در شبکه کار کنند یا نکنند توزیع شده DBMS لزوماً در آن کار می کند شبکه ی کامپیوتری.

    توجه داشته باشید که محل خود پایگاه دادهبه هیچ وجه مشخصات DBMS را تحت تأثیر قرار نمی دهد: در محلیخود DBMS پایگاه دادهمی تواند هم در رایانه کاربر و هم در یک رایانه شبکه از راه دور (سرور پرونده) واقع شود.

    عزت بی قید و شرط سیستم های سرویس دهنده-کلاینتامکان متمرکز بودن است کنترل دسترسیبه پایگاه داده... در چنین سیستم هایی پایگاه دادهتا اندازه زیادی حفاظت شدهاز هر دو تحریف تصادفی و عمدی ، اجرای آن در آنها آسان تر است تمامیتو سازگاری داده ها.

    DBMS مهمترین ملفه است سیستم اطلاعات... ایجاد و مدیریت سیستم اطلاعات DBMS به همان اندازه که لازم است مورد نیاز است مترجمبرای توسعه برنامه هادر زبان الگوریتمی.

    توابع اصلی انجام شده توسط DBMS:

    مدیریت داده ها در حافظه خارجی(روی دیسک ها)

    مدیریت داده ها در حافظه دسترسی تصادفی;

    - ورود به سیستمتغییر می کند و بازیابی پایگاه دادهپس از شکست ها

    حفظ زبانها پایگاه داده(زبان تعریف داده ها - SDL ، زبان دستکاری داده ها - DML یا یک زبان مجتمع شامل تمام ابزارهای لازم برای کار با یک پایگاه داده - زبان جستجوی ساختار یافته SQL).

    زنگ

    کسانی هستند که این اخبار را قبل از شما می خوانند.
    برای دریافت جدیدترین مقالات مشترک شوید.
    پست الکترونیک
    نام
    نام خانوادگی
    چگونه می خواهید زنگ را بخوانید
    بدون هرزنامه