Тема: Як складати блок-схеми алгоритмів
Вітаю!
На дисципліні "Інформатика" студентів вчать складати блок-схеми, оскільки вони допомагають дослідити процес виконання програми і спрощують її написання в майбутньому. Більше ви можете прочитати в Вікіпедії.
Давайте розглянемо процес складання блок-схем на прикладі 2 програм, написаних на мові C (Сі).
1) Програма Hello, world!
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello, world!\n");
return 0;
}
Аналізуємо:
Головним чином, наша програма виконує єдину функцію - вивід рядка за допомогою функції printf(), давайте зобразимо це за допомогою блок-схем
2) Програмний код, представлений користувачем koala
#include<stdio.h>
#include<limits.h>
#define TYPE unsigned char
char *toBinary(TYPE number, char *buffer, int bufferSize)
{
int i;9:52 06.05.2013
for(i = bufferSize-2; i >= 0; i--, number /= 2)
buffer[ i ] = (number % 2) + '0';
buffer[bufferSize-1] = '\0';
return buffer;
}
int main()
{
TYPE x = 73, mask1 = 9, mask2 = 128;
const int binaryXSize = CHAR_BIT * sizeof(TYPE) + 1;
char binaryX[binaryXSize];
printf("pochatkove chislo = %d\n", x);
printf("chyslo u dviykoviy systemi = %s\n", toBinary(x,binaryX,binaryXSize) );
x &= ~mask1;
x ^= mask2;
printf("chislo z maskamy = %d\n", x);
printf("chyslo u dviykoviy systemi = %s\n", toBinary(x,binaryX,binaryXSize) );
getchar();
return 0;
}
Аналізуємо:
В першому блоці опишемо ініціалізацію змінних та масиву, які будуть в подальшому використовуватись
Перший блок виводу (двічі використана функція printf()) зобразимо паралелограмом.
Так як ф-я toBinary() надається printf() в якості аргументу, то зобразимо її прямокутником для зображення підпроцесів (із відрізками всередині), до того ж цей прямокутник зобразимо обабіч printf() для наочності. Запишемо назву функції та аргументи, які будуть їй передані в цій фігурі.
Наступним кроком буде застосовування побітових операцій відносно змінної x, зобразимо це в прямокутнику, його ж розмістимо уже під паралелограмом.
Після цього знову ж зобразимо блок printf() по аналогії із кроком 3 та 4.
Наступними будуть викликані функції getch() та return, тож додамо іще два прямокутники під паралелограмом і запишемо в них назву цих функцій відповідно.
В результаті цієї роботи отримаємо таку схему:
Також треба описувати підпроцеси. В цьому прикладі в якості підпроцесу виступає функція toBinary(). koala склав блок-схему для її опису, обов’язково переглянте її: http://replace.org.ua/post/10786/#p10786.
Програмісти значно спростили нам життя тим, що написали купу програм для побудови блок-схем автоматично, ось деякі з них:
http://vicking.narod.ru/flowchart/
http://www.gliffy.com/gliffy/#templateI … p;signup=1
http://www.smartdraw.com/specials/block-diagram.htm
Я робив схеми в MS Visio
Надзвичайно вичерпна інформація разом із прикладами знаходиться в додкатку