Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Листинг 3.7






 

#include “stdafx.h”

#include < iostream>

#include < math.h>

using namespace std;

 

// Точность вычислений.

const double eps = 1e-10;

// Постоянная Эйлера

const double euler = 0.5772156649;

 

int _tmain(int argc, _TCHAR* argv[])

{

double x, a, S;

setlocale(LC_ALL, " Russian");

cout < < “Введите значение x: ”;

cin > > x;

 

// Начальное значение члена ряда и суммы.

a = x;

S = a;

 

// Найти сумму членов ряда.

for(int k = 1; fabs(a) > eps; k++)

{

// Найти значение следующего члена ряда.

a *= x*k/((k + 1)*(k+1));

// Добавить полученный член к сумме.

S += a;

}

 

// Вывести значение интегральной

// показательной функции.

cout < < “Ei(x = “ < < x < < “) = “ < < (euler + log(x) + S) < < endl;

 

getch();

return 0;

}

Оператор return. Оператор возврата из функции return завершает выполнение функции и переда­ет управление в точку ее вызова. Вид оператора:

return [ выражение ];

 

Выражение должно иметь скалярный тип. Если тип возвращаемого функцией значения описан как void, выражение должно отсутствовать.

Аппаратура и материалы. Для выполнения лабораторной работы необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium-совместимый с тактовой частотой 800 МГц и выше, оперативная память - не менее 64 Мбайт, свободное дисковое пространство - не менее 500 Мбайт, устройство для чтения компакт-дисков, монитор типа Super VGA (число цветов от 256) с диагональю не менее 15². Программное обеспечение - операционная система Windows2000/XP и выше, среда разработки приложений Microsoft Visual Studio.

Указания по технике безопасности. Техника безопасности при выполнении лабораторной работы совпадает с общепринятой для пользователей персональных компьютеров, самостоятельно не производить ремонт персонального компьютера, установку и удаление программного обеспечения; в случае неисправности персонального компьютера сообщить об этом обслуживающему персоналу лаборатории (оператору, администратору); соблюдать правила техники безопасности при работе с электрооборудованием; не касаться электрических розеток металлическими предметами; рабочее место пользователя персонального компьютера должно содержаться в чистоте; не разрешается возле персонального компьютера принимать пищу, напитки.

Методика и порядок выполнения работы. Перед выполнением лабораторной работы каждый студент получает индивидуальное задание. Защита лабораторной работы происходит только после его выполнения (индивидуального задания). При защите лабораторной работы студент отвечает на контрольные вопросы, приведенные в конце, и поясняет выполненное индивидуальное задание. Ход защиты лабораторной работы контролируется преподавателем.Порядок выполнения работы:

1. Проработать примеры, приведенные в лабораторной работе.

2. Составить UML-диаграмму деятельности и программу с использованием конструкций цикла для решения задачи. Номер варианта определяется по формуле , где - номер студента по списку преподавателя.

Индивидуальное задание №1. Вариант:

1. Найти все трехзначные натуральные числа, сумма цифр которых равна их произведению.

2. Найти сумму целых положительных чисел, больших 20, меньших 100 и кратных 3.

3. Начав тренировки, спортсмен пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?

4. Через сколько дней спортсмен из задания 1 будет пробегать в день больше 15 км?

5. Одноклеточная амеба каждые три часа делится на 2 клетки. Определить, сколько будет клеток через 6 часов.

6. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до а фунтов с шагом 1 фунт, если 1 фунт = 400 г.

7. Определить среди всех двузначных чисел те, которые делятся на сумму своих цифр.

8. Сумма цифр трехзначного числа кратна 7. Само число также делится на 7. Найти все такие числа.

9. Если к сумме цифр двузначного числа прибавить квадрат этой суммы, то снова получится это двузначное число. Найти все эти числа.

