Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по программированию на языке СС++. Учебно-методическое пособие

.pdf
Скачиваний:
2
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
Лабораторная работа № 4
1 0 (T)
(F)
Услови
Р
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ ПРОЦЕССОВ
Цель работы: Получить навыки программирования разветвляющихся
процессов на языке Си.
Подготовка к лабораторной работе
При подготовке к лабораторной работе следует повторить назначения основных этапов обработки программы на языке Си, а также назначение и форматы условных операторов .
Условные операторы
На языке Си различают два вида условных операторов: короткий и полный.
Короткий условный оператор
Общий вид записи
if (логическое выражение) P;
где Р - любой оператор языка Си.
Работа оператора
Сначала вычисляется логическое выражение (ЛВ), и если оно имеет значение TRUE, то выполняется оператор Р, стоящий за логическим выражением. В противном случае оператор Р игнорируется.
Графическая интерпретация оператора В схемах алгоритма короткому условному оператору соответствует структура
ЕСЛИ—ТО.
31
Замечание. По определению, конструкция короткого условного оператора
 
 
;
....................
;1
Nоператор
оператор
включает единственный оператор Р. Если в задаче по заданному условию требуется выполнить несколько операторов, то их необходимо заключить в операторные скобки { }, образуя тем самым составной оператор. Тогда запись условного оператора с использованием скобок имеет следующий вид:
if(логическое выражение) {
}
Пример. Переменной у присвоить минимальное значение из трех различных чисел, т.е. у = min(a, b, с).
Схема алгоритма Программа
#include "stdafx.h" #include<math.h> intmain() { float a, b, c,y; printf("Введите числа а, b, с"); scanf("%f%f%f", &a,&b,&с); у=а; if (b<y) у = b; if (c<y) у = с; printf("y =%6.2f", y); return 0; }
32
Полный условный оператор
1
0
(T)
(F)
Услови
Р1
Р2
Общий вид записи
if (логическое выражение) P1; else P2;
где Р1, Р2 - любые операторы или даже группы операторов. Работа оператора Вычисляется логическое выражение, и если оно имеет значение TRUE(не ноль),
то выполняется оператор Р1, стоящий после логического выражения. В противном случае (FALSE (ноль)) оператор P1 пропускается, а выполняется оператор Р2, стоящий после служебного слова else.
Графическая интерпретация оператора
В схемах алгоритма полному условному оператору соответствует структура ЕСЛИ-ТО-ИНАЧЕ.
Замечание. Операторы Р1 и Р2 входят в стандартную конструкцию полного условного оператора как единственные. Если возникает необходимость выполнить в ветвях несколько операторов, то их заключают в операторные скобки { }. Вид записи условного оператора в этом случае следующий:
if (логическое выражение) {
оператор 1; ………………
оператор n; } else { оператор 1;
33
………………
 
.0,
,0,ln
xеслиe
xеслиx
y
x
Начало
x
1
0
(T)
(F)
x>0
y=lnx
y
Конец
y=
оператор m; }
Пример 1. Вычислить значение переменной у по одной из двух ветвей:
Схема алгоритма
Программа
#include "stdafx.h" #include<math.h> int main() {
34
float x,y;
№ вар.
Функция
Изменение аргумента
1. Y=e|A+COS (BT) | ,если Т<0
Y= sin3(Т)+AТ, если Т≥0
A=-0.5 ; В=2 T изменяется от -2 до 5 с шагом 0.5
2. T= sin3(X)+AX , еслиА0 T=e|A+COS (XB) |,
если А>0
X=2.4 ;В=2 А изменяется от -10 до 10 с шагом 2
3.
L=
a
x
Cos
a
b
x 2
)(
.если
x<0.5 L=xb+Tg(ax), если
х≥0.5
а=2,5 ;b=1.3 х изменяется от 0.1 до 1 с шагом 0.1.
4. D=|eAC-Y |, если С0
D = 4AC- sin2(A+C), если С>0
Y= 0.5;A=0.2 С изменяется от -0.7 до 2.1 с шагом
0,3
5.
Z=|eAX-Y |, если Y0
X=1.5;A=0.2 Y изменяется от -1 до 3 с шагом 0.5
printf("Введитечисло x= "); scanf("%f",&x); if( x>0) y = log(x) ; else y= exp(x); printf("y =%6.2f", y); return 0; }
Задание к лабораторной работе
Написать программу на языке Си для расчета таблицы значений заданной функции. Функцию выбирать в соответствии с вариантом из таблицы 2.
Варианты заданий
Таблица 3
35
Z=4AY­sin2(A+Y),еслиY>0
6. F=|cosB(A+B2)|-X3, если В0 F=e
| A+B|
-SIN (AB),
если В>0
X=2,5; A=2; B изменяется от -5 до 8 с шагом 0.5
7. F=e
| A+B|
-SIN
(AX),если Х≥3 F=|cosB(A+B2)|-X3,
если Х<3
A=-2;B=5; X изменяется от 2 до5 с шагом 0.4
8.
K=
XA
+Tg(XA),если
А≥0
K=Ln(N3+A2)­Tg(NA),еслиА<0
Если N=2.2; X=2.3 A изменяется от -0.2 до 1.2 с шагом
0.2
9. R=Ln(N3+A2)-Tg(NA), если А<0
R=Tg(XA), если А≥0
Если X=0.4 ;N=1.3;. A изменяется от -10 до 20 с шагом 2
10.
T=sin4(AX), если А<20
T=XA+Tg(AX), если А>=20
X= 5; A изменяется от 10 до 30 с шагом 5
11.
K=sin(B3+A)-C, если С<1
K = 4AC- sin2(A+C),
если С>=1
В=2
A=0,2; С изменяется от 0,7 до 2.1 с шагом
0.3
12 F=|cosB(A+B2)|-X3,
если X<1 F=|eAX-Y |если X>=1
Если А=-2 ; В=5; Y=7. X изменяется от 2 до 5 с шагом 0.5
13 L=sin3(Y)*B+AY, если B<6
L=e
| A+B|
-SIN (AB),
если B>=6
A=0.5; Y=2; B изменяется от 5 до 8 с шагом 0.5
36
14. .
K=Ln(N3+M2)-Tg(NM), если M<1
K=2AX-Cos3(A+X+M), если M>=1
N=2.5; M изменяется от 0,2 до 1,2 с шагом
0,2 A=1.1 X=1.7
16
S=|sinA(X5)|-X3, если A<1
S=sin(AX)+ 2AX, если A>=1
X= 2,5
A изменяется от 0.1 до 2.0 с шагом
0.5
16
R=
XA
+Tg(XA), если
A<1 G=sin(B+A)+X3, если
A>=1
X=2;
В=2 А изменяется от 0.2 до 1.6 с шагом
0.2
17
W =4ACsin(A+C)+ eAX, если X<3
W=cos(A+BX)- X2C,
если X>=3
Если А=-2 ; В=5; С=0.7. X изменяется от 2 до 5 с шагом 0.5
Порядок выполнения работы.
1. Получить допуск к работе у преподавателя (показать домашние заготовки).
2. Загрузить среду Visual Studio.
3.Ввести текст программы.
4. Провести отладку программы. Выполнить программу, провести анализ
результатов и убедившись в правильности решения, предъявить их преподавателю для проверки.
5. Занести результаты расчета в отчет.
6. Выйти из среды.
Содержание отчета
1. Номер и тема лабораторной работы.
2. Задание к лабораторной работе.
3. Схема алгоритма решения задачи.
4. Программа на языке Cи.
5. Результаты выполнения программы.
Показать отчет преподавателю.
37
Контрольные вопросы
1. Типы данных, применяемые в Си.
2. Схема простого циклического процесса
3. Операторы условные в языке Си, особенности их использования.
Лабораторная работа №5.
РАСЧЕТ ЗНАЧЕНИЙ ФУНКЦИИ ДВУХ ПЕРЕМЕННЫХ.
Цель работы: Закрепить навыки программирования вложенных
циклических процессов.
Подготовка к выполнению работы.
1. Повторить назначение, основные режимы работы и структуру среды
VisualStudio.
2. Повторить также назначение основных операторов и структуру
программы на языке Си.
Табулирование функции (или кратные циклы)
Тело цикла может содержать любой оператор, в том числе и другой оператор цикла. Структура цикла, содержащая вложенный цикл, называется кратным циклом. Число вложений может быть произвольным. Если цикл содержит один вложенный цикл, то он называется двойным, если содержит два вложенных цикла, то является тройным и т.д. Цикл, который содержит вложенный цикл, называется внешним. Вложенный цикл называется внутренним.
Переменная внутреннего цикла всегда меняется быстрее, чем внешнего. Это означает, что для каждого значения параметра внешнего цикла выбираются все значения параметра внутреннего цикла.
Внешний и внутренний циклы могут использовать любой вид операторов цикла
(while, do-while, for).
Пример. Алгоритм табулирования функции с двумя переменными Вычислить значение функции: z(x, у) = sinx + cosy при всех х, изменяющихся на интервале [-1, 1] с шагом Δх = 0.2, и у,
изменяющихся на интервале [0, 1] с шагом Δу = 0.1.
38
Данный алгоритм реализуется с использованием двойного цикла, в котором х
x y z(x,y)
-1.0
0.0
z=…
-1.0
0.1
z=…
… … …
-1.0
1.0
z=…
-0.8
0.0
z=…
-0.8
1.0
z=…
примем за параметр внешнего цикла, у - за параметр внутреннего цикла.
#include "stdafx.h" #include<math.h> intmain() { float х, у, z; // описание переменных printf("x y z(x,y)\n"); // вывод заголовка x= -1;// начальное значение параметра внешнего цикла while (х<=1) // запуск внешнего цикла, если х≤ 1 { for( y=0; y<=1; y=y+0.1) //запуск внутреннего цикла { z=sin(x) + cos(y); // вычисление функции printf("%6.1f %6.1f z=%6.1f",x, y, z); // вывод } x=x + 0.2; // изменение параметра х на шаг }
return 0;}
В результате выполнения программы вид таблицы на экране будет следующим:
Задание к лабораторной работе.
В соответствии с индивидуальным заданием таблицы 3 к лабораторной работе составить схему алгоритма и написать программу на языке Си для расчета нескольких таблиц значений функции.
Для организации внешнего и внутреннего циклов выбрать разные типы циклических операторов.
Вывести на печать таблицы значений заданной функции в следующем виде :
39
Таблица 1 Параметр= ………
№ вар.
Функция
Значения аргумента1
Значения аргумента2
1
y=
2.0
)1(5.0 axx
X Є[1,15] ∆x=1
a=2.01, 3.5, 5.8
2 y=
a
x
Cos
a
b
x
2
 
 
X Є[0.1,2.0] ∆x=0.3
a=0.325, 0.4, 0.425 b=1.3
3
y=
)(
1
2
xaCos
a
a
Lп
 
 
-
X Є[0.75,1.1] ∆x=0.05
a=0.3, 0.4, 0.5, 0.6
4
y=
xa
xLn
axLп
)1(
)(
X Є[0.25, 1.75] ∆x=0.5
a=0.125, 0.325, 0.525
5 y=
aCos
b
x
xLп
2
2
 
 
X Є[7.5,12] ∆x=0.5
a=0.3, 0.05, 0.015 b=0.05
6
y=
Sin
)
2
(
2
3)( axCosax
X Є[0.1,0.25] ∆x=0.01
a=1, 2, 3, 4
7
y=
xпп
2
aL+(ax)L0.24
X Є[1,4.6] ∆x=0.4
a=2, 5, 8, 11
8 y=
1
3
)(
x
e
baxLп
X Є[0.1,1.9] ∆x=0.4
a=0,1, 2, 3 b=1.1
9
y=
ab
aLпxa
bx
)()sin(
sin
1
X Є[0.3,1.0] ∆x=0.1
a=1, 7.5, 14 b=1.8
X= …….. Y= ………. X= …….. Y= ………. X= …….. Y= ……….
Таблица 2 Параметр= ………
X= …….. Y= ………. X= …….. Y= ………. X= …….. Y= ……….
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Варианты заданий
Таблица3
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]