Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практикум по программированию на языке СС++. Учебно-методическое пособие
.pdf
11.
r=
a
x
a
Ln
ax
ae
X =
15
a вводят с клавиатуры
12.
c=
ad
aLnxa
b
)()sin(
sin
1
a=7.5 b=1.8
x вводят с клавиатуры
13.
d=
1
3
)(
x
e
baxLn
x=1.9 a=2 b=1.1
14.
y=
x
2
aLn+Ln(ax)0.24
a=0.3
x вводят с клавиатуры
15
f=
Sin
)
2
(
2
3)( axCosax
x=0.25 a=1
16.
g=
aCos
b
x
xLn
2
2
a=0.3 b=0.05
x вводят с клавиатуры
17.
n=
xa
xLn
axLn
)1(
)(
x=0.25 a=0.125
18.
p=
)(
1
2
xaCos
a
a
Ln
-
a=0.3
x вводят с клавиатуры <1.2
19.
r=
a
x
Cos
a
b
x
2
x=2.0 a=0.4 b=1.3
20.
k=
2.0
)1(5.0 axx
a=2.1
x вводят с клавиатуры
21.
t=
Cos
)
3
(
2
3)( axSinax
x=0.25 a=1.5
22.
u=
bSin
а
x
xLn
2
2
a=0.3 b=0.5
x вводят с клавиатуры
23.
d=
xa
xLn
axTg
)1(
)(
x=0.25 a=0.125
24.
k=
)(
1
2
bxSin
b
b
Tg
-
b=0.5
x вводят с клавиатуры <1.2
25.
o=
b
x
b
a
x
3
cos
x=2.5a=0.4 b=1.3
Порядок выполнения работы.
1. Получить допуск к работе у преподавателя(показать домашние
заготовки).
2. Загрузить среду Visual Studio.
21

3. Ввести текст программы.
4. Провести отладку программы.
5. Выполнить программу, провести анализ результатов и убедившись в
правильности решения, предъявить их преподавателю для проверки.
6. Занести результаты расчета в отчет.
7. Выйти из среды.
Содержание отчета
1. Номер и тема лабораторной работы.
2. Задание к лабораторной работе.
3. Схему алгоритма решения задачи.
4. Программу на языке Си.
5. Результаты выполнения программы.
Показать отчет преподавателю.
Контрольные вопросы
1. Типы данных, применяемые в языке Си.
2. Запись основных стандартных функций.
3. Оператор присваивания в языке Си.
22

Лабораторная работа № 3
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
Цель работы: Получить навыки программирования простых циклических
процессов на языке Си.
Подготовка к лабораторной работе
1. Повторить назначения основных этапов обработки программы на языке
Си в среде Visual Studio.
2. Повторить назначение и форматы операторов цикла.
Циклический вычислительный процесс (ЦВП) характеризуется
повторением одних и тех же вычислений над некоторым набором данных.
Числом повторений цикла управляет специальная переменная, называемая его
счетчиком или управляющей переменной цикла. На счетчик накладывается
условие, определяющее, до каких пор следует выполнять цикл.
Повторяемый блок вычислений называют телом цикла. В теле цикла должно
быть обеспечено изменение значения счетчика, чтобы он мог завершиться.
Если тело цикла состоит более чем из одного оператора, оно заключается в
операторные скобки {….}.
Таким образом, для программирования цикла достаточно определить условие,
управляющее числом его повторений и описать операторы, образующие тело
цикла.
существуют следующее конструкции для организации циклов:
цикл со счетчиком.
цикл с предусловием;
цикл с постусловием;
Цикл со счетчиком.
Графическая интерпретация оператора цикла for...
23

Общий вид записи
22
ln
)(
ba
x
xy
for( i = ml; i<= m2; i=i+шаг)
{ <тело цикла>;}
i - параметр, управляющий работой цикла;
ml, m2 - выражения, определяющие соответственно начальное и конечное
значения параметра цикла.
Замечание. Тело цикла состоит по стандарту из одного оператора. В случае
выполнения в цикле нескольких операторов надо воспользоваться обязательно
операторными скобками {...}.
Работа оператора цикла for...
for работает следующим образом: счетчик автоматически меняется от
начального значения до конечного включительно, для каждого значения
счетчика повторяется тело цикла. После каждого шага цикла значение счетчика
автоматически увеличивается на шаг.
Правила использования оператора for
1)Параметр цикла i, а также его значения ml и m2 могут быть любого типа.
2)Параметр i, а также значения ml и m2 не должны переопределяться (менять
значения) в теле цикла.
3)При завершении работы оператора for параметр i становится
неопределенным и переменную i можно использовать в других целях.
4)Тело цикла может не выполниться ни разу, если m1>m2 для цикла for... с
положительным шагом, или m1<m2 для отрицательного шага.
Пример 1: Вычислить таблицу значений функции:
для всех х, изменяющихся в интервале [-0.5 , 2.5] с шагом Δх = 0.1,
а, b - заданные вещественные числа.
Программа. Схема алгоритма
#include "stdafx.h
#include<math.h>
int main()
{ float a, b, x, y;
printf("введитеаиb ");
24

начало
a,b
Заголовок
таблицы
x=-0.5;
2.5; 0.1
y=
x, y
конец
scanf("%f%f",&a,&b);
printf(" x y(x)\n");
for(х=-0.5; x<=2.5; x=x+0.1)
{
y=log(fabs(x))/(a*a+b*b);
printf("%8.1f %8.1f\n",x,y);
}
return 0;
}
Циклы с предусловием и постусловием
возможны два вида циклов - проверка условия либо предшествует выполнению
тела цикла, либо происходит после него. Изобразим эти циклы в виде блоксхем
В языке Си имеется два вида операторов цикла с условием:
while (пока) – цикл с предусловием;
25