10. Сколько можно купить быков, коров и телят, платя за быка 10 р., за корову - 5 р., а за теленка - 0, 5 р., если на 100 р. надо купить 100 голов скота?

11. Составьте программу, которая печатает таблицу умножения натуральных чисел в десятичной системе счисления.

12. Покупатель должен заплатить в кассу S р. У него имеются 1, 2, 5, 10, 100, 500 р. Сколько купюр разного достоинства отдаст покупатель, если он начинает платить с самых крупных.

13. Дано натуральное число n. Получить все его натуральные делители.

14. Вычислить сумму всех n-значных чисел (1< =n< =4)

15. Вычислить сумму всех n-значных чисел, кратных k (1< =n< =4)

16. Ученик выучил в первый день 5 английских слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов выучит ученик в 10-ый день занятий.

17. Составьте программу, которая печатает таблицу сложения натуральных чисел в десятичной системе счисления.

18. Составить программу, выдающую 1, если заданное число - простое и 0 - в противном случае. Число называется простым, если он делится только на 1 и на само себя. Делители числа лежат в интервале от 2 до корня из k, где k заданное число.

19. У гусей и кроликов вместе 64 лапы. Сколько могло быть кроликов и гусей (указать все сочетания, которые возможны).

20. Заданы три натуральных числа А, В, С, которые обозначают число, месяц и год. Найти порядковый номер даты, начиная отсчет с начала года.

21. Ежемесячная стипендия студента составляет А р., а расходы на проживание превышают стипендию и составляют В р. в месяц. Рост цен ежемесячно увеличивает расходы на 3 %. Составьте программу расчета необходимой суммы денег, которую надо единовременно просить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию.

22. Составьте программу, которая по номеру дня в году выводит число и месяц в общепринятой форме (например, 33-й день года - 2 февраля).

 

3. Составить UML-диаграмму деятельности и программу для нахождения значения конечной суммы. Номер варианта определяется по формуле , где - номер студента по списку преподавателя.

Индивидуальное задание №2. Вариант:

1. Вводится целое число . .

2. Вводится целое число . .

3. Вводится целое число . .

4. Вводится целое число . .

5. Вводится целое число .

6. Вводится целое число .

7. Вводятся целые числа и , . .

8. Вводится целое число .

9. Вводятся целые числа и . .

10. Вводится целое число . S= .

11. Вводится целое число . при xi = (1+i),

y = 1/i.

12. Вводится целое число . , , .

13. Вводится целое число . , где .

14. Вводится целое число . .

15. Вводится целое число . .

16. Вводится целое число . .

17. Вводится целое число . .

18. Вводится целое число . .

19. Вводится целое число . .

Примечание: При вычислении факториалов необходимо результат накапливать в переменных типа double.

 

 

4. Составить UML-диаграмму деятельности и написать программу, позволяющую протабулировать функцию, определенную в соответствии с индивидуальным заданием №1 лабораторной работы №2, в диапазоне от до в равноудаленных точках.

 

5. Составить программу и произвести вычисления вычисление значения специальной функции по ее разложению в ряд с точностью , аргумент функции вводится с клавиатуры. Номер варианта определяется по формуле , где - номер студента по списку преподавателя.

Индивидуальное задание №3. Вариант:

1. Интегральный синус

;

2. Интегральный косинус

;

3. Интегральный гиперболический синус

;

4. Интегральный гиперболический косинус

;

5. Первый интеграл Френеля

;

6. Интеграл вероятности

;

7. Функция Бесселя первого рода , значение также должно вводиться с клавиатуры

;

8. Функция Бесселя первого рода , значение также должно вводиться с клавиатуры

;

9. Дилогарифм

.

Здесь - постоянная Эйлера, - отношение длины окружности к ее диаметру.

 

Содержание отчета и его форма. Отчет по лабораторной работе должен состоять из:

1. Названия лабораторной работы.

2. Цели и содержания лабораторной работы.

3. Ответов на контрольные вопросы лабораторной работы.

