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

MU_LR_Informatika_1

.pdf
Скачиваний:
13
Добавлен:
12.03.2015
Размер:
1.91 Mб
Скачать

Рисунок 1.20 – Результат работы программы

При возникновении ошибок в процессе разработки программы они выделяются красным подчеркиванием сразу в процессе ввода программы. Это одно из основных отличаев Visual Studio 2010 от предыдущих версий. Пример выделения ошибки представлен на рисунке 21. Подобная ошибка возникает при попытке использования не объявленных переменных или ошибке в имени переменной.

При выполнении построения решения ошибки и предупреждения отображаются в окне Вывод (рисунок 22)

Рисунок 1.21 – Выделение ошибок в процессе разработки программы

Рисунок 1.22 – Результаты построения при наличии ошибок в программе

21

Отладка программы

Отладка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки.

Для определения места, где возникла ошибка, необходимо:

знать текущие значения переменных;

выяснить, по какому пути выполнялась программа.

Перед тем как перейти к отладке необходимо установить точки останова. Это точки, в которых выполнение программы приостанавливается для отображения значений переменных и определения состояния стека и памяти. Для ввода точек останова необходимо выбрать в главном меню (рисунок 23):

Отладка Точка останова

Рисунок 1.23 – Ввод точек останова

После выбора данной команды будет создана точка останова в строке программы, в которой на данный момент установлен курсор. При этом в левой области редактора программы, напротив требуемой строки, появится отображение точки останова красного цвета (рисунок

24).

Рисунок 1.24 – Отображение точек останова в редакторе файлов

22

Точки останова можно также установить простым щелчком левой клавишей мыши на серую область левее требуемой строки программы.

Удалить точки останова можно с помощью щелчка левой кнопки мыши по удаляемой точке в левой области редактора файлов. Или через меню:

Отладка Удалить все точки останова

После запуска отладки из меню быстрого доступа или:

Отладка Начать отладку (F5)

Начинается выполнение программы до первой точки останова. Появляются два дополнительных окна (рисунок 25): Видимые и Стек вызовов, в первом отображаются переменные, их тип и текущее значение, во втором состояние стека.

Рисунок 1.25 – Процесс отладки

Текущая точка останова выделяется желтым указателем внутри красной точки. Для продолжения отладки необходимо снова выбрать в меню – начать отладку или нажать клавишу F5. В процессе отладки значения переменных в поле Видимые будут изменяться в соответствии с алгоритмом программы. В этом же поле можно задать значение нужной переменной или изменить его.

На рисунке 26 представлен текст программы ввода числа с клавиатуры. Ввод продолжается до тех пор пока не будет введено четное число, количество неудачных попыток подсчитывается и выводится в случае ввода четного числа. Данная программа использовалась для демонстрации процесса отладки.

23

#include <iostream>

//Подключение необходимых библиотек, в данном случае

 

//библиотека операторов ввода-вывода.

using namespace std;

//Использование пространства имен std

void main()

//главная функция

{

 

int number;

//Объявление переменных: переменная numberцелового типа

int counter = 0;

 

cout<<"Enter an even number:";

//вывод сообщения на экран

cin>>number;

 

while(number%2!=0)

{

cout<<"The number is odd!!! \n Enter an even number:"; //вывод сообщения на экран cin>>number;

counter++;

}

cout << "\n Succsess!!! The number " << number << " is even. Step-" << counter; cout<<endl;

}

Рисунок 1.26 – Текст тестовой программы Процесс отладки на третьем шаге выполнения программы представлен на рисунке 27.

Рисунок 1.27 – Продолжение процесса отладки

24

Для завершения процесса отладки необходимо выбрать в меню (рисунок 28):

Отладка Остановить отладку

Рисунок 1.28 – Остановка процесса отладки

1.4 Контрольные вопросы и примеры тестовых заданий

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

1.Окно Обозреватель решений, назначение;

2.Окно Видимые, назначение;

3.Создание решения в Microsoft Visual Studio 2010;

4.Компиляция решения, ее реализация в Microsoft Visual Studio 2010;

5.Отладка решения, ее реализация в Microsoft Visual Studio 2010.

6.Каким образом в процессе разработки программы выделяются ошибки?

7.Перечислите основные блоки схемы алгоритма.

8.Как подключается библиотека операторов ввода-вывода?

9.Назовите операторы ввода-вывода в С++.

10.Перечислите основные структуры алгоритмов.

Примеры тестовых заданий:

Определить, что будет выведено на экран после выполнения программы:

Пример 1:

#include <iostream> using namespace std; void main()

{

int n1=10, n2=15, n; cout<<"Enter a number:"; cin>>n;

cout << n1-n2+n << endl;

25

}

Пример 2: #include <iostream> using namespace std; void main()

