МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ Учреждение образования «Гомельский государственный университет имени Франциска Скорины» Кафедра автоматизированных систем обработки информации ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ задание к контрольной работе для студентов 1 курса заочной формы обучения специальности 1-530102 «АСОИ» Гомель 2009 Составители: В.А.Дробышевский Рецензенты: М.И. Богданов, доцент, к.э.н. В.С. Давыдов, доцент, к.т.н. Рекомендован к изданию научно-методическим советом Учреждения образования «Гомельский государственный университет имени Франциска Скорины». Учреждение образования «Гомельский государственный университет имени Франциска Скорины», 2009г. 2 Введение .........................................................................................................................................4 Контрольная работа .......................................................................................................................5 Задание №1........................................................................................................ 5 Задание №2........................................................................................................ 7 Задание №3........................................................................................................ 9 Задание №4...................................................................................................... 10 3 Введение Выполнение контрольных работ по учебной дисциплине "Программирование" предполагает обучение студентов умению работать со сложными структурами данных, применяемых в программах, а также разработку и отладку программ в соответствии с заданиями, указанными в контрольных работах. Выбор варианта задания осуществляется в зависимости от последней цифры номера зачетной книжки. Выполнение контрольных работ включает: 1 Изучение студентами необходимого теоретического материала по теме контрольной работы. 2 Постановку задачи в соответствии с темой контрольной работы и согласование ее с руководителем. 3 Построение блок-схемы алгоритма решения задачи. 4 Составление программы. 5 Решение контрольного примера (численные значения исходных величин задаются студентом) . 6 Подготовку отчета о выполненной работе и его защиту. Каждая работа оформляется отдельно с использованием шаблона оформления печатных работ. Работы собираются в папку с титульным листом. Структура отчета по каждому заданию контрольной работы: 1 2 3 4 5 6 7 Тема. Цель работы. Постановка задачи. Блок-схема или псевдокод алгоритма решения задачи. Контрольный пример. Распечатка результатов. Текст программы. 4 Контрольная работа Задание №1. Цель работы: изучение операторов цикла языка “Pascal”. Реализовать задачу циклами for, while и repeat. Краткие теоретические сведения: For...To, For...DownTo (зарезервированные слова) Оператор For вызывает оператор, находящийся после слова Do, по одному разу для каждого значения в диапазоне от начального до конечного значений. Синтаксис: For переменная:=начальное To конечное Do оператор или For переменная:=начальное DownTo конечное Do оператор Замечания: Переменная цикла и начальное и конечное значения должны иметь счетный тип. Используйте составной оператор (Begin..End), чтобы выполнить в цикле несколько операторов. Со служебным словом To, значение переменной цикла увеличивается на 1 при каждой итерации. Со служебным словом DownTo, значение переменной цикла уменьшается на 1 при каждой итерации. Пример: (* For...To, For...DownTo *) For I:=1 To ParamCount Do WriteLn(ParamStr(I); For I:=1 To 10 Do For J:=1 To 10 Do Begin X:=0; For K:=1 To 10 Do X:=X+Mat1[I, K]*Mat2[K, J]; Mat[I, J]:=X; End; While (зарезервированное слово) Оператор цикла While содержит выражение, которое управляет повторением выполнения отдельного или составного оператора. 5 Синтаксис: While логическое выражение Do оператор Замечания: Оператор после Do будет выполняться до тех пор, пока логическое выражение является истинным. Выражение вычисляется до выполнения оператора, так что если логическое выражение с самого начала было ложным (False), то оператор не будет выполнен ни разу. (В отличие от оператора цикла Repeat) Пример: { Операторы While } While Ch = ' ' Do Ch:=GetChar; While Not EOF(InFile) Do Begin ReadLn(InFile, Line); WriteLn(OutFile, Line); Inc(LineCount); End; Repeat...Until (зарезервированные слова) Операторы между словами Repeat и Until повторяются до тех пор, пока логическое выражение является истинным (True). Синтаксис: Repeat Оператор; Оператор; ... Оператор Until логическое выражение Замечания: Последовательность операторов выполнится, по крайней мере, один раз! Пример: { Операторы цикла Repeat } Repeat Ch:=GetChar Until Ch<>' '; Repeat Write('Введите значение : '); 6 ReadLn(I); Until (I>=0) And (I<=9); № варианта 1 2 3 4 5 6 7 8 9 10 Постановка задачи Найти сумму целых чисел от m до n. Найти произведение целых чисел от m до n. Найти сумму чисел от m до n, кратных к. В банк положили N у.е. под P процентов в год. Сколько денег будет в банке через L лет? Найти !n, n<=16. Найти произведение целых чисел от m до n, кратных к. В банк положили N у.е. под P процентов в год. Через сколько лет в банке будет S у.е.? На сколько дней студенту хватит стипендии S, если он тратит N р. в день и его расходы каждый день увеличиваются на X р.? Найти сумму четных чисел от m до n. На сколько дней студенту хватит стипендии S, если он тратит N р. в день и его расходы каждый день увеличиваются в X раз? Задание №2. Цель работы: изучение оператора выбора (CASE). Реализовать задачу, используя CASE и IF. Краткие теоретические сведения: Case (зарезервированное слово) Оператор Case состоит из выражения (селектора) и списка операторов, выполняется один из них, в зависимости от значения селектора. Синтаксис: Case выражение Of вариант : оператор; ... вариант : оператор; End или Case выражение Of вариант : оператор; ... вариант : оператор 7 Else оператор End Замечания: "вариант" состоит из одной или нескольких констант или диапазонов, разделенных запятыми. Часть "Else" является необязательной. Пример: Case Ch Of 'A'..'Z', 'a'..'z' : WriteLn('Буква'); '0'..'9' : WriteLn('Цифра'); '+', '-', '*', '/' : WriteLn('Оператор'); Else WriteLn('Специальный символ') End; № варианта 1 2 3 4 5 6 7 8 9 10 Постановка задачи Дан одномерный массив чисел. Умножить на 3 его положительные элементы, отрицательные разделить на 2, а равные нулю – заменить числом 5. Даны отрезки a,b,c. Определить, можно ли из них составить треугольник. Вывести сообщения типа “можно”, ”нельзя”, ”треугольник превращается в отрезок”. Дан одномерный массив чисел. Если его максимальный элемент >10, найти произведение элементов массива, <=10, но >=5 – найти сумму элементов, <5 – обнулить массив и вывести соответствующее сообщение. Дана точка (x;y) и круг радиуса R с центром в точке (0;0). Определить, где находится точка: внутри, на границе, или за пределами круга. Дана матрица [mxn]. Если число сток больше числа столбцов, удвоить все элементы матрицы и утроить их в обратном случае. Если матрица квадратная, обнулить все ее элементы. Напечатать значение 0<К<10 римскими цифрами. Для целого числа 14<К<26 написать фразу “мне К лет”, учитывая форму числительных (год, года). Вывести название месяца по его номеру. Напечатать словесное название числа 0<К<10 Вывести название дня недели по его номеру. 8 Задание №3. Цель работы: научиться работать с двумерными массивами и вложенными операторами цикла. Краткие теоретические сведения: Array (зарезервированное слово) Определяет массив. Синтаксис: Array [тип_индексов] Of тип_элементов Замечания: Позволяются несколько типов индексов, если они разделены запятыми. Элементы массива могут иметь любой тип, а тип индексов должен быть счетным. Пример: Type IntList = Array[1..100] Of Integer; CharData = Array['A'..'Z'] Of Byte; Matrix = Array[0..9, 0..9] Of Real; № варианта 1 2 3 4 5 6 7 8 9 10 Постановка задачи Составить одномерный массив из максимальных элементов строк матрицы [MxN]. Определить число элементов матрицы [MxN] кратных A. Перемножить 2 матрицы [MxN] и [NxK]. Вывести все элементы двумерного массива [MxN] кратные A. Найти сумму элементов матрицы [MxN], расположенных ниже побочной диагонали. Найти число отрицательных элементов матрицы [MxN], расположенных в столбцах с номером, кратным A. Найти произведение элементов матрицы [MxN], расположенных выше главной диагонали. Поменять местами элементы j и k столбцов матрицы [MxN]. Определить количество элементов матрицы [MxN] больших A и расположенных в четных строках и столбцах. Найти минимальный элемент главной диагонали матрицы [MxN]. 9 Задание №4 Цель работы: изучение комбинированного типа данных. Краткие теоретические сведения: Запись содержит несколько компонентов, или полей, которые могут иметь различные типы. Синтаксис: Record Поля; Поля; ... Поля End; Замечания: Каждый список полей - список идентификаторов, разделенных запятыми сопровождаемых двоеточием и указанием типа. № варианта 1 2 3 4 5 6 7 8 9 10 Постановка задачи Ввести информацию о ценах на процессоры в массив записей и вывести ее в виде таблицы. Ввести имена и телефоны сотрудников организации в массив записей и вывести их в виде таблицы. Ввести информацию о ценах на мониторы в массив записей и вывести ее в виде таблицы. Ввести фамилии и адреса сотрудников организации в массив записей и вывести их в виде таблицы. Ввести характеристики монитора (разрешение, частота вертикальной развертки) в массив записей и вывести их в виде таблицы. Ввести информацию о количестве продукции на складе в массив записей и вывести ее в виде таблицы. Ввести информацию о ценах на жесткие диски в массив записей и вывести ее в виде таблицы. Ввести информацию о ценах на компьютеры в массив записей и вывести ее в виде таблицы. Ввести информацию о ценах на автомобили в массив записей и вывести ее в виде таблицы. Ввести информацию о специальностях сотрудников организации в массив записей и вывести ее в виде таблицы. 10 УЧЕБНОЕ ИЗДАНИЕ Дробышевский Виталий Александрович ПРОГРАММИРОВАНИЕ задания к контрольным работам для студентов 1 курса заочной формы обучения специальности 1-530102 «АСОИ» _________________________________________________ Подписано в печать ___________. Формат 60x64 1/16 Бумага писчая №1. Печать офсетная. Усл.печ.л. 1,0. Уч.-изд.л. 0,7. Тираж 50. _________________________________________________ Отпечатано на ротапринте ГГУ, 246699, г.Гомель, ул.Советская, 104 11