do... while (повторять до тех пор, пока выполняется условие) – цикл с
постусловием.
Оператор цикла while является наиболее универсальным, так как с его
помощью можно запрограммировать практически любой циклический процесс.
В цикле с предусловием сначала проверяется условие, затем, в зависимости от
того, истинно оно или ложно, либо выполняется тело цикла, либо следует
переход к оператору, следующему за телом цикла. После завершения тела
цикла управление вновь передается на проверку условия. Естественно,
предполагается, что в теле цикла было обеспечено некоторое изменение
входящих в условие переменных - в противном случае произойдет
зацикливание и программа "зависнет".
Для цикла с постусловием do... whileсначала выполняется тело цикла, затем
управление передается на проверку условия. В зависимости от истинности или
ложности условия, тело цикла выполняется повторно или же происходит
переход к оператору, следующему за телом цикла.
Исходя из приведенных блок-схем, очевидно основное различие двух циклов:
цикл с постусловием гарантированно выполняется хотя бы раз, а цикл с
предусловием может не выполняться ни разу, если условие сразу же окажется
ложным.
Оператор цикла while
Общий вид записи
while (логическое выражение)
{ <тело цикла>; }
<тело цикла> - единичный оператор или группа операторов, выполняемых в
цикле.
Замечание. Если тело цикла состоит из нескольких операторов, то их
обязательно заключают в операторные скобки {...}.
Оператор цикла do...while
Общий вид записи
do
<тело цикла>
while (логическое выражение);
Пример 2. Решить задачу примера 1 с использованием оператора цикла while.
Программа
#include "stdafx.h"
#include<math.h>
int main()
{
floatа, b, х, у;
printf("Bвeдитeаиb\n");
26

scanf("%f%f",&a,&b);
1
0
x≤2.
Начало
x,y
Конец
x=x+0.1
y=
x=-0.5
Заголовок
printf(" xy\n");
х=-0.5; //нач. установка
while(х<= 2.5)
{
y= log(fabs(x))/(a*a +b*b);
printf("%8.1f %8.1f",x,y);
x=x + 0.1;
}
return 0;
}
таблицы
Пример 3. Решить предыдущую задачу табулирования функции с
использованием оператора цикла do…while.
Программа Схема алгоритма
#include "stdafx.h"
#include<math.h>
int main()
{
floatа, b, х, y;
printf("Bвeдитe a и b ");
scanf("%f%f",&a,&b);
printf(" x y \n");
х=-0.5; //нач. установка
do
27

{
№
вар.
Функция
Изменение аргумента
1. Y=e
|A+COS (BT) |
A=-0.5 ; В=2
T изменяется от 2 до 5 с шагом 0,5
2.
2.0
)1(5.0 axxY
А=3.5
X изменяется от 1 до 10 с шагом 1
Н
x>2.5
Начало
Конец
x=-0.5
Заголовок таблицы
Д
x,y
x=x+0.1
y=
y=log(fabs(x))/(a*a+b*b);
printf("%8.1f %8.1f\n",x,y);
x= x+ 0.1;
} while( x<= 2.5);
return 0;
}
Задание к лабораторной работе
Написать программу на языке Си для расчета таблицы значений заданного
математического выражения. Функцию выбирать в соответствии с вариантом
из таблицы 2.
Варианты заданий
Таблица 2
28

