Изображение алгоритма в виде блок-схемы

Блок-схемой называется наглядное графическое изображение алгоритма. В блок-схеме отдельные этапы алгоритма изображают при помощи различных геометрических фигур – блоков. Последовательность выполнения этапов указываются при помощи стрелок, соединяющих эти фигуры. Блоки сопровождаются надписями. Типичные действия алгоритма изображаются геометрическими фигурами представленными в табл. 7.

Таблица 7. Изображение основных действий алгоритма.

Название блока Изображение блока Надпись на блоке
Начало (конец) алгоритма «начало» («конец»)
Ввод – вывод данных «ввод» («вывод») и список переменных.
Решение (арифметический) операция или группа операций
Условный блок логическое условие

Составной оператор

Это группа операторов, отделенных друг от друга точкой с запятой, начинающихся с открывающей фигурной скобки { и заканчивающихся закрывающейся фигурной скобкой }.

{

оператор_1;

...

оператор_n

}

Транслятор воспринимает составной оператор как один оператор.

Операторы ветвления

Алгоритмы разветвленной структуры (рис. 4) применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.

Рис. 4. Блок-схема алгоритма разветвляющейся структуры

Условный оператор, соответствующий приведенной блок-схеме, имеет вид:

if (выражение) оператор_1;

else оператор_2;

Вычисляется выражение. Если оно не равно нулю, т.е. имеет значение true, выполняется оператор_1, в противном случае (выражение равно нулю, т.е. false) – оператор_2.

Если в зависимости от некоторого условия выполняется некоторое действие, а в противном случае ничего не происходит, то алгоритм имет вид (рис. 5):

Рис. 5. Блок-схема алгоритма разветвляющейся структуры, без альтернативного действия

Условный оператор в этом случаеимет конструкцию:

if (выражение) оператор;

Эту запись можно назвать «пропуск оператора else». Здесь оператор либо выполняется, либо пропускается, в зависимости от значения выражения.

Если в какой-либо ветви условного процесса требуется выполнить несколько операторов, следует использовать составной оператор.

Распространенные ошибки при программировании условных процессов:

1. Неверное использование операций проверки равенства (==) и присваивания (=). Например,

if (a=1) b=0; //НЕ ВЕРНО[4]

if (a==1) b=0; //ВЕРНО

2. Запись проверки на принадлежность диапазону. Например,

if if (0<x<1)… //НЕ ВЕРНО

if (0<x && x<1)… //ВЕРНО

Примеры программ

ЗАДАЧА 4. Известны коэффициенты а, b и с квадратного уравнения ax2+bx+c=0. Вычислить корни квадратного уравнения.

Входные данные: a, b, c.

Выходные данные: х1, х2.

Алгоритм решения задачи в виде блок-схемы представлен на рис. 6.

Рис. 6. Алгоритм решения квадратного уравнения

#include <stdio.h>

#include <math.h>

void main()

{

float a,b,c,d,x1,x2;

printf("\n vvedite a \n"); scanf("%f",&a);

printf("\n vvedite b \n"); scanf("%f",&b);

printf("\n vvedite c \n"); scanf("%f",&c);

d=b*b-4*a*c;

if (d<0) printf("reshenij net \n");

else

{

x1=(-b+sqrt(d))/2/a; x2=(-b-sqrt(d))/2/a;

printf("x1=%f \n", x1); printf("x2=%f \n", x2);

}

}

ЗАДАЧА 5. Дано вещественное число x. Для функции, график которой приведен на рис. 7, вычислить y = f (x).

Рис. 7. Графическое представление задачи 5

Постановка задачи:

Алгоритм решения задачи 5 представлен на рис. 8.

Рис. 8. Блок-схема решения задачи 5

#include <iostream.h>

#include <math.h>

int main()

{

float x,y;

cout<<"x="; cin>>x;

if (x<=1) y=1;

else if (x>1) y=2;

else y=fabs(x);

cout<<"\n x="<<x<<"\t y="<<y;

}

4.2.6. Оператор варианта

Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений:

switch (выражение)

{

case значение_1: Операторы_1; break;

case значение_2: Операторы_2; break;

[default: Операторы; break;]

}

Выполнение оператора начинается с вычисления выражения. Значение выражения должно быть целочисленным. Затем управление передается первому оператору из списка, значение которого совпало с вычисленным.

Если выражение=значение_1, то выполняются операторы_ 1. Если выражение =значение_2, то выполняются операторы_2 и т.д.

Если выражение не принимает ни одно из имеющихся значений из списка, то выполняются операторы, указанные после оператора default. Ветвь default может отсутствовать.

ЗАДАЧА 6.Вывести на печать название дня недели, соответствующее заданному числу D, при условии, что в месяце 31 день и 1-е число – понедельник.

Если остаток от деления заданного числа D на семь равен единице, то это понедельник, двойке – вторник, тройке – среда и так далее. Выражение D % 7 может принимать только одно из значений: 1, 2, 3, 4, 5, 6 или 0. В записи оператора варианта ветвь default будет отсутствовать.

int main()

{unsigned int d;

cout<<"d="; cin>>d;

switch (d%7)

{

case 1: cout<<"Monday";break;

case 2: cout<<"Tuesday";break;

case 3: cout<<"Wednesday";break;

case 4: cout<<"Thursday";break;

case 5: cout<<"Friday";break;

case 6: cout<<"Суббота";break;

case 0: cout<<"Sunday";break;

}

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: