Blok litar pengaturcaraan. “Pembangunan Algoritma VBA. Gambarajah blok. Struktur algoritma

Tegasnya, istilah "carta alir" tidak wujud. Daripada frasa ini, adalah betul untuk menyebut "rajah algoritma", tetapi bukan itu yang kita bincangkan sekarang. Artikel saya adalah mengenai sama ada boleh melukis algoritma dengan cepat dan mudah, dan pada masa yang sama ia mestilah percuma. Alangkah baiknya jika ada analog percuma editor dalam talian Gliffy, dan bernasib baik untuk kami ada.

Algoritma sangat mudah untuk dilukis dengan Pensil. Untuk tujuan ini, terdapat perpustakaan primitif khusus dengan blok dan penyambung standard. Ia kelihatan seperti ini:

Apabila anda melukis bongkah, bongkah itu terkunci secara automatik ke grid, menjadikannya mudah untuk dijajarkan. Setelah melukis satu blok, blok lain boleh "dimagnetkan" kepadanya dari bawah atau dari sisi, semuanya akan lancar.

Jika anda menunjuk pada blok dan klik tetikus sekali, akan ada mod untuk mengubah saiz blok dan menyeret. Jika anda mengklik kali kedua, blok boleh diputar (titik merah bulat akan muncul di sepanjang tepi).

Ciri asas utama tersedia, hampir seperti dalam Visio: blok boleh digabungkan ke dalam kumpulan, diseret dan disalin, diletakkan lebih tinggi atau lebih rendah dalam lapisan, penyambung bermagnet ke tengah, dsb.

Terdapat juga kelemahan, sebagai contoh, penyambung sudut tidak berfungsi dengan betul: ia kadang-kadang berubah menjadi zigzag yang tidak dapat dibayangkan apabila anda cuba memilih dan menyeretnya. Tetapi kelemahan ini sangat kecil sehingga ia tidak menghalang program Pensil daripada mengambil tempat yang sepatutnya dalam koleksi alat pembangun harian saya.

Carta alir ialah model grafik yang menerangkan proses atau algoritma, di mana langkah-langkah adalah blok pelbagai bentuk, dan ia disambungkan dengan garisan. Dan garisan ini menunjukkan arah jujukan. Cara gambarajah blok perlu dilaksanakan dikawal oleh piawaian. Dan ia berfungsi supaya pengaturcara atau orang yang tidak mempunyai pengetahuan dalam bidang ini dapat melihat dengan jelas bagaimana program atau proses berfungsi. Carta alir sering dibuat oleh profesional pengaturcaraan.

Mengapakah seorang pengaturcara memerlukan carta alir?

Notasi Carta Alir ialah kaedah terpantas, paling serba boleh dan boleh diakses di mana pengaturcara boleh menerangkan kepada bukan pakar bagaimana sebarang proses dilakukan atau program berfungsi. Gambar rajah blok juga mewakili dokumentasi untuk sebarang program. Jika pengaturcara perlu menerangkan cara utiliti mudah atau kod kecil berfungsi, dia boleh menunjukkan ini dengan jelas menggunakan editor grafik biasa. Tetapi jika program itu kompleks, kodnya terdiri daripada banyak modul dan baris, editor mudah tidak akan berfungsi. Dalam kes ini, pengaturcara menggunakan penyelesaian profesional dan membina carta alir berdasarkan kod sumber.

Program dan perkhidmatan dalam talian untuk membina gambar rajah blok

Anda boleh menggunakan program khas yang dijalankan pada komputer anda, atau perkhidmatan yang menawarkan pembinaan masa nyata mana-mana litar menggunakan Pascal, Delphi, dan juga C++. Pengaturcara yang berpengalaman lebih suka menggunakan program komputer sahaja.

Perkhidmatan yang disediakan untuk pemetaan proses dalam talian selalunya tidak menyokong keperluan yang diperlukan dan oleh itu tidak dapat menjamin operasi yang betul. Sebagai contoh:

  • Sebilangan arahan bahasa pengaturcaraan tidak disokong dan, oleh itu, rajah jujukan tindakan tidak dibina dengan betul.
  • Graf yang menunjukkan jujukan operasi kurang dilukis.
  • Perkhidmatan dalam talian selalunya tidak membenarkan anda menyimpan carta alir dalam format yang diperlukan.
  • Dan ini bukan semua kelemahan perkhidmatan sedemikian.
Aplikasi komputer khas mengendalikan tugas membina carta alir dengan lebih profesional. Nah, bagi mereka yang tidak mahu memasang program pada komputer mereka, kami mengesyorkan menggunakan antara muka perisian untuk mencipta carta dan graf Carta API daripada Google.


FCeditor ialah aplikasi mudah yang menyokong bahasa pengaturcaraan C++ (fail.cs), Delphi, Pascal (fail.pas). Jika anda perlu mengedit fail kod dalam program ini, anda mesti mengimportnya terlebih dahulu. Apabila FCeditor menghuraikan fail .pas atau .cs yang diimport, ia akan memaparkan pepohon kelas di sebelah kiri, tab akan muncul dalam panel dan di dalamnya terdapat kod program dan gambar rajah.

