МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ СУМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МЕТОДИЧЕСКИЕ УКАЗАНИЯ к выполнению контрольной работы по дисциплине «Основы программирования и алгоритмические языки» для студентов специальности «Информационные технологии проектирования» заочной формы обучения Сумы Изд-во СумГУ 2008 2 Методические указания к выполнению контрольной работы по дисциплине «Основы программирования и алгоритмические языки» для студентов специальности «Информационные технологии проектирования»/ Составители: С.М.Ващенко, А.В. Смирнов. - Сумы: Изд-во СумГУ, 2008. – 23 c. Кафедра информационных технологий проектирования 3 СОДЕРЖАНИЕ ВВЕДЕНИЕ ............................................................................................................. 4 ВАРИАНТЫ ЗАДАНИЙ .......................................................................................... 5 СТРУКТУРА ОТЧЕТА О ВЫПОЛНЕННОМ ЗАДАНИИ .................................. 12 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ .................................................................... 14 РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА ................................................................... 15 ПРИЛОЖЕНИЕ А. ОБРАЗЕЦ ОФОРМЛЕНИЯ ТИТУЛЬНОЙ СТРАНИЦЫ . 16 ПРИЛОЖЕНИЕ Б. ОБРАЗЕЦ ОФОРМЛЕНИЯ ОТЧЕТА О ВЫПОЛНЕННОМ ЗАДАНИИ ......................................................................... 17 ПРИЛОЖЕНИЕ В. ОБОЗНАЧЕНИЯ ОСНОВНЫХ СИМВОЛОВ, ИСПОЛЬЗУЕМЫХ ПРИ СОСТАВЛЕНИИ БЛОК-СХЕМ ................................ 21 4 ВВЕДЕНИЕ Постоянно возрастающая роль компьютера в различных областях деятельности человека вызывает все большую необходимость широкой подготовки оканчивающих высшее учебное заведение студентов по специальности «Информационные технологии проектирования» в области программирования и использования компьютеров как средства решения возникающих на практике задач прикладного характера. В цели и задачи контрольной работы входят: закрепление практических навыков программирования, полученных студентами на практических и теоретических занятиях по дисциплине "Основы программирования и алгоритмические языки"; отработка принципов разработки алгоритма решения задач на ЭВМ по их математическому описанию; углубление теоретических и практических знаний в области использования общих и специальных принципов программирования; приобретение навыков обоснования принимаемых проектных решений и оформления проектной документации по заданным требованиям. Обязательное домашнее задание состоит из трех задач. Номер варианта выдается студенту преподавателем. 5 ВАРИАНТЫ ЗАДАНИЙ ЗАДАНИЕ 1 Варианты 1-6 Составить программу вычисления F(x) в виде бесконечного ряда с точностью 10-9. В программе организовать ввод x с клавиатуры и проверку получаемых результатов путем сравнения с системной функцией F(x). Распечатать таблицу значений функции для x, изменяющегося в диапазоне 0...A с шагом 0,25. F(x) Разложение в ряд A 1 sin(x) 2 exp(x) 3 cos(x) 4 sh(x) 5 ch (x ) 6 sin( x) x x3 x5 x 2 N 1 N x ... ( 1) .. 3! 5! (2 N 1)! x1 x2 xN 1 ... .. 1! 2! N! x2 x4 x 2N 1 ... ( 1) N .. 2! 4! (2 N )! x3 x5 x 2 N 1 x ... .. 3! 5! (2 N 1)! x2 x4 x 2N 1 ... .. 2! 4! ( 2 N )! 1 x2 x4 x 2N ... ( 1) N .. 3! 5! (2 N 1)! 3 4 5 3 5 3 Варианты 7-14 В приводимых задачах необходимо составить программу расчета конечной суммы и сравнения полученного результата с контрольным значением. Число членов суммы вводится с клавиатуры с защитой от возможного неверного ввода данных. Контрольное Вид суммы значение 7 8 9 1 2 3 4 ... N 1 3 5 7 ... (2N 1) 2 4 6 8 .. 2 N N ( N 1) 2 N2 N ( N 1) 6 Контрольное значение Вид суммы 10 12 22 32 42 ... N 2 11 12 32 5 2 ... (2 N 1) 2 12 13 2 3 33 4 3 ... N 3 13 13 33 53 ... (2 N 1) 3 14 14 2 4 34 4 4 ... N 4 N ( N 1)( 2 N 1) 6 N ( 4 N 2 1) 3 N 2 ( N 1) 2 4 N 2 ( 2 N 2 1) ( N 2 N )( 2 N 1)( 3N 2 3N 1) 30 Варианты 15-22 В приводимых задачах необходимо составить программу расчета бесконечной суммы обратных степеней числового ряда. Суммирование проводить, пока очередной член ряда по модулю не станет меньше заданной точности . Результат сравнить с точным значением ST, а погрешность сопоставить с величиной . Вид суммы N Вид ряда ST 15 i 18 19 20 21 22 N i 1 16 17 2 ( 1) 4 2 i 1 i N i 1 4 (2i 1) 2 N i 1 4 ( 1) N i 1 ( 2i 1) i 2 4 1 1 ... 2 2 32 1 1 1 4 4 ... 2 3 1 1 1 2 2 ... 2 3 1 1 1 4 4 ... 2 3 1 1 1 2 2 ... 3 5 1 1 1 4 4 ... 2 3 1 1 1 ... 3 5 1 1 1 3 3 ... 3 5 1 2 6 4 90 2 12 7 4 720 2 8 4 96 4 3 32 10-4 10-6 10-5 10-7 10-4 10-5 10-4 10-5 7 Варианты 23-26 Составить программу, содержащую функцию вычисления F(x) в виде разложения как бесконечного произведения с точностью 10-4. F(x) Разложение x1 x2 4x 2 23 cos(x) ( 1 (2 N 1) ) 0.05 10 ) N 2 2 4x 2 ( 1 ) (2 N 1) 2 2 N 1 0.1 20 0.2 30 0.3 15 2 N 1 x2 24 sh(x) 2 x ( 1 N 1 25 ch (x) 26 sin(x) x ( 1 N 1 x2 N 2 2 ) Разложение в ряд Фурье F(x) 27 x 28 sin( x ) 29 30 2 2 cos 3x cos5 x ... ) 32 52 x 4 cos 2 x cos 4 x cos 6 x ( ... ) 1 3 35 57 x 4 (cos x x 2 2 3x 2 12 Диапазон аргумента Варианты 27-30 Составить программу с расчетом функции F(x) в виде ее разложения в ряд Фурье с точностью 10–4 (задача гармонического анализа). Определить, какие количества членов ряда Фурье необходимо просуммировать для достижения указанной точности для значений аргумента X 1=0,05; X2=0,5; X3=3. i 1 sin( ix ) i ( 1) i 1 i 1 cos(ix ) i2 x x 8 ЗАДАНИЕ 2 1 Найти сумму элементов одномерного массива размером 7. Разделить каждый элемент исходного массива на полученное значение. Результат получить в том же массиве. Массив напечатать в одной строке. 2 Вычислить сумму и разность двух заданных одномерных массивов размером 5. Результат напечатать в виде двух параллельных столбцов. 3 В массиве из 10 чисел найти наибольший элемент и поменять его местами с первым элементом. 4 Задан массив X размером 5. Вычислить значения функции y=-0,5ln(x) при значениях аргумента, заданных в массиве X, и поместить их в массив У. Напечатать результат в виде двух столбцов. 5 Решить уравнение a*x=b для пяти пар значений a и b, заданных в виде двух массивов. Результат поместить в массив X. 6 Найти среднее значение элементов заданного массива размером 6. Преобразовать исходный массив, вычитая из каждого элемента среднее значение. 7 Найти количество одинаковых элементов массива A={a[i]}. 8 Вычислить скалярное произведение двух векторов (X, У) размером 6. 9 Вычислить длину вектора X размером 7. 10 В массиве из 10 чисел найти наименьший элемент и поменять его местами с последним элементом. 11 Дан массив, содержащий 15 целых чисел. Записать в новый массив сначала все отрицательные числа и нули исходного массива, затем все положительный, сохраняя порядок их следования. 12 Дан массив целых чисел, содержащий 10 элементов. Записать в новый массив сначала все положительные числа исходного массива, затем все отрицательные и нули, сохраняя порядок их следования. 13 Определить среднее значение элементов массива. Найти далее индекс элемента массива, наиболее близкого к среднему значению. 14 Задан массив размером 10. Сформировать два массива размером 5, включая в первый элемент исходного массива с четными индексами, а во второй - с нечетными. 15 Дан массив вещественных чисел, содержащий 15 элементов. Записать в новый массив сначала все положительные числа и нули исходного массива, а затем все отрицательные, сохраняя порядок их следования. 16 Найти, сколько положительных, отрицательных и нулевых элементов в массиве A={a[i]}. 17 Дан массив вещественных чисел, содержащий 12 элементов. Записать в новый массив сначала все отрицательные числа исходного массива, а затем 9 положительные и нули, сохраняя порядок их следования. 18 Определить массив первых 196 натуральных нечетных чисел, не кратных трем, и распечатать его в виде матрицы 14х14. 19 Определить и вывести массивы чисел X и Y, где X=0, 0.2, 0.4, ...8, Y =X2 – 20cosX . Результат вывести в 10 колонок с заголовками. После таблицы вывести значения Y_min и Y_max. 20 Дан одномерный массив действительных чисел, состоящий из 10 элементов. Определить среднее арифметическое отрицательных элементов массива. 21 Дан одномерный массив действительных чисел, состоящий из 6 элементов. Определить сумму отличных от нуля элементов с четными номерами. 22 Даны одномерные массивы А и В действительных чисел, состоящий из 20 элементов. Определить произведение (a1+b1) (a2+b2) (a3+b3) … (a20+b20). 23 Дан одномерный массив действительных чисел, состоящий из 8 элементов. Определить x1 x 2 x 3 x 4 x5 x 6 x 7 x8 . x1 x 2 x 3 x 4 x5 x 6 x 7 x8 24 Дан массив, состоящий из 10 действительных чисел. Определить натуральный логарифм максимального положительного элемента массива. 25 Дан одномерный массив действительных чисел, состоящий из 10 элементов. Определить натуральный логарифм номера минимального элемента массива. 26 Дан одномерный массив действительных чисел, состоящий из 10 элементов. Определить среднее арифметическое положительных элементов массива. 27 Дан одномерный массив целых чисел, состоящий из 7 элементов. Определить сумму квадратов элементов, кратных 5. 28 Дан массив, состоящий из 10 действительных чисел. Определить произведение суммы положительных на сумму отрицательных элементов массива. 29 Дан массив, состоящий из 10 действительных чисел. Определить сумму элементов массива, разделенную на величину максимального элемента массива. 30 Дан одномерный массив действительных чисел, состоящий из 10 элементов. Определить произведение элементов, для которых (x[i]-5)>3. ЗАДАНИЕ 3 1. Читая матрицу A(MxN) по столбцам, построить вектор B из 10 отрицательных элементов и подсчитать их количество. 2. Найти сумму элементов, превосходящих по модулю единицу в каждом четном столбце матрицы A(MxN), и сформировать вектор B из этих элементов. 3. Сформировать массив B, каждый элемент которого равен сумме элементов столбцов матрицы A(MxN). 4. Сформировать массив B из максимальных по значению элементов каждой строки исходной матрицы A(MxN). 5. Определить минимальные элементы в каждом столбце заданной матрицы A(MxN) и сформировать из них массив B. 6. Найти количество положительных элементов в матрице A(MxN) и сформировать вектор B из отрицательных элементов. 7. Определить количество отрицательных элементов, лежащих выше главной диагонали матрицы A(MxM). 8. Сформировать массив С, каждый элемент которого представляет собой произведение элементов столбца матрицы A(MxN) 9. Для каждой строки матрицы A(MxN) найти максимальный элемент и сформировать массив из их номеров. 10. Определить произведение элементов матрицы A(MxN), лежащих на главной диагонали и сформировать из них вектор С. 11. Сформировать матрицу A(MxN) каждый из элементов которой представляет собой произведение соответствующего элемента матрицы В(MxN) и максимального элемента строки. 12. Сформировать массив В, каждый элемент которого равен произведению максимального элемента строки на минимальный элемент этой строки матрицы A(MxN). 13. Найти максимальные элементы каждого столбца матрицы A(MxN) и сформировать массив В из элементов, представляющих собой произведение номера столбца на номер строки максимальных элементов. 14. Сформировать массив B, каждый элемент которого равен произведению элементов столбцов матрицы A(MxN). 15. Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы одномерного массива. Преобразовать исходную матрицу по правилу: четные строки разделить на полученное значение, начетные оставить без изменений. Преобразованную матрицу напечатать по строкам. 16. •Заданы матрица и вектор. Получить их произведение. Напечатать в строку. 17. Заданы две матрицы А и В размером N * N . Сформировать из них прямоугольную матрицу X размером N * 2 N , включая в первые N 11 столбцов матрицу А, в следующие - матрицу В. 18. Найти максимальный по модулю элемент матрицы. Строку, содержащую этот элемент, переслать в вектор и напечатать. 19. В заданной матрице переставить местами столбец с заданным номером и последний. 20. В заданной матрице заменить К-ю строку и L -й столбец нулями, кроме элемента, расположенного на их пересечении. 21. Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с заданным номером. 22. Задана матрица размером N * N и число К (1<K <N). Cтроку с максимальным по модулю элементом в К-м столбце переставить с К-й строкой. 23. Задана матрица размером N *N и число К (1<К<N). Столбец с минимальным по модулю элементом в К-й строке переставить с К-м столбцом. 24. Задана матрица размером N * N. Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении К-й строки и К-го столбца. 25. Найти произведение двух заданных матриц. 26. В заданной матрице найти среднее арифметическое максимального и минимального значений модулей ее элементов. 27. B заданной матрице найти сумму максимальных значений элементов ее строк. 28. В заданной матрице строку, содержащую максимальный элемент матрицы, поменять местами со строкой, содержащей минимальный элемент. 29. В заданной матрице найти минимальный элемент и записать нули в ту строку и столбец, где он находится, кроме самого минимального элемента. 30. Найти сумму элементов строки, в которой расположен наименьший элемент. 12 СТРУКТУРА ОТЧЕТА О ВЫПОЛНЕННОМ ЗАДАНИИ В пояснительном документе оформляется отчет по каждому заданию обязательного домашнего задания. Каждый отчет должен содержать следующие пункты. 1 Постановка задачи В данном пункте студент полностью приводит текст поставленной задачи, включая схемы и графики. 2 Математическая модель При выполнении данного пункта студент составляет математическую модель решаемой задачи. Необходимо указать математические формулы для расчета; записать область допустимых значений; привести алгоритм решения задачи. 3 Таблица символьных имен В данном пункте студент составляет таблицу, в которой перечисляет все идентификаторы программы (переменные, константы) и поясняет их. Таблица должна быть следующей структуры: Обозначение в программе Объяснение Записать имя переменной Указать, что переменная обозначает данная Записать имя переменной Указать, что переменная обозначает данная 4 Блок-схема В этом пункте студент приводит блок-схему программы, строго следуя основным требованиям к их оформлению. В приложении В приведен перечень блоков, из которых составляется блок-схема программы. Каждый из блоков должен быть пронумерован. Если в программе предусмотрены процедуры или функции, их блок-схемы приводятся отдельно от блок-схемы программы. Требования к оформлению те же. 13 5 Текст программы Привести листинг программы (модуля). В заголовке программы в качестве комментария указать имя файла, содержащего текст данной программы (модуля). 6 Контрольный пример Привести распечатку экрана работающей программы с разными исходными данными. По возможности продемонстрировать работу программы в исключительных ситуациях. ОБРАЗЕЦ ОФОРМЛЕНИЯ ОТЧЕТА О ВЫПОЛНЕННОМ ЗАДАНИИ ПРИВЕДЕН В ПРИЛОЖЕНИИ Б. 14 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ Пояснительная записка оформляется на стандартных листах с использованием текстового редактора Microsoft Word. Название файла – фамилия студента, записанная русскими буквами. Параметры документа: поля: левое – 3 см; правое, верхнее, нижнее – 1,5 см; нумерация страниц: вверху страницы справа; оформление заголовков: Times new Roman, 16пт, полужирный, курсив; выравнивание абзаца – по центру, первая строка – нет, междустрочный интервал полуторный; интервал после абзаца 6 пт; оформление основного текста: Times new Roman, 14пт, обычный; выравнивание абзаца – по ширине, первая строка – отступ 1,25 см, междустрочный интервал полуторный; интервал после абзаца 0 пт. Пояснительная записка должна включать в себя следующие разделы: титульный лист с указанием выполняемого варианта; задание №1; задание №2; …….. задание №k. Пояснительная записка должна быть сшита. К ней обязательно прилагается подписанная дискета (фамилия и инициалы студента, группа, вариант), которая должна содержать электронный вариант пояснительной записки и файлы текстов программы и необходимых для их работы файлов. Дискету вкладывают в бумажный конверт, приклеенный к дополнительному листу (располагается последним). Образец оформления титульной страницы приведен в приложении А. 15 РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА 1. 2. 3. 4. 5. 6. Федоренко Ю. Алгоритмы и программы на Turbo Pascal. – СПб.: Питер, 2001. Боровик В.А., Тыркусова Н.В. Программирование: Учебное пособие. Сумы: Изд-во СумГУ, 2004. – Ч.1. Боровик В.А., Тыркусова Н.В. Программирование: Учебное пособие. Сумы: Изд-во СумГУ, 2004. – Ч.2. Марченко.А.И., Марченко.Л.А. Программирование в среде Turbo Pascal 7.0/ Под ред. Тарасенко В.П.- 6-е изд.- К.: ВЕК+, 2000. Вирт Н. Алгоритмы + структуры данных = программы.- М.: Мир, 1985. Культин Н.Б. Turbo Pascal в задачах ипримерах. – СПб.: БХВ-Петербург, 2002. 16 ПРИЛОЖЕНИЕ А ОБРАЗЕЦ ОФОРМЛЕНИЯ ТИТУЛЬНОЙ СТРАНИЦЫ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ СУМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ПРОЕКТИРОВАНИЯ КОНТРОЛЬНАЯ РАБОТА по дисциплине «Основы программирования и алгоритмические языки» Выполнил: студент группы ИТз-… Фамилия, инициалы Вариант: ………. Проверил: Ващенко С.М. 2008 17 ПРИЛОЖЕНИЕ Б ОБРАЗЕЦ ОФОРМЛЕНИЯ ОТЧЕТА О ВЫПОЛНЕННОМ ЗАДАНИИ Задание №… 1 Постановка задачи Протабулировать функцию y=f(x) в диапазоне аргумента x=1..5 c шагом dx=1 с выводом результата в виде таблицы. 2 Математическая модель 1, x 2, y x 2, 2 x 4, 1, x 4. 3 Таблица символьных имен Обозначение в программе Объяснение xmin Начало интервала табулирования xmax Конец интервала табулирования dx Шаг табулирования x, y Текущее значение аргумента и функции 18 4 Блок-схема 1 Начало 2 xmin, xmax, dx 3 x:=xmin 4 12 5 while x<=xmax Конец 6 x<=2 8 + 9 x>=4 7 y:=1 + 10 y:=1 2 - y:=x-2 19 1 11 х, y 12 x:=x+dx 4 5 Текст программы Program table;{zadanie.pas} Var xmin,xmax,dx,x,y:real; Begin Writeln(' Vvedite xmin'); Readln(xmin); Writeln(' Vvedite xmax'); Readln(xmax); Writeln(' Vvedite shag tabulirovania dx'); Readln(dx); x:=xmin; while x<=xmax do begin if x<=2 then y:=1 else if x>=4 then y:=1 else y:= x-2; writeln(' X= ',x:3:1,' Y= ',y:3:1); x:=x+dx; end; readln; end. 20 6 Контрольный пример 21 ПРИЛОЖЕНИЕ В ОБОЗНАЧЕНИЯ ОСНОВНЫХ СИМВОЛОВ, ИСПОЛЬЗУЕМЫХ ПРИ СОСТАВЛЕНИИ БЛОК-СХЕМ Обозначение Пояснение Блок вычислений Логический блок (проверка условия) Циклический блок Вычисления по подпрограмме Ввод или вывод данных Вывод данных Начало, конец, останов, вход в подпрограмму, выход из подпрограммы Указание связи между разрывными частями блоксхемы; узел Ссылка на другую страницу 22 Обозначение Текст комментария Пояснение Пояснения, комментарии Учебное издание МЕТОДИЧЕСКИЕ УКАЗАНИЯ к выполнению контрольной работы по дисциплине “Основы программирования и алгоритмические языки” для студентов специальности «Информационные технологии проектирования» заочной формы обучения Составители: С.М. Ващенко, А.В. Смирнов Редактор Н.В. Лисогуб Ответственный за выпуск И.В. Баранова Подп. в печать 9.09.2008, поз. Формат 60х84/16. Бумага офс. Гарнітура Times New Roman Cyr. Печать офс. Усл. печатн. листов Уч.-изд. листов Тираж 60 пр. Вид. № Зам. № Издательство СумГУ при Сумском государственном университете 40007, Сумы, ул. Р.-Корсакова, 2 Свидетельство о внесении субъекта издательского дела в Государственный реестр ДК № 3062 от 17.12.2007. Напечатано в типографии СумГУ 40007, Суммы, ул. Р.-Корсакова, 2.