![](/user_photo/2706_HbeT2.jpg)
- •Ю.А Петров Программирование на языке высокого уровня
- •Часть 1
- •Введение
- •Задание
- •Комментарии
- •Идентификаторы
- •Ключевые слова
- •Константы
- •Управляющие последовательности
- •Строковые литералы
- •Константные выражения
- •Пунктуаторы
- •Операции
- •Задание на лабораторную работу 2 разработка программы линейной структуры Цель работы
- •Отчет по лабораторной работе должен содержать:
- •Задание
- •Замечания
- •Варианты заданий
- •Классификация ошибок
- •Ошибки, не обнаруженные компилятором
- •Ситуации, возникающие при неверных результатах
- •Отладка программы
- •Предупреждения
- •Первое сообщение об ошибке
- •Использование команд Find и Replace
- •Быстрое обнаружение ошибочных строк
- •Продолжение отладки
- •Использование встроенного отладчика
- •Разница между командами Step Into и Step Over
- •Дополнительные средства отладки
- •Работа с точками останова
- •Краткая характеристика объектов
- •Формат 1:
- •Стиль программирования
- •Задание на лабораторную работу 4 объекты и их характеристики Цель работы
- •В отчете по лабораторной работе следует представить:
- •5 Структурное программирование
- •Пример1
- •Пример 2
- •Задание на лабораторную работу 5 разработка программы со структурой «развилка» Цель работы
- •Задание:
- •Варианты задания
- •Задание на лабораторную работу 6 создание цикловых программ с фиксированным числом повторений Цель работы
- •Задание
- •Варианты задания
- •Задание на лабораторную работу 7 создание программ с итерационными циклами Цель работы
- •Задание
- •Варианты задания
- •Пояснения к выполнению лабораторной работы 7
- •6 Агрегаты данных
- •Структура
- •Объединения
- •Перечисления
- •Int array[3]; // Объявление определения;
- •Многомерные массивы
- •Вывод в файловый поток
- •Чтение из входного файлового потока
- •Чтение целой строки файлового ввода
- •Определение конца файла
- •Проверка ошибок при выполнении файловых операций
- •Закрытие файла
- •Управление открытием файла
- •Выполнение операций чтения и записи
- •Задание на ргз 1 использование структур данных при решении задач Цель работы
- •Задание
- •Варианты задания
- •7 Модульное программирование
- •Задание на ргз 2 использование модульного программирования при решении задач
- •Перемещаемые панели инструментов
- •Меню File
- •Меню Edit
- •Меню View
- •Меню Insert
- •Меню Project
- •Меню Build
- •Меню Tools
- •Меню Window
- •Список открытых окон
- •Меню Help
- •Приложение 2 Некоторые функции языка с
- •Используемая литература
- •Оглавление
- •5 Структурное программирование 53
Пример 2
Найти все натуральные числа, не превосходящие заданного N и равные сумме кубов его цифр.
При разработке алгоритма программы перечислим объекты, необходимые для решения данной задачи:
N – заданное пользователем число. Ограничим его значением, максимально-допустимым форматом int, т.е. значением 32766. Однако чтобы выполнить проверку на ограничение, объявим его как unsigned int;
u – текущее натуральное число, не превосходящее N. Из этого числа выделим цифры, каждую из которых возведем в куб и найдем сумму кубов;
mas[5] – создадим массив из пяти элементов (максимальное число 32766 имеет пять разрядов) для хранения каждой цифры числа u. Объявим его как int;
b – текущий номер цифры числа u при их выделении. Нумерация начинается с нуля, количество цифр числа u равно: b – 1. Объявим ее как int;
sum – переменная, где ведется расчет суммы кубов цифр mas[i]. При обращении к ней необходимо её инициализировать нулем. Примем тип переменной – int;
i – индексная переменная, изменяемая от 0 до b. Имеет тип int.
Алгоритм решения этой задачи следующий:
запрашивается значение числа N и проверяется его диапазон. Если N больше допустимого, то запрос повторяется;
организуется цикл переменной u от 1 до N;
расписываются цифры числа u в обратном порядке в массив mas ( в mas[0] – младший разряд, mas[b] – старший);
подсчитывается сумма кубов всех цифр, записанных в mas[0]-mas[b] в поле sum;
выполняется сравнение (u==sum). Если переменные равны, то выводятся результаты на печать, в противном случае меняется число u (u=u+1).
Программа для нашего примера на языке С будет иметь вид:
// Пример 2: Циклы for, while, структурное программирование
#include<stdio.h>
#include<math.h>
void main(void)
{
unsigned int N;
int u,b,sum,i,mas[5];
for(;;)
{
printf("\nУкажите значение N (меньше 32766) > ");
scanf("%d",&N);
if(N<32766) break;
}
for(u=1;u<=N;u++)
{
b=0; mas[b]=u;
while(mas[b]>=10)
{
mas[b+1]=mas[b]/10;
mas[b++]=mas[b]%10;
}
sum=0;
for(i=0;i<=b;i++) sum+=pow(mas[i],3);
if(u==sum) printf("\nПри u=%d сумма кубов цифр равна=%d",u,sum);
}
}
Задание на лабораторную работу 5 разработка программы со структурой «развилка» Цель работы
Научиться разрабатывать алгоритмы программ и записывать их в виде блок-схем;
Научиться писать сложные условные выражения в разветвляющихся программах;
Научиться использовать простейшие средства отладки исходного кода;
Закрепить навыки создания исходного кода, его компиляции и компоновки.
Задание:
Определить, попадает ли точка с заданными координатами (x, y) в заштрихованную область (табл. 5.1).
Разработать алгоритм задачи и отобразить его по ГОСТ 19.701 – 90. Координаты x, y запросить функцией scanf(). Условие попадания точки в заштрихованную область записать одним предложением (см. рис. 2.2).
Выполнить программу в режиме отладки по шагам с просмотром перехода на ветви «Да» и «Нет».
Проанализировать использованные элементы стиля программирования.
Примечание: Два числа, записанные через запятую, соответствуют значениям координат x и y координатной плоскости. Если координаты точек области не указаны, считать область неограниченной.
Выполнить отладку программ, представленных в примерах 1 и 2.