Nota PENTING! Anda boleh mengeksport graf atau rajah yang dibina ke mana-mana format: daripada jpeg dan tiff ke png dan bmp Program ini mempunyai sokongan bahasa Rusia dan antara muka pengguna yang mudah.


Satu lagi program mudah dengan reka bentuk minimalis tetapi fungsi yang luas. Antara muka pengguna, sama dengan program sebelumnya, adalah mudah dan mudah walaupun untuk bukan profesional. Dalam tetingkap utama anda akan melihat tiga medan. Dalam medan pertama, kod dibentangkan dalam bentuk pokok, dalam yang kedua - teks itu sendiri, dan dalam yang ketiga, terbesar, anda akan melihat gambar rajah atau graf yang dibina. Aplikasi ini mudah digunakan kerana lampu latar. Elemen kod, struktur pokok dan gambar rajah bukan sahaja diserlahkan, tetapi juga runtuh.

Gambar rajah yang dicipta dalam program Autoflowchart boleh dieksport bukan sahaja ke format grafik, tetapi juga ke fail xml. Program ini juga merupakan editor kod yang mudah. Apa-apa sahaja yang anda edit dalam kod dipaparkan serta-merta dalam rajah. Autoflowchart menyokong mana-mana bahasa pengaturcaraan.


Kod Visual ke Carta Alir versi 6.0 ialah program komputer paling berkuasa yang digunakan oleh profesional untuk mencipta carta dan graf. Ia dibezakan oleh fungsi yang luas dan keupayaan untuk membina litar yang tepat. Walaupun fungsi dan keupayaan yang canggih, program ini mempunyai antara muka pengguna yang mudah. Dalam tetingkap utama anda akan melihat tiga medan. Terdapat dua tab di sebelah kiri: satu menunjukkan struktur projek, satu lagi menunjukkan struktur kelas. Di tengah tetingkap utama anda akan melihat kod program, dan di sebelah kanan - gambar rajah segmen kod.

Anda boleh mengeksport gambar rajah yang dibina ke dalam dua format sahaja: png dan bmp.

Nota PENTING! Semua program ini ialah penyelesaian yang hebat untuk membantu anda mencipta carta alir yang jelas dan mematuhi standard. Tetapi untuk menggunakan setiap program yang dibincangkan di atas, anda perlu membayar. Versi percubaan hanya menyediakan sebahagian kecil fungsi dan oleh itu sesuai untuk tujuan penilaian sahaja.


Selalunya, pembangunan aplikasi bermula dengan membina carta alir. Sebelum anda mencipta kod atur cara, anda perlu memikirkannya dengan teliti dan merangka rajah urutan tindakan. Dan ini adalah skema atas dasar yang pengaturcara kemudian menulis kod.

Bagi mereka yang biasa menggunakan perkhidmatan dalam talian, kami mengesyorkan dua yang terbukti - Carta daripada Google dan Draw.io


Draw.io ialah perkhidmatan mudah di mana anda boleh membina dan mengedit carta alir. Fungsinya yang luas, antara muka mesra pengguna dan pakej alatan membolehkan anda mengedit, memformat dan mengubah suai blok, menciptanya mengikut skema standard atau individu. Anda juga boleh menggunakan imej luaran semasa membuat gambar rajah. Gambar rajah yang telah siap boleh disimpan dalam grafik, format vektor, atau sebagai dokumen pada storan awan, atau dimuat turun ke komputer anda.

Draw.io akan menarik perhatian pengaturcara baru untuk fungsi yang kaya dan kemudahan penggunaannya. Dan yang paling penting, anda boleh menggunakannya secara percuma.

API Carta Google menggambarkan dengan sempurna sebarang kod dan mencipta graf, carta dan carta. Kit alat yang luas diwakili oleh perpustakaan pemalam, dengan bantuan graf dan gambar rajah berkualiti tinggi dicipta. Perkhidmatan daripada Google mempunyai dalam fungsinya pelbagai jenis skim dengan bantuan yang bukan sahaja program dibuat, tetapi juga laman web dan dokumen.


Untuk menggunakan perkhidmatan dalam talian yang berkuasa ini, anda hanya perlu membaca arahan terperinci dan mempunyai pengetahuan yang minimum. Cara menggunakan semua alat perpustakaan perkhidmatan dengan betul daripada Google ditunjukkan dalam pakej dokumen.


API Carta Google ialah alat yang hebat untuk pengaturcara profesional.

Ia amat penting untuk menggunakan bahasa carta alir semasa membangunkan algoritma untuk menyelesaikan masalah. Penyelesaian kepada masalah yang sama boleh dilaksanakan menggunakan pelbagai algoritma yang berbeza antara satu sama lain dalam masa pengiraan dan volum pengiraan, dan dalam kerumitannya. Merakam algoritma ini menggunakan carta alir membolehkan anda membandingkannya, memilih algoritma terbaik, memudahkan, mencari dan menghapuskan ralat.

Keengganan daripada bahasa carta alir apabila membangunkan algoritma dan membangunkan algoritma secara langsung dalam bahasa pengaturcaraan membawa kepada kehilangan masa yang ketara dan kepada pilihan algoritma suboptimum. Oleh itu, pada mulanya adalah perlu untuk membangunkan algoritma untuk menyelesaikan masalah dalam bahasa carta alir, selepas itu algoritma diterjemahkan ke dalam bahasa pengaturcaraan.

