Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР11-С++-01-мая-2012.doc
Скачиваний:
18
Добавлен:
15.09.2019
Размер:
2.5 Mб
Скачать

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

     Форма вывода результатов программы столь наглядна, что по результатам можно убедиться в правильном функционировании программы или - при неправильном функционировании - можно делать выводы о том, у реализации какой именно ветви алгоритма сделана ошибка. При наличии ошибок можно в отладке программы также использовать средства пошаговой отладки, при чем следует контролировать текущие индексы граничные номера и текущее значение модификатора. Наиболее вероятные ошибки - неправильное определение граничных номеров или неправильное определение момента перехода в нижнюю часть матрицы.

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

Результат работы программы приведен ниже:

0 1 2 3 4 5 6 7 0

0 0 8 9 10 11 12 0 0

0 0 0 13 14 15 0 0 0

0 0 0 0 16 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 0 0 17 0 0 0 0

0 0 0 18 19 20 0 0 0

0 0 21 22 23 24 25 0 0

0 26 27 28 29 30 31 32 0

2.4.9.8. Формирование случайных чисел

Если по условию задания матрицу следует заполнить случайными числами, рекомендуем выбирать эти числа из диапазона 0 - 99.

Функция генерации случайных чисел randomize() храниться в файле stdlib.h, следовательно, в программу необходимо включить директиву препроцессора #include <stdlib.h>. В свою очередь функция randomize()обращается к функции time(),хранящейся в файле time.h, следовательно, в программу необходимо также включить директиву препроцессора #include <time.h>.

randomize(); /* инициализация rand */

/* заполнение массива случайными числами */

for (l=0; l<S; l++) { /* перебор строк */

for (r=0; r<S; r++) /* перебор столбцов */

Ar[l][r]= random(101)-50 );

/* вывод начального массива */

for (l=0; l<S; l++) { /* перебор строк */

for (r=0; r<S; r++) /* перебор столбцов */

Ar[l][r]= random(101)-50 );

printf("Начальный массив:\n");

for (i=0; i<100; printf("%3d ",Ar[i++]));

putchar('\n');

putchar('\n');

3. Выводы

Выполнение этой лабораторной работы должно показать Вам средства языка C++, необходимые программисту для реализации программ с одномерными массивами. Вы должны освоить операторы языка С++, реализующие работу с массивами в программах.

Во время выполнения этой и других работ Вы познакомитесь с другими возможностями языка С++ и выберете для себя некоторый стиль написания программ на языке С++.

Чем активнее Вы будете овладевать возможностями системы программирования на языке С++, тем более легким и эффективным будет для Вас выполнение всего лабораторного практикума.

4. Требование к отчету

В отчете должны быть отображены следующие пункты:

1. Название работы.

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

3. Задание.

4. Краткие теоретические сведения.

5. Листинги девяти программ.

6. Таблицы выбора идентификаторов (таблицы кодирования переменных).

7. Результаты выполнения трех программ (скриншоты).

8. Выводы.

5. Вопросы для самоконтроля

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. Что такое массив?

39. Для чего необходимо описание массива?

40. Как объявить одномерный массив? Двумерный массив?

41. Может ли массив содержать разнородные данные?

42. Как получить адрес переменной?

43. Как в языке С++ описываются одномерные массивы?

44. Каковы особенности инициализации массива при его объявлении?

45. Охарактеризуйте операторы new и delete.

46. Что такое динамические массивы?

47. Опишите алгоритмы сортировки массивов методами прямого обме­на, вставки и прямого выбора.

48. Понятие и определение двумерного массива.

49. Общий вид объявления двумерного массива.

50. Что определяется при объявлении массива?

51. Как располагаются массивы в памяти?

52. Что такое динамический массив?

53. Происходит ли обнуление памяти при ее выделении под динамический массив?

54. Можно ли инициализировать динамический массив?

55. Блок-схема и операторы ввода двумерного массива.

56. Блок-схема и операторы вывода двумерного массива.

57. Вычисление суммы всех элементов двумерного массива.

58. Вычисление суммы только тех всех элементов одномерного массива, которые удовлетворяют заданному условию.

59. Вычисление суммы тех элементов массива. Которые расположены в массиве на заданных местах.

60. Подсчет количества элементов массива, удовлетворяющих заданным условиям.

61. Подсчет произведения элементов массива, удовлетворяющих заданным условиям.

62. Алгоритм поиска элементов массива, обладающего специальными свойствами.

63. Перестановка строк (столбцов) матрицы.

64. Какие способы описания массивов применяются в языке С++?

65. Инициализация массива при его описании.