3. Y=e
|A+M |
A=2,5 ;
М изменяется от 1 до 10 с шагом 1.
4. C=2
X+Y
X= 0,5;
Y изменяется от 1 до 8 с шагом 0,5
5. T= Sin3(X)+AX
X=2;
A изменяется от 10 до 20 с шагом 2
6. T=e
|A+B|
- 3
A
В=2,5
А изменяется от 2 до 5 с шагом 0,5
7. R=Tg (A3+C)
A=0,2;
С изменяется от 0,4 до 2,4 с шагом
0,4
8. X=Ln (A2+C3)
Если А=0,2
С изменяется от 2 до 5 с шагом 0,5
9.
L=
a
x
Cos
a
b
x 2
)(
Если А=0.4 ;B=1.3;.
X изменяется от 0.1 до 1.0 с шагом
0,1
10.
T=Sin4(AX)
X= 5;
A изменяется от 10 до 30 с шагом 5
11.
S=XA+Tg(AX)
X=2;
A изменяется от 10 до 20 с шагом 2
12.
K=Sin(B3+A)
В=2
А изменяется от 0,2 до 1,6 с шагом
0,2
13.
D = 4AC- Sin2(A+C)
A=0,2;
С изменяется от 0,7 до 2,1 с шагом
0,3
14.
F=|CosB(A+B2)|-X
3
Если А=-2 ; В=5; С=7.
X изменяется от 2 до 5 с шагом 0,5
15.
Z=|eAX-Y |
X= 1,5; A=0,2;
Y изменяется от 1 до 3 с шагом 0,5
16.
L=Sin3(Y)+AY
A=0,5;
Y изменяется от 1 до 10 с шагом 1
17.
Z=e
| A+B|
-SIN (AB)
A=2;
B изменяется от 5 до 8 с шагом 0,5
18.
K=Ln(N3 +M2)-Tg(NM)
N=2.5;
M изменяется от 0,2 до 1,2 с шагом
0,2
19.
H=2AX-Cos3(A+X)
A=1,1
X изменяется от 0,1 до 1 с шагом 0,1
20.
S=|SinA(X5)|-X3
A=3
X изменяется от 0,5 до 2,5 с шагом
0,5
21.
T=Sin(AX)+ 2AX
X= 1.5;
A изменяется от 0.1 до 2.0 с шагом
29

0.5
22.
R=
XA
+Tg(XA)
X=2;
A изменяется от 10 до 20 с шагом 2
23.
G=Sin(B+A)+ A3
В=2
А изменяется от 0,2 до 1,6 с шагом
0,2
24.
W = 4AC - Sin(A+C)+
eAX
A=0,2;
С изменяется от 0,7 до 2,1 с шагом
0,3
25.
F=Cos(A+BX)- X2C
Если А=-2 ; В=5; С=0.7.
X изменяется от 2 до 5 с шагом 0,5
Порядок выполнения работы.
1. Получить допуск к работе у преподавателя (показать домашние
заготовки).
2. Загрузить среду Visual Studio.
3. Ввести текст программы.
4. Провести отладку программы. Выполнить программу, провести анализ
результатов и убедившись в правильности решения, предъявить их
преподавателю для проверки.
5. Занести результаты расчета в отчет.
6. Выйти из среды.
Содержание отчета
1. Номер и тема лабораторной работы.
2. Задание к лабораторной работе.
3. Схема алгоритма решения задачи.
4. Программа на языке Cи.
5. Результаты выполнения программы.
Показать отчет преподавателю.
Контрольные вопросы
1. Типы данных, применяемые в Си.
2. Схема простого циклического процесса
3. Операторы цикла в языке Си, особенности их использования.
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