Apabila membangunkan algoritma untuk masalah yang kompleks, kaedah perincian langkah demi langkah digunakan. Pada langkah pertama, struktur umum algoritma difikirkan tanpa perincian bahagian individunya. Blok yang memerlukan perincian digariskan dengan garis putus-putus dan difikirkan dengan teliti dan diperincikan dalam langkah seterusnya untuk membangunkan algoritma.

Dalam proses membangunkan algoritma untuk menyelesaikan masalah, peringkat berikut boleh dibezakan:

  • Peringkat 1. Penerangan matematik tentang penyelesaian masalah.
  • Peringkat 2. Definisi data input dan output.
  • Peringkat 3. Pembangunan algoritma untuk menyelesaikan masalah.

Reka bentuk algoritma asas

Dalam teori pengaturcaraan telah terbukti bahawa untuk menulis apa-apa algoritma, tidak kira betapa rumitnya, ia sudah mencukupi tiga struktur asas:

  • berikut (algoritma linear);
  • percabangan (algoritma percabangan);
  • loop-bye (algoritma round-robin).

Algoritma linear

Algoritma linear terbentuk daripada urutan tindakan mengikut satu demi satu. Sebagai contoh, untuk menentukan luas segi empat tepat, anda mesti menetapkan panjang sisi pertama, kemudian tetapkan panjang sisi kedua, dan kemudian gunakan formula untuk mengira luasnya.

Contoh

TUGASAN. Membangunkan algoritma untuk mengira hipotenus segi tiga tepat menggunakan nilai yang diketahui bagi panjang kakinya a dan b.

Menggunakan masalah ini sebagai contoh, kami akan mempertimbangkan ketiga-tiga peringkat membangunkan algoritma untuk menyelesaikan masalah:

Penyelesaian matematik untuk masalah itu ialah formula yang terkenal:

,

di mana c ialah panjang hipotenus, a, b ialah panjang kaki.

Data input ialah nilai kaki a dan b. Keluaran ialah panjang hipotenus – c.

Algoritma Percabangan

mengandungi syarat, bergantung pada urutan tindakan tertentu yang dilakukan.

Contoh

TUGASAN. Bina satu algoritma untuk mengira nombor terbesar daripada dua nombor x dan y.

Peringkat 1. Penerangan matematik tentang penyelesaian masalah.

Daripada kursus matematik diketahui bahawa jika x > y, maka nombor terbesar x, jika x< y, то наибольшее число y, если x = y, то число x равно числу y.

Peringkat 2. Penentuan data input dan output.

Data input ialah nilai nombor x dan y. Outputnya ialah:

  • nombor terhebat
  • mana-mana nombor jika nombornya sama

Untuk menyelesaikan masalah kita perlu mengetahui nilai x dan y.

Peringkat 3. Pembangunan algoritma untuk menyelesaikan masalah.

Dalam rajah algoritma untuk menyelesaikan masalah, nombor elemen algoritma ditunjukkan dalam nombor, yang sepadan dengan bilangan langkah dalam penerangan lisan algoritma

Dalam algoritma yang sedang dipertimbangkan (Rajah 3) terdapat tiga cabang untuk menyelesaikan masalah:

  • pertama: ini adalah elemen 1, 2, 3, 4, 8.
  • kedua: ini adalah elemen 1, 2, 3, 5, 6, 8
  • ketiga: ini adalah elemen 1, 2, 3, 5, 7, 8.

Pilihan cawangan ditentukan oleh nilai x dan y dalam elemen 3 dan 5, iaitu keadaan yang menentukan susunan unsur-unsur algoritma dilaksanakan. Jika keadaan (kesamaan) yang ditulis di dalam simbol "penyelesaian" dipenuhi untuk nilai x dan y yang dimasukkan, maka elemen 4 dan 8 dilaksanakan seterusnya Ini berikutan fakta bahawa ia disambungkan dengan garis berlabel "ya ” dan arah (jujukan) pengiraan ditunjukkan anak panah.

Jika syarat dalam elemen 3 tidak dipenuhi, maka elemen 5 dilaksanakan seterusnya Ia disambungkan ke elemen 3 dengan baris berlabel "tidak". Jika syarat yang ditulis dalam elemen 5 dipenuhi, maka elemen 6 dan 8 dilaksanakan, jika tidak elemen 7 dan 8 dilaksanakan.

Algoritma kitaran

menentukan pengulangan beberapa bahagian tindakan (operasi) sehingga syarat dilanggar, pemenuhannya diperiksa pada permulaan kitaran. Satu set operasi yang dilakukan berulang kali dipanggil badan gelung.

Algoritma di mana tindakan individu diulang berkali-kali dipanggil algoritma kitaran, Set tindakan yang berkaitan dengan pengulangan dipanggil kitaran.

