Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++v 1.0_студенты.doc
Скачиваний:
7
Добавлен:
03.11.2018
Размер:
626.69 Кб
Скачать

Лабораторная работа № 1. Алгоритмизация линейных вычислительных процессов.

1. Цель работы

Изучение принципов алгоритмизации линейных вычислительных процессов, способов записи алгоритмов. Исследование структуры программ, типов данных, стандартных библиотек. Получение навыков отладки программ.

2. Порядок выполнения работы

    1. Изучить структуру программы на языке С++, структуру проекта Visual Studio (VS).

    2. Изучить простые типы данных, объявление переменных и констант, процедуры и операторы ввода-вывода (printf и scanf, cin и cout).

    3. Изучить порядок использования библиотечных ресурсов, директиву #include, библиотеку iostream, файл stdafx.

    4. Создать проект в VS (см. подготовка к лабораторным работам), в функцию main внести текст представленного примера. В тексте примера намеренно допущен ряд типичных для начинающих ошибок.

    5. Выполнить компиляцию получившейся программы и получить список ошибок.

    6. Исправить все указанные ошибки и скомпилировать еще раз.

    7. Если компиляция неудачная, снова выполнить п. 2.6.

    8. Разработать алгоритм решения задачи индивидуального задания в виде схемы алгоритма, предусмотреть ввод и вывод необходимых данных.

    9. Записать алгоритм п. 2.8 на языке С++.

    10. Добавить созданный текст п. 2.9 к тексту функции main и добиться успешной компиляции всего проекта.

    11. Подготовить набор тестов (см. содержание отчетов, п. 5) и выполнить тестирование проекта:

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

  2. оставшиеся тесты выполнить, запуская исполняемый файл; если в результате тестирования будут получены неверные результаты, повторить п. 2.11 а, используя наборы данных, с которыми был получен неверный результат.

3. Пример выполнения задания

Найти скалярное произведение двух векторов; считать, что размерность векторов равна 3, угол между векторами 600.

Метод решения: скалярное произведение равно произведению длин двух векторов на косинус угла между ними.

3.1 Текст программы на С++.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

//модуль lab1.cpp

#include "stdafx.h"

#include <cmath>

#define int M_PI 3.14

const level = 2;

int main()

{ //добавление возможности писать на русском языке

setlocale(LC_ALL, "RUS");

int x1, x2; //координаты первого вектора

int y1, y2; //координаты второго вектора

double a = 60; //угол между векторами

int p; //скалярное произведение

printf("Введите координаты первого вектора: x1, x2, x3 = \n");

scanf("%%%i", x1, x2, x3);

printf("x1 = %s\n", x1);

printf("x2 = %s\n", x2);

printf("x3 = %s\n", x3);

printf("Введите координаты второго вектора: y1, y2, y3 = \n");

scanf("%%%i", y1, y2, y3);

printf("y1 = %s\n", y1);

printf("y2 = %s\n", y2);

printf("y3 = %s\n", y3);

d1 = sqrt((double)(x1*x1 + pow((double)x2, level) + pow((double)x3, (double)level)));

d2 = sqrt((double)(y1*y1 + pow((double)y2, (int)2) + pow((double)y3, level)));

radians = a * M_PI / 180

p = d1*d2 * cos(radians);

printf("Длина первого вектора = 5.2i\n", d1);

printf("Длина второго вектора = 5.2i\n", d2);

printf("Скалярное произведение = 5.2i\n");

system("pause"); //Для продолжения нажмите любую клавишу...

//(чтобы окошко не закрывалось)

return 0;

Словесное описание:

1. Объявление констант;

2. Объявление координат первого и второго векторов;

3. Объявление и инициализация переменной, отвечающей за угол между векторами;

4. Объявление переменных: скалярное произведение, длины векторов, угол в радианах;

5. Вывод на экран приглашения о вводе координат первого вектора;

6. Ввод координат первого вектора: x1, x2, x3;

7. Вывод на экран приглашения о вводе координат второго вектора;

8. Ввод координат второго вектора: y1, y2, y3;

9. Вычисление длин векторов по заданной формуле (d1, d2);

10. Вычисление угла между векторами в радианах (radians);

11. Вычисление скалярного произведения векторов по формуле (p);

12. Вывод на экран длин первого и второго векторов;

13. Вывод на экран скалярного произведения векторов;

14. Возврат 0;

15. Конец.

Блок-схема алгоритма работы программы:

4. Контрольные вопросы

1. Какие существуют способы записи алгоритма?

2. Метод нисходящего проектирования, в чем его особенности?

3. Линейные операторы языка С++.

4. Простые типы данных языка С++.

5. Структура программы на языке С++.

6. Стандартные библиотеки и их подключение.

7. Что такое идентификатор, переменная, константа?

8. Что такое совместимость типов?

9. Явное и неявное преобразование типов.

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