{

int n1=10, n2=15, n; cout<<"Enter a number:"; cin>>n;

while(n1>n2)

{

cout<<n++<<endl;

n1++;

}

Пример 3: #include <iostream> using namespace std; void main()

{

int n1=10, n2=100, n; cout<<"Enter a number:"; cin>>n;

if(n2>n) n++; else

n+=n1;

cout<<n<<endl;

}

Пример 4: #include <iostream> using namespace std; void main()

{

int n1=10, n2=10, n; cout<<"Enter a number:"; cin>>n;

if(n%4==1) cout<<n1<<endl; else

cout<<n2<<endl;

cout<<n%4<<endl;

}

26

Лабораторная работа №2

«Сортировка элементов массива»

2.1 Варианты индивидуальных заданий

Задание: Разработать алгоритм и программу сортировки элементов массива в порядке в соответствии с индивидуальным заданием (Таблица 2.1).

Таблица 2.1 – Варианты индивидуальных заданий

 

Элемент начала

Элементы

Направление

 

сортировки

сортировки

сортировки

 

 

 

 

 

А

В

С

 

 

 

 

1

больше соседних

все

По возрастанию

 

 

 

 

2

отрицательный

отрицательный

По убыванию

 

 

 

 

3

положительный

положительный

 

 

 

 

 

4

не = 0

не = 0

 

 

 

 

 

5

простой

простой

 

 

 

 

 

6

четный

четный

 

 

 

 

 

7

нечетный

нечетный

 

 

 

 

 

8

Кратный 3

Кратный 3

 

 

 

 

 

9

Кратный 4

Кратный 4

 

 

 

 

 

10

Кратный 5

Кратный 5

 

 

 

 

 

11

Кратный 6

Кратный 6

 

 

 

 

 

12

Кратный 7

Кратный 7

 

 

 

 

 

13

Представимый в

Представимый в

 

 

виде 2n

виде 2n

 

 

 

 

 

14

Представимый в

Представимый в

 

 

виде 3n

виде 3n

 

15

Представимый в

Представимый в

 

 

виде 22n

виде 22n

 

16

Представимый в

Представимый в

 

 

виде P2

виде P2

 

17

меньше соседних

 

 

 

 

 

 

18

больше суммы

 

 

 

соседних

 

 

 

 

 

 

19

меньше суммы

 

 

 

соседних

 

 

 

 

 

 

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

Задание:

A1B12C2, N=20

27

Исходный массив:

-2

8

3

-14

5

-7

-63

0

4

5

21

-14

6

2

7

-14

5

2

9

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алгоритм:

-2

8

3

-14

5

-7

-63

0

4

5

21

-14

6

2

7

-14

5

2

9

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

В

 

В

 

 

 

В

 

 

 

В

 

 

 

В

 

 

 

В

 

 

 

В

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Массив после сортировки:

-2

8

3

21

5

7

-7

0

4

5

-14

-14

6

2

-14

-63

5

2

9

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.3 Краткие сведения

Массив – именованная совокупность данных одного типа.

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

При объявлении массива вы должны указать тип значений, хранящихся в массиве, а также количество значений (называемых элементами массива).

Все элементы внутри массива должны быть одного и того же типа, например, int, float или char.

Одномерный массив — массив, с одним параметром, характеризующим количество элементов одномерного массива. Фактически одномерный массив — это массив, у которого может быть только одна строка, и n-е количество столбцов. Столбцы в одномерном массиве

это элементы массива. На рисунке 2.1 показана структура целочисленного одномерного

массива a. Размер этого массива — 16 ячеек.

Рисунок 2.1 — Массивы в С++

Максимальный индекс одномерного массива a равен 15, но размер массива 16 ячеек, потому что нумерация ячеек массива всегда начинается с 0. Индекс ячейки – это целое неотрицательное число, по которому можно обращаться к каждой ячейке массива и выполнять какие-либо действия над ней (ячейкой).

Объявление массива:

int mas[10];

тип массива

размер массива

Инициализация массива:

28

int mas[] = {0,1,2,3,4,5,6,7,8,9};

Пример выполнения программы нахождения максимального элемента массива и его порядкового номера:

#include<iostream> usingnamespacestd; void main (void)

{

int i, mas[10];

// Вводмассивасклавиатуры cout<<"Vveditemassiv"<<endl; for(i=0;i<10;i++)

cin>>mas[i];

// Выводвведенногомассива cout<<"Vvedennyimassiv:"<<endl; for(i=0;i<10;i++) cout<<mas[i]<<" ";

// Нахождение максимального элемента inta = mas[0]; for(i=1;i<10;i++)

{

if(a<mas[i]) a=mas[i];

}

cout<<"\nMax.elementmassiva: "<< a<<endl;

// нахождение номера максимального элемента c = mas[0], n = 0;

for(i=0;i<10;i++) if(mas[i]>c)

{

c = mas[i]; n = i;

}

сout<<"Nomer max. elementamassiva:"<< n <<endl;

}

Рисунок 2.1 – Текст программы

29

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

1.Что такое массив?

2.Что необходимо указывать при инициализации массива?

3.Какие существуют типы данных в языке программирования С++?

4.Как ввести массив с клавиатуры?

5.Формат оператора цикла for.

6.Что такое размер массива?

7.Найдите сумму всех элементов массива.

8.Какое максимальное количество элементов может содержать массив?

9.Могут ли элементы массива быть одного и того же типа?

30

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