Apabila membangunkan algoritma struktur kitaran, konsep berikut dibezakan:

  • parameter kitaran – nilai yang nilainya berubah apabila mengulangi kitaran;
  • nilai awal dan akhir parameter kitaran;
  • langkah kitaran – nilai yang mana parameter kitaran berubah dengan setiap ulangan.

Kitaran ini disusun mengikut peraturan tertentu. Algoritma kitaran terdiri daripada penyediaan gelung, badan gelung dan keadaan penerusan gelung.

Penyediaan kitaran termasuk tindakan yang berkaitan dengan menetapkan nilai awal untuk parameter kitaran:

  • nilai awal kitaran;
  • nilai akhir gelung;
  • langkah kitaran.

Badan gelung termasuk:

  • tindakan berulang untuk mengira kuantiti yang diperlukan;
  • menyediakan nilai parameter gelung seterusnya;
  • penyediaan nilai lain yang diperlukan untuk melaksanakan tindakan berulang dalam badan gelung.

Keadaan penerusan kitaran menentukan kebolehlaksanaan melakukan tindakan berulang. Jika parameter gelung adalah sama atau lebih besar daripada nilai akhir gelung, maka pelaksanaan gelung mesti ditamatkan.

Contoh

TUGASAN. Membangunkan algoritma untuk mengira jumlah nombor asli dari 1 hingga 100.

Peringkat 1. Penerangan matematik tentang penyelesaian masalah.

Mari kita nyatakan jumlah nombor asli oleh S. Kemudian formula untuk mengira jumlah nombor asli dari 1 hingga 100 boleh ditulis seperti berikut:

di mana Xi ialah nombor asli X dengan nombor i, yang berbeza dari 1 hingga n, n=100 ialah bilangan nombor asli.

Peringkat 2. Penentuan data input dan output.

Data input ialah nombor asli: 1, 2, 3, 4, 5, …, 98, 99, 100.

Pengeluaran– nilai hasil tambah sebutan bagi urutan nombor asli.

Parameter gelung nilai yang menentukan bilangan ulangan kitaran. Dalam kes kami, i ialah nombor nombor asli.

Penyediaan kitaran terdiri dalam menetapkan nilai awal dan akhir parameter gelung.

  • nilai awal parameter gelung ialah 1,
  • nilai akhir parameter gelung ialah n ,
  • Langkah gelung ialah 1.

Untuk penjumlahan yang betul, anda mesti menetapkan nilai awal jumlah itu kepada 0.

Badan gelung. Dalam badan gelung, nilai jumlah nombor akan terkumpul, dan nilai seterusnya bagi parameter gelung akan dikira menggunakan formula:

Syarat untuk meneruskan gelung: kitaran mesti diulang sehingga ahli terakhir urutan nombor asli ditambah, i.e. sehingga parameter gelung kurang daripada atau sama dengan nilai akhir parameter gelung.

Peringkat 3. Pembangunan algoritma untuk menyelesaikan masalah.

Mari kita perkenalkan tatatanda berikut: S ialah hasil tambah jujukan, i ialah nilai nombor asli.

Nilai awal kitaran ialah i=1, nilai akhir kitaran ialah i =100, langkah kitaran ialah 1.

Penerangan lisan algoritma Menulis algoritma dalam bahasa carta alir
  1. Permulaan algoritma.
  2. Penyediaan kitaran: S:=0; i=1; n= 100;
  3. Menyemak keadaan. Jika saya<=n , то перейти к шагу 4, иначе к шагу 6.
  4. Pengumpulan amaun: S:=S+i;
  5. Pengiraan nilai seterusnya bagi parameter gelung: i:=i+1;
  6. Output maklumat: jumlah nombor asli – S.
  7. Tamat algoritma.

Dalam rajah algoritma untuk menyelesaikan masalah, nombor unsur-unsur algoritma ditunjukkan dalam nombor. Bilangan elemen sepadan dengan bilangan langkah dalam penerangan lisan algoritma.

Pembangunan gambarajah blok algoritma untuk menyelesaikan masalah

Matlamat kerja: kajian kaedah grafik untuk menerangkan algoritma untuk menyelesaikan masalah.

Objektif Kerja:

    membiasakan diri dengan cara utama mempersembahkan algoritma;

    menguasai kaedah grafik untuk menerangkan algoritma.

1.1. Arahan kerja

    Kaji maklumat teori mengenai topik bahagian ini (bahagian 1.2)

    Baca pernyataan masalah (bahagian 1.3). Pilihan tugas sepadan dengan nombor anda pada senarai kumpulan.

    Membangunkan gambarajah blok algoritma untuk menyelesaikan masalah.

    Jawab soalan keselamatan.

    Sediakan laporan pelaksanaan kerja amali, yang harus mengandungi:

    tajuk muka surat;

    tujuan kerja amali;

    pernyataan masalah;

    gambarajah blok algoritma untuk menyelesaikan masalah;

    jawapan kepada soalan keselamatan;

    kesimpulan daripada kerja amali.

1.2. Maklumat am

Salah satu peringkat yang paling intensif buruh untuk menyelesaikan masalah pada komputer ialah membangunkan algoritma.

Di bawah algoritma difahami sebagai preskripsi tepat yang mentakrifkan proses pengiraan yang membawa daripada data awal yang berbeza-beza kepada hasil yang diingini.