4. Формулировки индивидуальных заданий и порядка их выполнения.

Отчет о выполнении лабораторной работы в письменном виде сдается преподавателю.

Вопросы для защиты работы

1. Какой алгоритм является алгоритмом циклической структуры?

2. Типы циклов в языке Си.

3. Назовите основные параметры цикла.

4. Что представляют собой операторы инкремента и декремента, в каких формах они используются?

5. Как записывается условие продолжения цикла в циклах типа while и do... while?

6. Основная форма цикла do … while.

7. Какие три раздела записываются в круглых скобках для оператора цикла типа for? Какой разделитель между разделами?

8. Что такое вложенные циклы? Примеры.

9. Как образуется бесконечный цикл и как выйти из него?

10. Схема приведения цикла while к эквивалентному ему циклу for.

11. Назовите операторы, способные изменять естественный порядок выполнения вычислений.

12. Для чего нужен оператор break?

13. Где употребляется оператор continue и для чего он используется?

14. Для чего используется оператор return?

15. Какой тип должно иметь выражение?

 

Пример выполнения лабораторной работы №3:

1. Индивидуальное задание №1:

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

Составить UML-диаграмму деятельности и программу с использованием конструкций цикла для решения задачи.

Задача: в 1985 г. урожай ячменя составил 20 ц с га. В среднем каждые 2 года за счет применения передовых агротехнических приемов, урожай увеличился на 5%. Определить, через сколько лет урожай достигнет 25 ц с га.

1.2. UML-диаграмма:

1.3. Листинг программы:

// Лабораторная работа №3

// Индивидуальное задание №1

 

#include " stdafx.h"

#include < iostream>

#include " conio.h"

#include " math.h"

#include " windows.h"

 

using namespace std;

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL, " Russian");

const double productivity = 20, prirost = productivity/100*2.5;

int count = 0;

 

cout< < " Лабораторная работа № 3\n";

cout< < " \nГорошко А.А., БАС-051\n";

cout< < " \nВариант № 6\n";

 

cout< < " \n\nИндивидуальное задание № 1: \n";

cout< < " \nрешить задачу с использованием конструкций цикла.\n";

cout< < " \n\nЗадача: \n";

cout< < " \nв 1985 г. урожай ячменя составил 20 ц с га. В среднем каждые 2 года за\n";

cout< < " \nсчет применения передовых агротехнических приемов урожай увеличился на 5%.\n";

cout< < " \nОпределить, через сколько лет урожай достигнет 25 ц с га.\n";

cout< < " \n\nРабота программы: \n";

 

while((prirost*count + 20) < 25)

{

count++;

}

cout< < " \n\nУрожай достигнет 25 ц с га через: " < < count;

// выбор формы согласования (год, года или лет)

while(count - 10 > 0)

{

count = count - 10;

}

 

switch (count)

{

case 1:

cout< < " год";

break;

case 2:

case 3:

case 4:

cout< < " года";

break;

 

default:

cout< < " лет";

break;

}

 

getch();

 

return 0;

}

1.4. Результаты работы программы:

2. Индивидуальное задание №2:

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

Составить UML-диаграмму деятельности и программу для нахождения значения конечной суммы: Вводится целое число .

2.2. UML-диаграмма:

2.3. Листинг программы:

// Лабораторная работа №3

// Индивидуальное задание №2

 

#include " stdafx.h"

#include < iostream>

#include " conio.h"

#include " math.h"

#include " windows.h"

 

using namespace std;

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL, " Russian");

double a, S=0;

const double x=1;

int i, N;

 

cout< < " Лабораторная работа №3\n";

cout< < " \nГорошко А.А., БАС-051\n";

cout< < " \nВариант №6\n";

 

cout< < " \n\nИндивидуальное задание №2: \n";

cout< < " \nнайти значение конечной суммы S при x=1.\n";

cout< < " \n\nРабота программы: \n";

 

