Контрольные вопросы
Позволяет ли С изменять размер массива?
Как расположены в памяти элементы многомерных массивов?
Необходимо ли использовать для массивов только предопределенные типы?
Как объявить одномерный и двумерный массивы?
Укажите, допустимы ли объявления:
int hats [3]= {10,20,30};
int caps [ ] = {5,7,9}
Лабораторное задание
Составить программу на языке С для своего варианта задания. На экран вывести исходную матрицу и результаты вычислений. Для поиска ошибок в программе использовать встроенный отладчик ИСР.
Порядок выполнения работы
При подготовке к лабораторной работе составить программу, указанную в лабораторном задании.
Подготовить файл с программой вычисления указанных в задании величин и массивов.
Выполнить компиляцию программы и исправить имеющиеся в ней синтаксические ошибки.
Отладить программу и показать результаты преподавателю.
Оформить отчет.
Требования к отчету
Отчет должен содержать:
1) название и цель работы;
2) краткие теоретические сведения;
3) блок-схему алгоритма;
текст программы для варианта задания, соответствующего номеру фамилии студента в группе (если студент закреплен за определенной ЭВМ, имеющей номер, то номеру ЭВМ);
результаты выполнения программы.
Варианты заданий
Номер варианта |
Задание | |
1, 16
|
Дана целочисленная матрица размера 6x9, содержащая как положительные, так и отрицательные элементы. Сформировать одномерные массивы, состоящие из сумм элементов четных строк и нечетных столбцов. Определить значения и местоположение максимального и минимального элементов матрицы, а также минимальное и максимальное ее значения по абсолютной величине. | |
2, 17 |
m
k
|
Дана целочисленная матрица 8x12. Найти сумму элементов заштрихованной области. Определить значения и местоположение максимального элемента из правой верхней четверти матрицы и минимального элемента из левой нижней четверти. Сформировать новую матрицу путем прибавления полученной суммы к каждому элементу исходной матрицы.
|
3, 18 |
m
m
|
Дана целочисленная матрица 8x8. Найти сумму элементов заштрихованной области. Сформировать одномерный массив, содержащий минимальные элементы каждой строки.
|
4, 19 |
k
k
|
Дана целочисленная матрица 11x11. Найти сумму элементов заштрихованной области. Сформировать одномерный массив, содержащий максимальные элементы каждого столбца.
|
5, 20 |
k
m
|
Дана целочисленная матрица mxk. Найти минимальное значение для верхней половины матрицы и максимальное значение для нижней половины. Сформировать новую матрицу путем прибавления к каждому элементу верхней половины исходной матрицы определенного для нее минимального значения и к каждому элементу ее нижней половины определенного для нее максимального значения. |
6, 21 |
|
Дана целочисленная матрица mxm. Найти максимальное значение для ее первой четверти и минимальное - для третьей четверти. Сформировать одномерный массив, содержащий произведения элементов каждого столбца матрицы. |
7, 22 |
Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий количество символов m в каждом из ее столбцов. Подсчитать количество символов а над третьей строкой матрицы и общее количество символов b и z под третьей строкой.
| |
8, 23
|
|
Дана целочисленная матрица 9x9. Определить количество нулевых элементов в заштрихованной области. Сформировать одномерный массив, содержащий количество отрицательных элементов каждого столбца матрицы.
|
9, 24 |
Дана действительная матрица 7x7. Найти минимальное значение среди элементов, стоящих над главной диагональю, и максимальное среди элементов, находящихся ниже главной диагонали, а также их местоположение. Сформировать одномерный массив, содержащий сумму элементов четных строк и произведение элементов нечетных строк.
| |
10, 25 |
k
m
|
Дана действительная матрица 6x8. Найти сумму элементов каждой строки верхней половины матрицы и произведение элементов каждой строки ее нижней половины. Определить значение и местоположение максимального элемента верхней половины матрицы и минимального элемента ее нижней половины.
|
11, 26 |
|
Дана действительная матрица 7x7. Найти сумму элементов в заштрихованной области. Сформировать новую матрицу путем прибавления полученного значения к каждому элементу из незаштрихованной области исходной матрицы.
|
12, 27 |
Дана матрица 4х5, элементами которой являются значения символьного типа. Заменить на о значения символов, больших, чем о. Сформировать одномерный массив, содержащий количество элементов о в каждом четном столбце матрицы и количество символов, отличных от о, в каждом нечетном столбце. | |
13, 28 |
Дана целочисленная матрица 4x7. Определить минимальное и максимальное значения матрицы и их местоположение. Найти среднее арифметическое значение положительных элементов и модулей отрицательных элементов в каждом столбце матрицы. Результаты вычислений записать в одномерные массивы. | |
14, 29 |
Дана целочисленная матрица размером 5x5. Получить новую матрицу путем умножения всех элементов на наименьший по модулю элемент. Сформировать одномерный массив из максимальных элементов каждой строки полученной матрицы. | |
15, 30 |
Дана вещественная квадратная матрица порядка 5. Получить новую матрицу путем прибавления к элементам каждой строки матрицы наименьшего значения элементов этой строки. Сформировать одномерный массив, содержащий количество четных элементов в четных столбцах полученной матрицы и количество нечетных элементов в нечетных столбцах. |
Приложение: Отладка приложений в ИСР Borland C++ Builder и MS Visual C++.
В ИСР Borland C++ для отладки используются следующие «горячие» клавиши:
F4 |
Run to cursor |
Выполнить до текущего места |
F5 |
Set breakpoint |
Установить точку прерывания программы |
F7 |
Trace into |
Выполнить строку программы с заходом в код вызываемых функций |
F8 |
Step over |
Выполнить строку программы без захода в код вызываемых функций |
F9 |
Run |
Выполнить |
Shift+F7 |
Trace to next source line |
Выполнить до следующей строки с исполняемым кодом |
Ctrl+Alt+L |
Show local variables |
Показать окно значений локальных переменных |
Ctrl+Alt+W |
Show watches |
Показать окно слежения за переменными |
Ctrl+Alt+B |
Show breakpoints |
Показать окно точек прерывания |
Ctlr+F2 |
Stop |
Остановка отладки |
В ИСР Visual C++ для отладки используются следующие «горячие» клавиши:
Ctrl+F10 |
Run to cursor |
Выполнить до текущего места |
F9 |
Set breakpoint |
Установить точку прерывания программы |
F11 |
Trace into |
Выполнить строку программы с заходом в код вызываемых функций |
F10 |
Step over |
Выполнить строку программы без захода в код вызываемых функций |
F5 |
Run |
Выполнить |
Ctrl+Shift+F5 |
Restart |
Выполнить с учётом изменений |
Shift+F5 |
Stop |
Остановить отладку |
При отладке следуйте следующим правилам:
введите в критические места программы точки прерываний;
на критическом участке выполняйте программу по шагам;
если вызывается ваша функция – используйте отладку с заходом в функции, если же в текущей строке программы вызываются только библиотечные функции – используйте отладку без захода в функции;
для слежения за значениями переменных внутри функции используйте окно значений локальных переменных;
для слежения за выбранными переменными используйте окно слежения за переменными;
в окне слежения за переменными используйте Ins для добавления переменной и Del для удаления.
Отладка приложений позволяет выявить ошибки алгоритма и ошибки программиста, которые компилятор самостоятельно выявить не может.