Ciri utama sifat-sifat algoritma ialah:

    keazaman (kepastian) - memandangkan data awal, ketidaksamaan hasil yang diinginkan dipastikan;

    watak jisim – kesesuaian untuk tugasan jenis tertentu dengan data awal kepunyaan subset tertentu;

    kecekapan - proses pengiraan yang dilaksanakan dilakukan dalam beberapa peringkat yang terhad dengan output hasil yang bermakna;

    diskret - keupayaan untuk membahagikan algoritma ke dalam peringkat berasingan, pelaksanaannya tidak diragui.

Yang berikut dibezakan: jenis proses pengkomputeran:

    Proses pengiraan linear.

Untuk mendapatkan hasilnya, perlu melakukan operasi tertentu dalam urutan tertentu.

    Proses pengkomputeran bercabang.

Urutan operasi tertentu bergantung pada nilai satu atau lebih parameter. Sebagai contoh, jika diskriminasi persamaan kuadratik tidak negatif, maka persamaan itu mempunyai dua punca, dan jika negatif, maka tiada punca sebenar.

    Proses pengkomputeran kitaran

Untuk mendapatkan hasil, urutan tindakan tertentu mesti dilakukan beberapa kali. Sebagai contoh, untuk mendapatkan jadual nilai fungsi pada selang waktu tertentu untuk menukar hujah dengan langkah tertentu, adalah perlu untuk menentukan nilai seterusnya hujah beberapa kali yang sesuai dan mengira nilai fungsi untuknya .

Sebaliknya, terdapat juga beberapa jenis proses pengkomputeran kitaran, iaitu:

    DENGAN kitaran genap (kitaran dengan bilangan ulangan tertentu) – Ini adalah proses kitaran yang bilangan ulangan diketahui.

    Gelung berulang ialah proses kitaran yang berakhir apabila syarat tertentu dipenuhi atau dilanggar.

    P kitaran carian - Ini adalah proses kitaran, dari mana terdapat dua kemungkinan keluar:

Keluar apabila proses selesai;

Keluar awal di bawah sebarang syarat tambahan.

Berdasarkan jenis proses pengiraan yang dilaksanakan oleh algoritma, terdapat:

Algoritma struktur linear;

Algoritma struktur bercabang;

Algoritma untuk struktur kitaran.

Algoritma untuk menyelesaikan masalah praktikal biasanya mempunyai struktur gabungan, iaitu, ia merangkumi ketiga-tiga jenis proses pengiraan.

Cara visual untuk menerangkan algoritma termasuk cara utama berikut untuk mewakilinya:

Verbal (rakaman bahasa semula jadi);

Bergaya struktur (rekod dalam bahasa algoritma dan pseudokod);

Grafik (imej gambar rajah dan simbol grafik);

Pengaturcaraan (teks dalam bahasa pengaturcaraan).

Kaedah lisan perihalan algoritma ialah perihalan peringkat pemprosesan data bernombor berturut-turut dan diberikan dalam sebarang bentuk dalam bahasa semula jadi.

Contoh 1.1.

Algoritma untuk menambah dua nombor (a dan b).

    Tanya nombor a sama dengan apa.

    Tanya nombor b sama dengan apa.

    Tambah a dan b, tetapkan hasilnya kepada c.

    Laporan hasil c.

Kelebihan kaedah ini adalah kesederhanaan huraian, tetapi kelemahannya termasuk fakta bahawa pendekatan ini adalah bertele-tele dan tidak mempunyai pemformalkan yang ketat, oleh itu ia membolehkan kekaburan dalam tafsiran arahan individu, kerana kaedah lisan menyampaikan algoritma tidak meluas.

Untuk menentukan secara tegas pelbagai struktur data dan algoritma untuk pemprosesannya, adalah perlu untuk mempunyai sistem tatatanda dan peraturan formal sedemikian supaya makna mana-mana preskripsi yang digunakan ditafsirkan dengan tepat dan jelas. Sistem peraturan yang sepadan dipanggil bahasa penerangan. Ini termasuk bahasa algoritma (pseudokod), carta alir, dan bahasa pengaturcaraan.

Cara bergaya struktur perihalan algoritma adalah berdasarkan algoritma rakaman dalam perwakilan rasmi arahan, ditentukan dengan menggunakan set terhad struktur sintaksis standard, sering dipanggil pseudokod.

Kelebihan pseudokod adalah kedekatannya dengan bahasa pengaturcaraan, dan keburukan, seterusnya, adalah kesukaran untuk menguasai dan kemustahilan memasuki terus algoritma untuk penyelesaian pada komputer, i.e. keperluan untuk terjemahan ke dalam bahasa pengaturcaraan.

Kaedah grafik perihalan algoritma mengandaikan bahawa untuk menerangkan struktur algoritma, satu set imej grafik (blok) yang disambungkan oleh talian penghantaran kawalan digunakan. Imej ini dipanggil kaedah gambarajah blok.

