- •А.П. Новоселов программирование на языке Си
 - •1.1. Порядок создания программы
 - •1.2. Ввод и выполнение программы
 - •1.3. Модификация программы
 - •1.4. Пошаговое выполнение программы
 - •1.5. Сообщения компилятора и компоновщика
 - •1.6. Действия в случае ошибки выполнения
 - •1.7. Ошибки в форматах ввода/вывода
 - •1.8. Вычисления с вещественными числами
 - •2.1. Лексемы
 - •2.2. Идентификаторы
 - •2.3. Ключевые слова
 - •2.4. Константы
 - •3.2. Арифметические операции
 - •3.3. Операции отношения и логические операции
 - •3.4. Операции присваивания
 - •3.5. Поразрядные операции
 - •3.6. Библиотека функций
 - •1. Вычисление площади и периметра геометрической фигуры
 - •2. Вычисления по формулам с вещественными числами
 - •3. Арифметические операции для целочисленных данных
 - •4. Циклы с заданным числом повторений
 - •5. Алгоритмы с разветвлениями
 - •6. Циклы с условием окончания
 - •7. Последовательная обработка данных
 - •8. Поразрядные операции
 - •9. Обработка массивов
 - •10. Обработка матриц
 - •11. Сортировка массивов
 - •12. Сортировка матриц
 - •1.1. Математическая постановка
 - •1.4.2. Содержание результатов работы программы на экране
 - •Выполнил: Иванов и.П., гр. Ут – 11, вариант 13(2)
 - •1.4.3. Текст программы
 - •Выводы по работе
 
1.3. Модификация программы
Внесём три изменения в программу:
Запишем вычисление значения переменной sum в две строки:
sum = x + y;
sum = sum + z;
Дополним строку printf("\n The results: "); названием программы:
printf("\n The results Program1: ");
В строке getch(); добавим комментарий:
getch(); // ожидание ввода символа для просмотра результатов
Проверьте и сохраните изменения в программе (кн_Save All). Выполните пуск программы и посмотрите результаты в окне Output.
1.4. Пошаговое выполнение программы
Выполним по шагам программу Program1 и просмотрим по ходу работы программы значения всех переменных. Значение переменной указывает всплывающая подсказка от курсора на этой переменной (рис. 4). Цепочка действий приведена в табл. 2. Обратите внимание на то, что операторы выделенной строки выполняются только после нажатия кл_ F8 (или M_File -> Run -> Step Оver, или кн_Step Оver) для перехода на следующую строку.
Пошаговое выполнение программы можно прервать командой кл_F9 или кн_ Run, после чего выполняются все операторы до останова программы.

Рис. 4. Всплывающая подсказка от курсора на переменной z после ввода данных функцией scanf()
Т
аблица
2. Пошаговое
выполнение программы
Шаг Клавиши Выделенная строка, пояснение
F8 int main (int argc, char* argv[ ])
F8 printf( “\n Input x, y, z and + Enter: ”);
F8 scanf( ”%d%d%d”, &x, &y, &z);
F8 Перейти в окно Output (щелчок в окне),
Диалог ввода: Input x, y, z and + Enter: 1 10 100
Enter Ввод данных printf( “ Data: x = %d y = %d z = %d \n“, x, y, z);
Перейти в окно Редактора Кода,
F8 sum = x + y + z;
F8 pr = x * y * z;
F8 printf( “\n The results: ”);
F8 printf( “ x + y + z = %d x * y * z = %d \n“, sum, pr);
F8 getch();
Перейти в окно Результатов П
Enter Ввод символа (кл_Enter для функции getch() return 0;
F8 }
F8 Окончание выполнения программы
Другой способ пошагового выполнения программы – до позиции курсора: команда кл_F4 (или M_File -> Run to Cursor, или кн_Run to Cursor) выполняет программу до оператора, на котором расположен курсор в окне редактора кода. Команду кл_F4 можно повторять, предварительно устанавливая курсор на очередном выбранном операторе останова программы. На каждом шаге нужно просматривать результаты в окне Output.
Пошаговое выполнение программы с заходом в функции делается по команде кл_F7 (кн_Traсe Into или M_File -> Traсe Into).
Прерывание выполнения программы в любом режиме запуска выполняется командой кл_Ctrl + F2.
1.5. Сообщения компилятора и компоновщика
Внесём в программу три ошибки (рис. 5):
int x, y, K, sum, pr; // символ z заменим на К
scan( "%d%d%d", &x, &y, &z); // из слова scanf уберём букву ‘ f ’.
sum = x + y // уберём символ ‘;’ – конец оператора

Рис. 5. Сообщения компилятора об ошибках в программе и предупреждения
Установите режим при котором компилятор отображает все свои замечания: М_Project -> Options… (Проект|Опции) -> окно опций проекта -> вкладка Compiler (Компилятор) -> в группе опций Warnings (Предупреждения) включить опцию All (Все). Затем выполните команду Запуск кл_F9.
Внизу окна Редактора Кода появятся сообщения о замечаниях и ошибках (рис. 5) Перевод сообщений на русский язык:
[C++ Ошибка] модуль Program1.cpp строка 19: Е2268 Вызов неопределённой функции ‘scan’;
[C++ Ошибка] модуль Program1.cpp строка 19: Е2451 Необъявленный идентификатор ‘z’;
[C++ Ошибка] модуль Program1.cpp строка 22: Е2379 Отсутствующий оператор ‘;’ ;
[C++ Предупреждение] модуль Program1.cpp строка 25: W8013 Переменная ‘pr’ возможно используется до того как ей присвоено значение;
[C++ Предупреждение] модуль Program1.cpp строка 28: W8080 Объявленный идентификатор ‘К’ нигде не используется.
Чтобы узнать на какую строку указывает сообщение компилятора нужно дважды щелкнуть на этом сообщении, после чего в окне Редактора Кода выделится соответствующая строка.
Ошибки 1 и 2 и предупреждение 5 легко обнаружить по соответствующим сообщениям. Двойной щелчок на сообщении 3 выделяет строку sum = sum + z; и курсор указывает оператор присваивания ‘=’. При отсутствии символа ‘;’, указывающего конец оператора sum = x + y, компилятор рассматривает строки “sum = x + y” и “sum = sum + z;” как одну строку “sum = x + y sum = sum + z;” , в которой между идентификаторами ‘y’ и ‘sum’ нет знака операции.
Предупреждение 4 о том что переменная ‘pr’ не инициализирована и ее значение для вывода в строке 25 не определено
Задание: исправьте по порядку все ошибки и проверьте правильность работы программы