cout< < " \nВведите значение N> 0\n" < < " \nN=";

cin> > N;

 

for(i=1; i< =N; i++)

{

a=(exp(x/i)+exp(-x/i))/(i+2)*(i+2)*(i+2)*(i+2);

S+=a;

}

 

cout< < " \nКонечная сумма: \n" < < " \nS=";

cout< < S;

 

getch();

 

return 0;

}

2.4. Результаты работы программы:

3. Табуляция функции:

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

Составить UML-диаграмму деятельности и написать программу, позволяющую протабулировать функцию в диапазоне от до в равноудаленных точках.

3.2. UML-диаграмма:

3.3. Листинг программы:

// Лабораторная работа №3

// Табуляция функции

 

// Лабораторная работа №3

// Табуляция функции

 

#include " stdafx.h"

#include < iostream>

#include " conio.h"

#include " math.h"

#include " windows.h"

 

using namespace std;

 

const double x_min=-15;

const double x_max=20;

const int N=1000;

 

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL, " Russian");

double y, dx=(x_max-x_min / N);

 

cout< < " Лабораторная работа №3\n";

cout< < " \nГорошко А.А., БАС-051\n";

cout< < " \nВариант №6\n";

 

cout< < " \n\nЗадание: \n";

cout< < " \nпротабулировать функцию y в диапазоне от x_min=-15 до x_max=20\n";

cout< < " \nв N=1000 равноудаленных точках.\n";

cout< < " \n\nРабота программы: \n";

 

for (double x=x_min; x< =x_max; x+=dx)

{

if (x> 3.5) y=(log(x)*cos(2*x));

else

if (x=3.5) y=(pow(x*x*x-1, 1/3));

else y=(1+sin(x)*sin(x)-2*cos(2*x)*cos(2*x));

 

cout< < " x=";

cout< < x;

cout< < " \ny=";

cout< < y;

}

getch();

return 0;

}

3.4. Результаты работы программы:

4. Индивидуальное задание №3:

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

Составить программу и произвести вычисление значения специальной функции второго интеграла Френеля: по ее разложению в ряд с точностью , аргумент функции вводится с клавиатуры.

4.2. UML-диаграмма:

4.3. Листинг программы:

// Лабораторная работа №3

// Индивидуальное задание №3

 

#include " stdafx.h"

#include < iostream>

#include " conio.h"

#include " math.h"

#include " windows.h"

#include < tchar.h>

 

using namespace std;

 

double fact(double number)

{

int k, i;

i = 1; k = 1;

if (number == 0 || number == 1)

return 1;

else

while (i < = number)

{

k *= i;

i++;

}

return k;

}

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL, " Russian");

double x, S, eps = 1e-10, a, n, pi;

char buff[256];

pi = 3, 14159265358;

 

cout < < " Лабораторная работа № 3\n";

cout < < " \nГорошко А.А., БАС-051\n";

cout < < " \nВариант № 6\n";

 

cout < < " \n\nИндивидуальное задание № 3: \n";

cout < < " \nвычислить значение специальной функции второго интеграла Френеля\n";

cout < < " \nпо ее разложению в ряд с точностью eps=10^-10.\n";

cout < < " \n\nРабота программы: \n";

 

cout < < " \nВведите значение x\n" < < " \nx = ";

cin > > x;

 

a = 0;

S = x;

 

for(n = 1; fabs(a) < eps; n++)

{

a = pow(-1, n)*pow((pi/2), 2*n+1)*pow(x, (4*n+3)) / (fact(2*n+1), (4*n+3));

S += a;

}

 

cout < < " \nS(" < < x < < ") = " < < S < < endl;

 

getch();

 

return 0;

}

4.4. Результаты работы программы:

 

 

Лабораторная работа №4.
Одномерные массивы в языке C++

 

Цель работы и содержание: закрепление знаний об одномерных массивах, составление программ с одномерными массивами.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.