- •Оглавление
- •Лабораторная работа №1
- •Лабораторная работа №2 Форматный ввод-вывод
- •Лабораторная работа №3 Составление алгоритма решения задачи и его реализация
- •1. Изучить:
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №4 Программирование алгоритмов циклической структуры
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №5 Обработка одномерных массивов
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №6 Обработка двумерных массивов
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №7 Типовые приемы алогитмизации
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №8 Обработка символьных данных
- •1. Изучить:
- •Пример выполнения работы
- •1. Изучить:
- •Пример выполнения работы
- •Пример выполнения работы
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №12 Работа с файлами на верхнем уровне
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №13 Организация работы в графическом режиме
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №14 Создание графика
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №15 Организация перемещения объекта по заданной траектории
- •1. Изучить:
- •Пример выполнения работы
- •Лабораторная работа №16 Организация работы в текстовом режиме
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №17 Создание светового меню
- •1. Изучить:
- •Контрольные вопросы
- •Лабораторная работа №18 Динамическое распределение памяти, создание списка
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
Лабораторная работа №4 Программирование алгоритмов циклической структуры
Цель работы – овладение практическими навыками разработки, программирования вычислительного процесса циклической структуры, получения дальнейших навыков по отладке и тестированию программы.
Задания для самостоятельной подготовки:
З а д а н и е А
Изучить возможности языка программирования для реализации:
- вычислительного процесса циклической структуры;
- приёма программирования – табулирования функции от одного аргумента(вычисление значений функции при изменении значения аргумента в заданном диапазоне с шагом )
2. Разработать алгоритм табулирования функций в соответствии с заданием.
3. Составить программу решения задачи.
4. Выполнить программу.
З а д а н и е B
1. Изучить:
- организацию итерационных циклов;
- возможности языка программирования для организации таких циклов;
- приемы программирования – вычисление суммы элементов бесконечного ряда, накопления суммы.
2. Разработать алгоритм решения в соответствии с заданием.
3. Составить программу решения задачи.
4. Вычислить предел суммы элементов ряда.
Задание к работе:
З а д а н и е А
Вычислить значение функции , заданной в табл. 2 (в соответствии с вариантом задания) при изменении аргумента в заданном диапазоне и с заданным шагом . Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы .
ТАБЛИЦА ФУНКЦИИ Y(X)
X Y
…………… ………………
…………… . ……………..
З а д а н и е Б
Вычислить на ЭВМ значение суммы элементов
бесконечного ряда ,(табл. 3) с заданной
точностью
.
На печать вывести значение суммы и число
членов ряда, вошедших в сумму.
Таблица 3
вариант задания |
сумма элементов ряда |
значение |
точность вычисления |
1 |
|
0,2 |
10-5 |
2 |
|
0,1 |
0,5*10-3 |
Продолжение таблицы 3
3 |
|
0,15 |
10-3 |
4 |
|
0,12 |
10-4 |
5 |
|
0,7 |
10-4 |
6 |
|
- |
10-4 |
7 |
|
1,5 |
0,5*10-3 |
8 |
|
– |
0,5 * 10-4 |
9 |
|
1,7 |
10-3 |
10 |
|
– |
0,5 * 10-4 |
11 |
|
0,75 |
0,5 * 10-3 |
12 |
|
0,62 |
10-4 |
13 |
|
0,75 |
10-4 |
14 |
|
1,5 |
0,3 * 10-4 |
15 |
|
2,3 |
10-4 |
Пример выполнения работы
З а д а н и е А. Вычислить на ЭВМ значение функции:
при изменении аргумента t
в диапазоне
с шагом 0,1. Вывод значений t
и s выполнить в виде
таблицы.
Программа решения задачи имеет вид:
#include <stdio.h> //подключение файла
#include <math.h> //подключение файла
void main ( ) //заголовок функции main
{
float a,b,t,s,tn=0.1,tk=2.1,h=0.1; // объявление переменных с инициализацией
printf (“Введите значения переменных a,b,t\n”); // вывод на экран сообщения
scanf (“%f%f”, &a,&b); // ввод значений переменных
printf (“Таблица функции S(T)\n” s t\n); //вывод шапки таблицы
t=tn; //присвоение начального значения t
while(t<=tk) // пока t меньше либо равно конечного значения
{if (a*t<1) //если a*t<1
s=a*t+b; //то s рассчитывается по первой формуле
else //иначе
if (a*t= =1) // если a*t= =1
s=cos(a*t); // то s рассчитывается по второй формуле
else // иначе
s=exp(-a*t)*cos(a*t); // s рассчитывается по третьей формуле
printf (“%10.3f%10.3f \n”,t,s); //вывод значений переменных
t+=h; //увеличение t на величину шага
}
return; //завершение функции main
}
З а д а н и е Б. Вычислить значение суммы элементов бесконечного ряда
с точностью до элемента ряда, меньшего е=10-4 для x=0,1.
Определить число элементов ряда, вошедших в сумму.
Для вычисления общего элемента ряда
используем рекуррентное соотношение, выразив n-й элемент через (n-1)-й:
;
Значение первого элемента ряда вычислим до цикла с помощью оператора присваивания а=x, а всех последующих элементов ряда по рекуррентному соотношению
в цикле.
Программа решения задачи имеет вид:
#include <stdio.h> //подключение файла
#include <math.h> //подключение файла
void main ( ) //заголовок функции main
{ int n;
float x,e,a,s; // объявление переменных
printf (“Введите значения переменных x,e\n”); // вывод на экран сообщения
scanf (“%f%f”, &x,&e); // ввод значений переменных
a=x; s=0; n=1; //присвоение начальных значений
do
{ s+=a; // накопление суммы
n++; // увеличение n на 1
a*=-a*x*x/(2*n-2)*(2*n-1); //расчет следующего элемента
} while(fabs(a)>=e) //пока текущий элемент a больше либо равен заданной точности e
printf (“сумма элементов ряда=%10.3f\nчисло элементов=%10d \n”,s,n);
//вывод значений переменных
return; } //завершение функции main