Gambarajah blok Algoritma ialah perwakilan grafik kemajuan penyelesaian masalah. Carta alir terdiri daripada blok yang disambungkan dengan garisan, dan blok tersebut digambarkan sebagai bentuk geometri yang dipanggil simbol. Di dalam simbol, arahan mengenai fungsi yang dilakukan oleh blok ditulis - formula, teks, ungkapan logik. Jenis simbol dan peraturan untuk melaksanakan rajah blok diseragamkan - GOST 19.701-90 mengandungi senarai simbol, nama mereka, fungsi yang dipaparkan, bentuk dan saiz, serta peraturan untuk melaksanakan rajah. Apabila membangunkan algoritma, setiap tindakan ditetapkan oleh blok yang sepadan, menunjukkan urutannya dengan garisan dengan anak panah di penghujungnya. Nama, sebutan dan tujuan elemen gambar rajah blok ditunjukkan dalam Rajah. 1.1.

Rajah 1.1 – Blok utama

Perlu dinyatakan beberapa peraturan asas untuk melaksanakan carta alir yang harus dipatuhi semasa menerangkan algoritma secara grafik. Permulaan algoritma ditandakan dengan simbol "Terminator", dari mana satu baris muncul. Perkataan “Mula” (“Mula”) tertulis di dalamnya. Penghujung algoritma ditandakan dengan simbol yang sama, di mana perkataan "Berhenti" ("Tamat") ditulis. Dalam kes ini, simbol ini tidak mempunyai satu baris keluaran, tetapi satu atau lebih baris boleh disambungkan kepadanya. Simbol Proses boleh mempunyai satu atau lebih baris input dan hanya satu baris output. Beberapa arahan boleh ditulis di dalam simbol - dalam kes ini ia dijalankan mengikut susunan ia ditulis. Pembentangan operasi individu agak percuma. Untuk menunjukkan pengiraan, anda boleh menggunakan ungkapan matematik, untuk memindahkan data - anak panah, untuk tindakan lain - penjelasan dalam bahasa semula jadi, contohnya, A: = X + 4; i: = i + 1, ––> B.

Garis aliran hendaklah selari dengan sisi helaian. Arah utama garis aliran - dari atas ke bawah dan dari kiri ke kanan - tidak ditunjukkan oleh anak panah. Dalam kes lain, anak panah diletakkan di hujung garis aliran, dan titik diletakkan di tempat garis bertemu. Jika gambarajah blok tidak sesuai pada satu helaian, penyambung digunakan. Apabila berpindah ke helaian lain atau menerima kawalan dari helaian lain, nombor helaian ditunjukkan dalam ulasan, contohnya, "dari helaian 3" "ke helaian 1".

Untuk menulis algoritma dengan sebarang kerumitan sudah cukup tiga struktur asas:

    berikut - menandakan pelaksanaan tindakan berurutan (Rajah 1.2, a);

    bercabang - sepadan dengan pilihan satu daripada dua pilihan untuk tindakan (Rajah 1.2, b);

    berbasikal-bye - menentukan pengulangan tindakan sehingga syarat dilanggar, pemenuhannya disemak pada permulaan kitaran (Rajah 1.2, c).

Rajah 1.2 – Struktur algoritma asas

Di samping itu, apabila menerangkan algoritma, kami menggunakan struktur algoritma tambahan, berasal daripada yang asas, setiap satunya boleh dilaksanakan melalui struktur asas:

    pilihan - memilih satu pilihan daripada beberapa bergantung pada nilai kuantiti tertentu (Rajah 1.3, a, b);

    kitaran ke - mengulangi beberapa tindakan sehingga syarat tertentu dipenuhi, yang diperiksa selepas melakukan tindakan dalam kitaran (Rajah 1.3, c, d);

    gelung dengan bilangan ulangan tertentu (kitaran mengira) mengulangi beberapa tindakan beberapa kali tertentu (Rajah 1.3, e, f).

Rajah 1.3 – Pelaksanaan struktur algoritma tambahan

melalui struktur asas

Mari kita lihat contoh penerangan grafik algoritma pelbagai jenis: linear, bercabang, kitaran dan gabungan (Rajah 1.4 - 1.7).

Contoh 1.2. Algoritma linear.

Algoritma untuk mengira nilai ungkapan K=3b+6a (Rajah 1.4).

Rajah 1.4 – Contoh rajah blok algoritma linear

Contoh 1.3. Algoritma percabangan.

Algoritma yang menentukan sama ada graf fungsi y=3x+4 akan melalui titik dengan koordinat x1,y1 (Rajah 1.5).

Rajah 1.5 – Contoh gambarajah blok bagi algoritma percabangan

Contoh 1.4. Algoritma kitaran.

Algoritma yang menentukan faktorial bagi nombor asli n (Rajah 1.6):

n! = 1*2*3*….*(n-1)* n

5!=1*2*3*4*5=120

Rajah 1.6 – Contoh gambarajah blok bagi algoritma kitaran

Contoh 1.5. Algoritma gabungan.

Adalah perlu untuk menentukan pembahagi sepunya terbesar bagi dua nombor asli A dan B.

Untuk menyelesaikan masalah, kami menggunakan algoritma Euclidean, yang terdiri daripada menggantikan nombor yang lebih besar secara berurutan dengan perbezaan nombor yang lebih besar dan lebih kecil sehingga nombor menjadi sama. Mari kita lihat algoritma ini menggunakan dua contoh.

