Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт РГР по программированию!.doc
Скачиваний:
5
Добавлен:
20.09.2019
Размер:
1.43 Mб
Скачать

Государственное образовательное учреждение высшего профессионального образования

«Саратовский государственный технический университет имени Гагарина Ю.А.»

Факультет «Электронной техники и приборостроения»

Направление «Информатики и Вычислительная Техника»

Кафедра «Системотехника»

Отчет по расчетно-графической работе по

курсу «Программирование»

Выполнил:

Тимофеев Александр Сергеевич

Проверил:

Васильев Дмитрий Анатольевич

Саратов

2012г.

Цель работы:

Освоение простейшей структуры программы, изучение стандартных операций ввода-вывода и получение навыков в организации в/в значений стандартных типов данных, освоение и использование функции проверки корректности вводимых значений по типу, изучение основных операций и стандартных функций языка.

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

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

Постановка задачи:

Задание 1: Вводится k-й (1<=k<=365) день невисокостного года, в котором 1 января – понедельник. Определить, является ли этот день рабочим, если рабочий работает только по четным дням и четным неделям. Вывести результат.

Задание 2: Разработать алгоритм и программу приближенного вычисления дифференциального выражения

,

используя метод Эйлера:

.

Шаг дифференцирования h (0.001<=h<=1, h=const), начальная точка (x0,y0) и количество точек n, определяющее функцию устанавливаются пользователем. Установить ограничения на значения x0,y0 и n.

Задание 3: Разработать алгоритм и программу. Дана матрица B размерностью n x m (3<=n,m<=30 – вводятся пользователем). Элементы матрицы bij являются целыми числами, принимающими значения в диапазоне [0, 255]. Заполнение матрицы осуществляется в соответствии с выбором пользователя:

  • пользовательский ввод с клавиатуры;

  • заполнение случайными числами в установленном диапазоне.

Строку матрицы, содержащую максимальный элемент поменять местами со строкой, содержащей минимальный элемент.

Для всех заданий осуществить:

- проверку корректности по типу вводимых значений;

- проверку диапазонов вводимых значений.

Задание 1:

Описание метода решения.

Так как рабочий работает только по четным дням и четным неделям не високосного года (365 дней), 1 января которого - понедельник, то, изначально необходимо определить четность/нечетность недели и четность/нечетность дня. Для определения четности недели необходимо от номера дня вычесть 1, далее разделить полученное число на 7 (т.к. в неделе 7 дней) и прибавить 1 (этим способом определяется номер недели т.е. четная, нечетная) , далее полученное число разделить на 2, если остаток от деления равен 0, то вся неделя будет являться четной, рабочей, если же остаток не равен 0, то неделя будет являться нечетной, для определения четного, нечетного дня в нечетной неделе нужно номер дня разделить на 2 и если остаток от деления равен 0, то это четный день, иначе, это день будет выходным

Блок-схема алгоритма: (стр.№4)

Описание программы.

Входные переменные: k (номер дня) – целый тип

В состав программы входит следующее:

  • Блок ввода , реализованный с помощь цикла DO WHILE, с проверкой диапазона и типа вводимых значений

{

do

{

clrscr();

printf ("vvedite den K\n");

fflush(stdin);

i=scanf("%3d",&k);

}

while ((k<1) || (k>365) || (i==0));

}

  • Блок расчета чётности, нечетности недели: { s=((k-1)/7+1); }

  • Блок проверки и вывода четной, нечетной недели, четного, нечетного дня или выходного реализован с помощью математических операций, разветвленного алгоритма: «If –Else» и форматированного вывода: «printf();»

{

if (s%2==0) printf ("nedelya chetnaya, rabochaya\n");

else if (k%2==0) printf ("nedelya nechetnaya, chetnii den, raboch\n");

else printf ("vihodnoi\n");

}

Блок повторения программы реализован с помощью цикла «do while»:

{

printf ("vihod iz progr n ili N\n");

c=getch();

}while ((c!='n') && (c!='N'));

}