نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • اهن
  • برنامه نویسی برنامه های علوم کامپیوتر N.V. Komleva، A.A

برنامه نویسی برنامه های علوم کامپیوتر N.V. Komleva، A.A

  • برنامه نويسي
    • ترجمه

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

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

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

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

    با در نظر گرفتن این هدف، من همیشه در مورد یک سوال (مانند بسیاری از محققان دیگر) نگران بوده ام: چرا برنامه نویسان نمی توانند مانند سایر زمینه های علوم کامپیوتر نتایج دقیق تری به دست آورند؟ به بیان دیگر، «معماری و طراحی نرم افزار چقدر می تواند رسمی و قابل اثبات باشد؟» پاسخ این سوال در شکل 1 آمده است.


    شکل 1: خط روشن در علوم کامپیوتر

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

    پس این خط روشن چیست و چرا هیچ موضوع برنامه نویسی زیر آن وجود ندارد؟ خط کیفیتی است به نام «مشارکت مستقیم انسان». توسعه نرم افزار دارای این کیفیت است، اما علوم کامپیوتر سنتی این کیفیت را ندارد. نتایج از رشته های زیر خط می تواند توسط افراد استفاده شود، اما این نتایج مستقیماً تحت تأثیر قرار نمی گیرند نفوذاز مردم.

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

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

    این مشاهدات منجر به تز کانل می شود:

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


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

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

    قبل از پرداختن به مفاهیم ادعای من، اجازه دهید سه ایراد قابل قبول را در نظر بگیریم:

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


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

    نتایج آماری در برنامه نویسی قبلاً این نظریه را رد می کند.


    این روش ها به طور کلی به مشکل تخمین می پردازند و شامل شمارش نقاط تابع، COCOMO II، PROBE و موارد دیگر می شوند. علیرغم ظاهر ریاضی آنها، این روش ها اثبات یا نتایج رسمی نیستند. چنین آماری صرفاً تلاشی برای کمی سازی تجربه ذهنی انسان از پروژه های نرم افزاری گذشته و تعمیم آن به پروژه های آینده است. گاهی اوقات کار می کند. اما فرمول های به ظاهر سختگیرانه در این طرح ها برای استفاده از یک بیان مدرن، یک خوک با رژ لب است. برای مثال، یکی از فرمول های COCOMO II به این صورت است: , که در آن a مجموعه ای از پنج است عوامل پوسته پوسته شدنمانند "انعطاف پذیری توسعه" و "انسجام تیم". این فرمول به خودی خود سختگیرانه به نظر می رسد، اما شاخصی که از عوامل انسانی تشکیل شده است بر آن غالب است.

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


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

    در مقابل این مخالفت‌ها، من استدلال می‌کنم که توسعه نرم‌افزار اساساً با سنتی متفاوت است علوم کامپیوتر رسمی. اولی به مردم بستگی دارد، اما دومی نه. این ما را به نتیجه گیری کانل می رساند:

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


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

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

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

    یک مهندس عمران باهوش، بهترین متخصص جهان در مصالح ساختمانی، روابط تنش-کرنش، توزیع بار، حفاظت در برابر برش باد و زلزله و غیره را تصور کنید. این مرد در فهرست نوت بوک هامعماران در همه کشورها او را برای مشاوره در مورد هر پروژه ساختمانی فراخوانند. آیا این مهندس عمران افسانه‌ای در طراحی ساختمان‌هایی که تحلیل می‌کند به خوبی خواهد بود؟ اصلا. او می‌تواند در گفتگو با مشتریان گم شود، نمی‌تواند مکان‌های دلپذیری برای زندگی طراحی کند، تخیل برای ارائه راه‌حل‌هایی برای مشکلات جدید ندارد و مثل جهنم کسل‌کننده است. تکنیک های ساخت و ساز برای معماران واقعی مفید است، اما برای آن کافی نیست پروژه خوب. معماری موفق مستلزم خلاقیت، مفهوم، تفکر میان رشته ای و انسان گرایی است.

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

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

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

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

    فهرست مطالب
    اطلاعات در مورد نویسندگان 5
    1. علوم کامپیوتر 7
    1.1. اطلاع رسانی و اطلاع رسانی جامعه 8
    1.2. اندازه گیری و ارائه اطلاعات 9
    1.3. وسایل فنیپیاده سازی فرآیندهای اطلاعاتی 10
    1.4. نرم افزاراجرای فرآیندهای اطلاعاتی 14
    1.5. فناوری های برنامه نویسی 15
    2. الگوریتم سازی فرآیندهای پردازش داده ها 21
    2.1. مفاهیم و تعاریف اساسی 22
    2.2. ابزارهای به تصویر کشیدن الگوریتم ها 23
    2.3. ویژگی ها و طبقه بندی داده ها 24
    3. ساختارهای اساسی زبان برنامه نویسی پاسکال 29
    3.1. عناصر اصلی برنامه در زبان پاسکال 30
    3.2. عملگرهای زبان 32
    3.3. اپراتور مشروطو استفاده از آن برای سازماندهی انشعاب 34
    3.4. مدیریت شعب با استفاده از بیانیه مورد 35
    3.5. سازماندهی فرآیندهای چرخه ای 37
    3.6. پردازش اطلاعات نمادین 41
    3.7. سازمان اجرای برنامه در محیط دلفی 43
    4. پردازش نرم افزار انواع ساختاری 49
    4.1. سازماندهی اطلاعات در قالب آرایه 50
    4.2. سازماندهی اطلاعات در قالب سوابق 52
    4.3. سازماندهی اطلاعات به عنوان یک مجموعه 55
    4.4. ویژگی های پردازش اطلاعات اقتصادی، سازماندهی شده به عنوان آرایه ای از رکوردها 58
    5. برنامه نویسی ماژولار 65
    5.1 سازماندهی ساختار مدولار برنامه 66
    5.2. استفاده از رویه های 68
    5.3. استفاده از توابع 72
    5.4. رویه ها و توابع بدون پارامتر 77
    5.5. سازمان ماژول های خارجی 80
    تم ها کار آزمایشگاهی 89
    واژه نامه 90
    فهرست ادبیات توصیه شده 94

    دانلود رایگان کتاب الکترونیکی V فرمت مناسب، تماشا کنید و بخوانید:
    دانلود کتاب Computer Science and Programming Komleva N.V. Smirnov A.A. Khripkov D.V. 2008 - fileskachat.com دانلود سریع و رایگان.

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

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

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

    او چه کار می کند؟

    علم کامپیوتر با چالش های زیر مواجه است:

    1. سخت افزار و پشتیبانی نرم افزاریفناوری رایانه.
    2. ابزاری برای اطمینان از تعامل بین انسان و اجزای کامپیوتر.

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

    ارائه الگوریتم ها

    آنها را می توان به تعداد زیادی روش نوشت. محبوب ترین آنها موارد زیر است:

    1. شرح شفاهی و فرمولی. این مستلزم قرار دادن متن و فرمول‌های خاص است که ویژگی‌های تعامل را در همه موارد فردی توضیح می‌دهد.
    2. نمودار بلوکی. در دسترس بودن ضمنی است نمادهای گرافیکی، که درک ویژگی های تعامل برنامه در درون خود و با سایر برنامه ها یا سخت افزار کامپیوتر را ممکن می سازد. هر یک از آنها می تواند مسئول یک تابع، رویه یا فرمول جداگانه باشد.
    3. ایجاد ضمنی راه های جداگانهتوضیحاتی برای موارد خاص که ویژگی ها و ترتیب وظایف را نشان می دهد.
    4. نمودارهای اپراتور این شامل ایجاد یک نمونه اولیه است - تعامل را بر اساس مسیرهایی که عملوندهای جداگانه طی می کنند نشان می دهد.

    شبه کد طرحی از اسکلت برنامه.

    ثبت الگوریتم

    چگونه شروع به ایجاد نمونه اولیه برنامه، عملکرد یا رویه خود کنیم؟ برای این کار کافی است از اینها استفاده کنید توصیه های کلی:

    1. هر الگوریتم باید نام خاص خود را داشته باشد که معنای آن را توضیح می دهد.
    2. مطمئن شوید که یک آغاز و یک پایان وجود دارد.
    3. داده های ورودی و خروجی باید شرح داده شوند.
    4. شما باید دستوراتی را مشخص کنید که برای انجام اقدامات خاصی روی اطلاعات خاص استفاده می شود.

    روش های ضبط

    می‌تواند تا پنج نمایش از الگوریتم وجود داشته باشد. اما فقط دو راه برای نوشتن وجود دارد:

    1. صوری-کلامی. با این واقعیت مشخص می شود که توصیف عمدتاً با استفاده از فرمول ها و کلمات انجام می شود. محتوا و همچنین ترتیب اجرای مراحل الگوریتم در این حالت به صورت طبیعی نوشته شده است. زبان حرفه ایبه هر شکلی
    2. گرافیک. رایج ترین. از نمادهای بلوک یا نمودارهای الگوریتم استفاده می کند. ارتباط بین آنها با استفاده از خطوط ویژه نشان داده شده است.

    ما یک ساختار برنامه را توسعه می دهیم

    سه نوع اصلی وجود دارد:

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

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

    برنامه نويسي

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

    1. عملکردی.
    2. اتاق اپراتور:

    نه رویه ای؛

    رویه ای.

    آیا می توانید حدس بزنید کدام یک بیشتر استفاده می شود؟ اپراتور رویه ای - این پاسخ است. آنها می توانند ماشین محور یا مستقل باشند. اولین شامل اسمبلرها، کدهای خودکار، رمزگذاری نمادین. افراد مستقل بر اساس جهت گیری خود تقسیم بندی می کنند:

    • رویه ای؛
    • مشکل ساز؛
    • هدف - شی.

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

    نتیجه

    هنگام کار با الگوریتم‌ها (و متعاقباً با برنامه‌ها)، باید سعی کنید تمام جزئیات را تا کوچک‌ترین جزئیات فکر کنید. پس از آن، شناسایی هر بخش توسعه نیافته کد تنها منجر به کار اضافی، افزایش هزینه های توسعه و زمان اتمام کار. برنامه ریزی دقیق و شرح و بسط تمام تفاوت های ظریف باعث صرفه جویی قابل توجهی در زمان، تلاش و هزینه می شود. خوب، حالا آنها می توانند بگویند که پس از خواندن این مقاله، درک درستی از اصول الگوریتم سازی و برنامه نویسی دارید. تنها چیزی که باقی می ماند استفاده از این دانش است. اگر می خواهید موضوع را با جزئیات بیشتری مطالعه کنید، می توانم کتاب "مبانی الگوریتم سازی و برنامه ریزی" (Semakin, Shestakov) 2012 را توصیه کنم.

    وزارت آموزش و پرورش فدراسیون روسیه

    دانشگاه دولتی مسکو

    اقتصاد، آمار و علم اطلاعات

    N.V. Komleva، A.A. علم کامپیوتر و برنامه نویسی اسمیرنوف آموزش

    مسکو، 2006

    Komleva N.V.، Smirnov A.A. علوم کامپیوتر و برنامه نویسی: کتاب درسی / دانشگاه دولتی مسکو اقتصاد، آمار و انفورماتیک.-M.، 2006.-

    این راهنما شامل ارائه مفاهیم اولیه در زمینه علوم کامپیوتر و مبانی برنامه نویسی و همچنین مثال های عملی است.

    این راهنما برای دانش آموزان تخصص های زیر در نظر گرفته شده است:

    - «مدیریت»، «مدیریت سازمان ها»، «مدیریت منابع انسانی»، «تجارت»، «بازاریابی»، «اقتصاد جهانی»، «مدیریت بحران»، «حسابداری، تحلیل و حسابرسی»، «مالی و اعتبار»، « زبان‌شناسی»، «مالیات و مالیات»، «روان‌شناسی».

    1. علوم کامپیوتر.

    1.2. اندازه گیری و ارائه اطلاعات.

    1.3. ابزارهای فنی برای اجرای فرآیندهای اطلاعاتی.

    1.4. ابزارهای نرم افزاری برای پیاده سازی فرآیندهای اطلاعاتی.

    1.5. فناوری های برنامه نویسی

    2. الگوریتم سازی فرآیندهای پردازش داده ها.

    2.1. مفاهیم و تعاریف اساسی.

    2.2. ابزارهایی برای به تصویر کشیدن الگوریتم ها

    2.3. ویژگی ها و طبقه بندی داده ها.

    3. ساختارهای اساسی زبان برنامه نویسی پاسکال.

    3.1. عناصر اساسی یک برنامه در پاسکال.

    3.2. اپراتورهای زبان

    3.3. اپراتور مشروط و استفاده از آن برای سازماندهی شعب.

    3.4. مدیریت شعب با استفاده از عبارت Case.

    3.5. سازماندهی فرآیندهای چرخه ای

    3.6. عملگر حلقه با شمارنده.

    3.7. پردازش اطلاعات نمادین

    3.8. سازماندهی اجرای برنامه در محیط دلفی.

    4. پردازش نرم افزاری انواع سازه.

    4.1. سازماندهی اطلاعات در قالب آرایه.

    4.2. پردازش نرم افزاری اطلاعات ارائه شده در قالب سوابق.

    4.3. ویژگی های پردازش اطلاعات اقتصادی سازماندهی شده در قالب آرایه ای از رکوردها.

    4.4. ارائه اطلاعات اقتصادی در قالب یک مجموعه.

    5. برنامه نویسی ماژولار.

    5.1. سازماندهی ساختار مدولار برنامه.

    5.2. استفاده از رویه ها

    5.3. استفاده از توابع

    5.4. رویه ها و توابع بدون پارامتر.

    5.5. سازماندهی ماژول های خارجی

    6. ادبیات و منابع INTRNET

    7. واژه نامه

    1. علوم کامپیوتر.

    1.1. اطلاع رسانی و اطلاع رسانی جامعه.

    اصطلاح اطلاعات از کلمه لاتین "Informatio" گرفته شده است که به معنای شفاف سازی، آگاهی، ارائه است. علم کامپیوتر اطلاعات را به عنوان اطلاعات بهم پیوسته مفهومی، داده ها، مفاهیمی می داند که ایده های ما را در مورد یک پدیده یا شی در دنیای اطراف تغییر می دهد. همراه با اطلاعات، مفهوم داده اغلب در علوم کامپیوتر استفاده می شود. داده ها را می توان به عنوان ویژگی ها یا مشاهدات ثبت شده در نظر گرفت که در حال حاضر مورد استفاده قرار نمی گیرند اما ذخیره می شوند. در صورتی که داده ها شروع به استفاده کنند، داده ها به اطلاعات تبدیل می شوند.

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

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

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

    اولا، ابزار فنی (سخت افزار)؛

    دوم، نرم افزار

    ثالثاً ابزارهای الگوریتمی (برین افزار).

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

    اولاً به عنوان شاخه ای از اقتصاد ملی؛

    ثانیاً به عنوان یک علم بنیادی;

    ثالثاً به عنوان یک رشته کاربردی.

    معرفی رایانه‌ها و ابزارهای مدرن پردازش و انتقال اطلاعات به حوزه‌های مختلف فعالیت، آغاز فرآیند جدیدی به نام «اطلاع‌رسانی» بود.

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

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

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

    فهرست مطالب
    معرفی
    پیشگفتار
    فصل 1. اجزای اساسی فناوری کامپیوتر
    1.1. فناوری های کامپیوتریو فضای اطلاعاتی 17
    1.2. کامپیوتر: ساختار و پارامترها 18
    1.2.1. طرح ساختاریکامپیوتر 19
    1.2.2. دستگاه های اضافیاطلاعات ورودی/خروجی 22
    1.2.3. طبقه بندی کامپیوترها 24
    1.2.4. شبکه های داده 26
    1.3. نرم افزار کامپیوتر 27
    1.3.1. طبقه بندی نرم افزار 27
    1.3.2. سیستم فایلذخیره سازی اطلاعات 29
    1 4 سیستم عامل دیسک MS DOS .31
    1.4.1. ترکیب و هدف MS DOS 0.31
    1.4.2. تخصیص حافظه در MS DOS 32
    1 4.3. ساختار فایلدیسک 33
    1.4.4. MS DOS 34 Utilities
    1.4.5. درایورهای دستگاه در MS DOS 39
    1.5. اجرای دستورات MS DOS.40
    1.6. برنامه پوسته نورتون فرمانده، کارگاه آموزشی. کار در محیط MS DOS 50
    فصل 2. سیستم عامل گرافیکی سیستم WINDOWS XP 51
    2.1 دسکتاپ سیستم عامل
    2.1.1. عناصر اساسی دسکتاپ 55
    2.1.2. دکوراسیون رومیزی 66
    2.1 3. مدیریت اشیاء روی دسکتاپ 70
    2.2. کنترل پنل 71
    2.3. فرمت کردن دیسک 76
    2.4. سفارشی کردن نوار وظیفه 76
    2.5. سفارشی کردن منوی دکمه استارت 77
    2.6. برنامه اکسپلورر 80
    2.7. سبد برنامه 84
    2.8. نمونه کارها برنامه 85
    2.9. برنامه Notepad 87
    2.10. برنامه های برنامه ریزی شده وظایف و تاریخ و زمان 87
    2.11. کاربرد رنگ 89
    2.11.1. عناصر اساسی گرافیک ویرایشگر رنگ 90
    2.11.2. منوی سیستم ویرایشگر گرافیکیرنگ 91
    2.11.3. ابزارهای ویرایشگر گرافیکی Paint 95
    2 11.4. درج گرافیک 99
    کارگاه: کار در گرافیک سیستم عاملخانواده ویندوز 100
    فصل 3. مبانی برنامه نویسی در Turbo Pascal 7.0
    3.1. فرآیند برنامه نویسی 115
    3.2. جعبه ابزار توربو پاسکال 118 یکپارچه
    3.2.1. گزینه های منوی اصلی 118
    3.2.2. هدف کلیدهای عملکرد 125
    3.2.3. ویرایشگر متن 127
    3.2.4. عملیات 127
    3.3. زبان برنامه نویسی Turbo Pascal 7.0 128
    3.3.1. واژگان زبان 128
    3.3.2. گرامر زبان 132
    3 4. اپراتورها 133
    3.4.1. بیانیه های ورودی و خروجی داده 134
    3.4.2. ساده Goto 136
    3.4.3. گزاره های ساختاریافته 137
    3.5. انواع داده 145
    3.5.1 انواع سادهداده 145
    3 5.2. انواع ساختار یافتهداده 148
    3.6. رویه ها و عملکردها - 166
    3.7. ماژول در توربو پاسکال 173
    3.7.1. ماژول استاندارد کتابخانه SP 176
    3.7.2. ماژول استاندارد کتابخانه نمودار 184
    3.7.3. سیستم ماژول استاندارد کتابخانه 211
    3.8. توسعه سیستم های اطلاعاتیبرای تمرین تجاری 215
    کارگاه: برنامه نویسی در توربو پاسکال 226
    فصل 4. تکالیف برای کار مستقل
    4.1. کار با Norton Commander 318
    4 2 کار در محیط گرافیکی Paint 320
    4.3. دستورات اساسیمحیط یکپارچه Turbo Pascal 320
    4.4. رابط پنجره در برنامه های کاربری 324
    4.5. برنامه های ساختار خطی 324
    4.6. برنامه های ساختار شاخه 325
    4.7. سازماندهی چرخه های 326
    4.8. رفتار آرایه های چند بعدیداده 326
    4.9. پردازش داده شخصیت 327
    4.10. پردازش داده های رشته ای 327
    4.11. پردازش داده ها از نوع رکورد" 328
    4.12. تایپ شده و فایل های متنی 328
    4.13. رویه ها و عملکردها 329
    4.14. پردازش مجموعه داده 329
    4.15. ردیف و رکورد 330
    فصل 5. سرویس اطلاعاتاینترنت 331
    5.1. ساختار شبکه جهانی 331
    5.1.1. خدمات اطلاعاتیشبکه های 331
    5.1.2 پروتکل های شبکه 333
    5.2. بینندگان اسناد شبکه های اطلاعاتی 335
    5.2.1. رابط پنجره مرورگر Netscape Communicator 336
    5.2.2. رابط پنجره مرورگر MS اینترنت اکسپلورر 341
    5.3. ایمیل 346
    5.3.1. نصب و راه اندازی صندوق پستی 346
    5.3.2. ویرایش فایل تنظیمات 350
    5.3.3. ساختار پست الکترونیک 350
    5.3.4. رفتار پیام های پستی 356
    5 3.5. کار با دفترچه آدرس 359
    کارگاه: فناوری کاربردی پست الکترونیک 361
    5.4. کار با اسناد وب 364
    5.4.1. روش های دسترسی به اسناد وب 364
    5.4.2. تنظیم صفحه جستجو 372
    5 4 3. کپی کردن صفحات وب 372
    5.b. شرکت در کنفرانس های تلفنی 374
    5.5.1. ساختار خدمات 374
    5.5.2. خواندن خبر 375
    5 5.3. خواندن مقالات گروه خبری 377
    5 5.4. مشاهده اسناد کنفرانس از راه دور 379
    5 5.5. ارسال مدارک به کنفرانس تلفنی 380
    5.6. موتورهای جستجوو فهرست منابع 381
    5 6 1. صفحات زرد بخش روسی اینترنت 382
    5 6.2. علم و فناوری 384
    5 6 3. آموزش 385
    5 6.4. فروشگاه اینترنتی 389
    5.6.5. کتابخانه های مجازی 390
    5.7. انجمن اینترنتی شبکه های اطلاعات روسیه 392
    5.7.1. ارائه دهندگان اینترنت ملی 393
    5.7.2. منابع اطلاعاتیاینترنت 395
    کارگاه: جستجو و پردازش اطلاعات در اینترنت 395
    فصل 6. HTML - زبان نشانه گذاری فرامتن
    6.1. ساختار زبان HTML 401
    6.1.1. HTML Document Notation 403
    6.1.2. عنوان سند 403
    6.1.3. بدنه سند 404
    6.2. نوشتن متن سند وب 404
    6.2.1. ابتدای بند و انتهای سطر 405
    6.2.2. 405 سبک های سرفصل
    6 2.3. سبک های بدنی 406
    6.2.4. سبک های بولی 407
    6.2.5. متن از پیش فرمت شده 407
    6.2.6. لیست 408
    6.2.7. نمادهای خاص 409
    6.3. سازماندهی پیوندهای فرامتن 410
    6.3 1. تولید اشاره گر 411
    6 3 2. ایجاد فهرست مطالب با استفاده از نام های فهرست 411
    6.3 3. استفاده از هایپرلینک برای تشکیل فهرست مطالب سند وب فعلی 412
    کارگاه - تشکیل متن یک سند وب 412
    6.4. رنگ متن و تصاویر پس زمینه 416
    6 5. نصب المان های جدول 418
    6.5.1 تگ های جدول پایه 418
    6.5.2. قرار دادن جداول پیچیده 421
    6.5.3. ترکیب متن و جدول در حاشیه سند 423
    کارگاه: فهرست ها و جداول در زمینه صفحات وب 425
    6.6. قرار دادن عناصر گرافیکی 429
    6 6.1 خطوط افقی 429
    6 6.2. تصاویر گرافیکی 430
    6 6.3. نشانگرهای پیوند 433
    6 6.4. عناصر گرافیکیدر حاشیه جداول 433
    6 7 نقشه های تصویری در فیلد سند وب 436
    6.8 سازماندهی صفحات وب با استفاده از فریم 439
    کارگاه: استفاده از گرافیک و فریم برای سازماندهی اسناد وب
    واژه نامه اصطلاحات 445
    ادبیات 458

    بهترین مقالات در این زمینه