Contoh (a): A=225, B=125. Menggunakan algoritma Euclidean, kami memperoleh untuk A dan B pembahagi sepunya terbesar bersamaan dengan 25.

Contoh (b): A=13, B=4. Dalam kes ini, pembahagi sepunya terbesar bagi A dan B ialah 1.

B

50-25=25

Gambar rajah blok algoritma Euclidean untuk mencari pembahagi sepunya terbesar bagi dua nombor asli ditunjukkan dalam Rajah. 1.7.

Rajah 1.7 – Contoh gambarajah blok bagi algoritma gabungan

Carta aliran algoritma memaparkan secara terperinci semua ciri algoritma yang dibangunkan, tetapi kadangkala tahap perincian yang tinggi tidak membenarkan intipati algoritma diserlahkan. Dalam kes ini, algoritma diterangkan menggunakan pseudokod. Pseudokod adalah berdasarkan struktur asas yang sama seperti gambar rajah blok algoritma (Jadual 1.1).

Contoh 1.6. Penerangan tentang algoritma Euclidean dalam pseudokod.

Algoritma Euclid:

Masukkan A, B

cycle-bye A ≠ B

Jika A > B

Itu A:= A - B

sebaliknya B:= B - A

semua - jika

semua kitaran

Keluaran A

Tamat algoritma.

Jadual 1.1 – Contoh pseudokod untuk menulis struktur algoritma asas

Struktur

Pseudokod

Struktur

Pseudokod

Mengikuti

Pilihan

Semua pilihan

Bercabang

Jika

diberi

bilangan ulangan

Untuk =

sebaliknya

Semua - jika

Kitaran semua

Kitaran-selamat tinggal

Kitaran-selamat tinggal

penuhi

Kitaran semua

1.3. Masalah untuk merangka carta alir algoritma

    Integer m>1 diberikan.

Cari integer terkecil k sehingga 4 k >m.

Kira produk

    Integer n diberi.

Dapatkan nombor terkecil bagi bentuk 2 r yang melebihi n (r ialah nombor asli).

    Diberi integer n, k (n  k  0).

Kira.

    Diberi nombor asli n dan nombor nyata a.

Kira produk.

    Diberi nombor asli n.

Kira Jumlah .

    Diberi nombor nyata x dan nombor asli n.

Kira tanpa menggunakan eksponen.

    Diberi nombor asli n.

Kira jumlahnya:

    Diberi nombor nyata x dan a, nombor asli n.

Kira:

Kira:

    Diberi nombor asli n, m. Dapatkan hasil tambah m digit terakhir bagi nombor n.

    Biarkan n menjadi nombor asli. Kira jumlahnya.

    Diberi nombor asli n.

Kira jumlahnya:

Soalan kawalan

    Tentukan algoritma.

    Senaraikan sifat utama algoritma dan dedahkan intipatinya.

    Bagaimanakah algoritma dibahagikan dengan jenis proses pengiraan yang dilaksanakan?

    Apakah cara untuk menerangkan algoritma yang anda tahu?

    Apakah yang dimaksudkan dengan cara grafik untuk menerangkan algoritma? Apakah kelebihan kaedah ini berbanding penerangan lisan algoritma?

    Kerja Kursus >> Sains Komputer

    Berat tepi pokok yang tinggal. 2.4 Sekat-skim Rajah 7 – Sekat-skim algoritma penyelesaian tugasan 2.5 Justifikasi untuk memilih bahasa pengaturcaraan Turbo..., persekitaran bersepadu yang sangat mempercepatkan proses pembangunan program. Produk perisian ini telah berlalu...

  1. Algoritma dan asas pengaturcaraan

    Kerja amali >> Sains komputer, pengaturcaraan

    Pengaturcaraan penyelesaian pelbagai tugasan pada komputer elektronik; sains berurusan dengan pembangunan kaedah... . Sekat-skim diberi linear algoritma ditunjukkan dalam Rajah 4. Contoh 1. Kira pada x=2.3 Secara amnya, algoritma penyelesaian ...

  2. Pembinaan blok skim algoritma. Bahasa algoritma peringkat tinggi

    Abstrak >> Sains Komputer

    Pendekatan untuk keputusan dihantar tugasan. Tugasan dilaksanakan dalam tiga bahasa pengaturcaraan yang berbeza. Sekat-skim algoritma, penyenaraian program... masa. Algoritma penyelesaian tugasan ternyata lebih berkesan jika anda menggunakan kaedah langkah demi langkah pembangunan, tujuan itu...

  3. Sistem dan perisian

    Abstrak >> Sains Komputer

    ... : Pembangunan blok skim algoritma penyelesaian tugasan untuk memantau pengetahuan pelajar FPK. PeneranganFFffuvvya blok skim algoritma penyelesaian tugasan. Sekat 1 ... – masukkan nama (jawatan) tugasan, masukkan...

Elemen asas gambarajah blok. Jenis carta alir.

