Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirvanie_na_Si_dlya_zaochnikov.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.38 Mб
Скачать

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

ЗАДАЧА 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;

}

}

4.2.7. Алгоритмы циклической структуры

Циклический процесс или просто цикл это повторение одних и тех же действий. Последовательность действий, которые повторяются в цикле, называют телом цикла. Один проход цикла называют шагом или итерацией. Переменные, которые изменяются внутри цикла, и влияют на его окончание, называются параметрами цикла.

Оператор цикла с предусловием

Алгоритм работы цикла с предусловием показан на рис. 9.

Рис. 9. Цикл с предусловием

Оператор, реализующий этот алгоритм в С++ имеет вид:

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

Работает цикл так. Вычисляется значение выражения. Если оно истинно (0), выполняется оператор. В противном случае цикл заканчивается, и управление передается оператору, следующему циклом. Выражение вычисляется перед каждой итерацией цикла. Если при первой проверке выражение = 0, цикл не выполнится ни разу. Если тело цикла состоит более чем из одного оператора, используют составной оператор:

while условие

{

оператор 1;

оператор n;

}

ЗАДАЧА 7. Вывести на экран таблицу значений функции y=esin(x)cos(x) на отрезке [0;] с шагом 0.1.

#define PI 3.14159

int main()

{float x=0, y;

while (x<=PI) //Цикл с предусловием.

{y=exp(sin(x))*cos(x);

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

x+=0.1;

} //Конец цикла.

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]