Penerangan algoritma menggunakan gambar rajah blok dijalankan dengan melukis urutan angka geometri, setiap satunya membayangkan pelaksanaan tindakan khusus algoritma. Urutan tindakan ditunjukkan dengan anak panah. Menulis algoritma menggunakan carta alir dikawal oleh GOST. Penampilan blok utama yang digunakan semasa menulis gambar rajah blok ditunjukkan dalam rajah.

Mewakili algoritma program dalam bentuk rajah blok mempunyai dua kelemahan:

· menganggap tahap perincian yang terlalu rendah, yang sering menyembunyikan intipati algoritma kompleks

· dan membolehkan anda menggunakan bukan struktur kaedah pemindahan kawalan (goto), dan selalunya pada rajah algoritma ia kelihatan lebih mudah daripada yang setara dengan struktur.

Selain gambar rajah, anda boleh gunakan pseudokod, Borang aliran Dan Gambar rajah Nussi-Schneiderman. Semua kaedah yang disenaraikan, di satu pihak, adalah berdasarkan struktur asas yang sama, dan sebaliknya, membenarkan tahap perincian yang berbeza.

Setiap simbol bentuk Aliran sepadan dengan struktur kawalan dan digambarkan sebagai segi empat tepat. Untuk menunjukkan sarang struktur, simbol bentuk Aliran sesuai dengan kawasan segi empat tepat mana-mana simbol lain yang sepadan. Simbol bentuk aliran yang sepadan dengan struktur kawalan utama dan tambahan ditunjukkan dalam Rajah A1.

<Действие>
A)
b)
V)
G)
d)

Rajah A2 - Simbol rajah Nussi-Schneiderman untuk struktur asas:

a - berikut; b - bercabang; c - pilihan; r - kitaran-selamat tinggal; d - kitaran ke

Perbezaan utama antara rajah Nussi-Schneiderman dan bentuk Aliran ialah kawasan untuk menunjukkan keadaan dan pilihan percabangan digambarkan dalam bentuk segi tiga (Rajah A2). Penamaan ini memberikan lebih kejelasan algoritma.

Kelemahan biasa bentuk Flow dan gambar rajah Nussi-Schneiderman ialah kerumitan membina imej simbol, yang merumitkan penggunaan praktikal tatatanda ini untuk menerangkan algoritma yang besar.

Tidak seperti carta alir, pseudokod tidak mengehadkan tahap perincian operasi, tetapi, bukan grafik, ia memaparkan sarangnya lebih teruk.

Adalah mustahil untuk menerangkan algoritma bukan struktur menggunakan pseudokod, bentuk Aliran dan rajah Nussi-Schneiderman, kerana ia tidak mempunyai konvensyen untuk pemindahan kawalan bukan struktur. Penggunaannya pada mulanya memfokuskan pereka bentuk hanya pada kaedah struktur pemindahan kawalan, dan oleh itu memerlukan analisis menyeluruh terhadap algoritma.

Bergantung pada urutan tindakan dalam algoritma, algoritma berikut dibezakan:

· linear,

· bercabang

· dan struktur kitaran.

Dalam algoritma struktur linear, tindakan dilakukan secara berurutan satu demi satu.

Dalam algoritma struktur bercabang, bergantung pada pemenuhan atau tidak pemenuhan sebarang syarat, pelbagai urutan tindakan dilakukan. Setiap urutan tindakan sedemikian dipanggil cabang algoritma.

Dalam algoritma struktur kitaran, bergantung pada pemenuhan atau tidak pemenuhan beberapa keadaan, urutan tindakan berulang dilakukan, dipanggil badan gelung. Gelung bersarang ialah gelung yang berada di dalam badan gelung lain. Terdapat kitaran dengan prasyarat dan pascasyarat:

Kitaran berulang ialah kitaran yang bilangan ulangannya tidak ditentukan, tetapi ditentukan semasa pelaksanaan kitaran. Dalam kes ini, satu pengulangan gelung dipanggil lelaran.

Jadi: Dengan semua jenis algoritma untuk menyelesaikan masalah, tiga jenis utama proses pengiraan boleh dibezakan:

· linear,

· bercabang

· Dan kitaran,

untuk pelaksanaan yang mana program menggunakan struktur kawalan asas yang sepadan:

· mengikuti,

· bercabang,

· cycle-bye.

Sebagai tambahan kepada yang asas, bahasa pengaturcaraan prosedural peringkat tinggi menggunakan tiga lagi konstruk (struktur) yang mudah dilaksanakan melalui yang asas:

· pilihan,

· kitaran-ke,

· kitaran dengan bilangan ulangan tertentu.

Enam reka bentuk yang disenaraikan telah digunakan sebagai asas pengaturcaraan berstruktur. Perkataan "struktur" dalam nama itu menekankan fakta bahawa hanya struktur yang disenaraikan digunakan dalam pengaturcaraan. Oleh itu konsep "pengaturcaraan tanpa pergi ke". Program yang ditulis menggunakan hanya operator pemindahan kawalan struktur dipanggil berstruktur. , untuk menekankan perbezaan mereka daripada program yang pelaksanaannya menggunakan kaedah peringkat rendah untuk memindahkan kawalan.

Algoritma yang dibangunkan dilaksanakan dalam bentuk kod program ( program) dalam salah satu bahasa pengaturcaraan.