Какая система может быть отнесена к параллельной вычислительной системе?
2. Перечислите и охарактеризуйте режимы выполнения задач.
3. Какие можете назвать виды параллелизма?
4. В чем состоит параллелизм по данным?
5. В чем состоит функциональный параллелизм?
6. Раскройте понятия локальных и глобальных, статических и динамических схем передачи данных.
7. Охарактеризуйте структурные и произвольные, синхронные и асинхронные способы взаимодействия.
8. В чем состоит масштабирование задачи?
ПРАВИЛА ВЫПОЛНЕНИЯ И ОФОРМЛЕНИЯ
КОНТРОЛЬНОЙ РАБОТЫ
При выполнении контрольной работы надо строго придерживаться указанных ниже правил. Работа, выполненная без соблюдения этих правил, не зачитывается и возвращается студенту для переработки.
1. Контрольную работу следует представлять на проверку в печатном виде на листах формата А4 (шрифт Times New Roman, кегль 14, интервал 1,5).
2. На обложке должны быть написаны фамилия студента, его инициалы, учебный номер (шифр), название дисциплины.
3. В работу должны быть включены три теоретических вопроса, указанных в задании, строго по своему варианту, а также два практических задания, общих для всех. Контрольные работы, содержащие не все задания, а также содержащие задания не своего варианта, не зачитываются.
4. Перед ответом на вопрос, надо полностью указать его формулировку.
5. После получения прорецензированной работы как незачтенной, так и зачтенной, студент должен исправить все отмеченные ошибки и недочеты и выполнить все рекомендации рецензента.
6. В конце выполненной работы обязательно указывается список использованной литературы.
Если рецензент предлагает внести в содержание контрольной работы те или иные исправления или дополнения и прислать их для повторной проверки, то это следует сделать в короткий срок.
В случае незачета работы и отсутствия прямого указания рецензента на то, что студент может ограничиться представлением исправленных решений отдельных задач, вся работа должна быть выполнена заново.
При высылаемых исправлениях должна обязательно находиться прорецензированная работа и рецензия на нее. В связи с этим рекомендуется при выполнении контрольной работы оставлять в конце контрольной чистый лист для указаний рецензента. Вносить исправления в сам текст работы после ее рецензирования запрещается, все дополнения и исправления в соответствии с указаниями рецензента оформляются на дополнительных листах в конце контрольной работы.
По контрольной работе проводится собеседование, после чего выставляется зачет.
Студенты, не выполнившие контрольную работу до начала экзаменационной сессии, выполняют аудиторную контрольную работу.
ПРАВИЛА ВЫБОРА ВАРИАНТА
Вариант контрольной работы определяется по таблице в зависимости от последней цифры номера шифра личного дела студента (зачетки).
Будьте внимательны при выборе варианта. Работа, выполненная не по своему варианту, возвращается без проверки.
Последняя цифра шифра | Номер варианта |
Например, шифр зачетной книжки ПИБ-12-123, что соответствует 3 номеру задания.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
По ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ
Приступая к самостоятельному выполнению контрольной работы, студенты должны изучить основные вопросы программы, приведенные выше, пользуясь материалами установочных лекций и рекомендованной литературой. Контрольная работа состоит из семи заданий, которые следует реализовать на языке программирования Компонентный Паскаль.
ЗАДАНИЯ КОНТРОЛЬНОЙ РАБОТЫ
Вариант 1
Задача 1. Даны два ненулевых числа. Найти их сумму, разность, произведение и частное.
Задача 2. Даны три целых числа. Возвести в квадрат отрицательные числа и в третью степень – положительные (число 0 не изменять).
Задача 3. Дана целочисленная матрица размера M x N. Различные строки (столбцы) матрицы назовем похожими, если совпадают множества чисел, встречающихся в этих строках (столбцах). Найти количество строк1|столбцов2, похожих на первую3|последнюю4 строку1|столбец2.
Задача 4. Описать функцию IsIdent(S) целого типа, проверяющую, является ли строка S допустимым идентификатором Паскаля. При утвердительном ответе возвращается 0. Если S является пустой строкой, то возвращается –1, если строка начинается с цифры, то возвращается –2. Если S содержит недопустимые символы, то возвращается номер первого недопустимого символа. Проверить с помощью этой функции пять данных строк.
Задача 5. Описать процедуру UpCase1(S)1 | LowCase1(S)2, преобразующую все строчные | прописные буквы строки S в прописные | строчные (остальные символы строки S не изменяются). Используя эту процедуру, преобразовать шесть данных строк.
Задача 6. Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала N! и двойного факториала N!! соответственно (N > 0 — параметр целого типа). С помощью этих функций вычислить факториалы и двойные факториалы пяти данных чисел.
Задача 7. Проверить правильность расстановки скобок в строке S. Текст в строке S определяется следующим образом: <текст> ::= <элемент> | <элемент><текст> <элемент> ::= a | b | c | (<текст>) | [<текст>] | {<текст>} Если текст составлен правильно, то вывести True, иначе вывести False.
Вариант 2
Задача 1. Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.
Задача 2. Из трех данных чисел выбрать наименьшее.
Задача 3. Дан номер месяца (1 – январь, 2 – февраль, ...). Вывести название соответствующего времени года («зима», «весна» и т. д.).
Задача 4. Дано число k (0 < k < 11) и матрица размера 4 x 10. Найти сумму и произведение элементов k-го столбца данной матрицы.
Задача 5. Описать функцию FillStr(S,Len) строкового типа, возвращающую строку длины Len, заполненную повторяющимися копиями строки-шаблона S (последняя копия строки-шаблона может входить в результирующую строку частично). Используя эту функцию, сформировать по данному числу Len и пяти данным строкам-шаблонам пять результирующих строк длины Len.
Задача 6. Описать рекурсивную функцию PowerN(x,n) вещественного типа, находящую значение n-й степени числа x по формуле: x0 = 1, xn = x * xn – 1 при n > 0, xn = 1 / x – n при n < 0 (x > = 0 – вещественное число, n – целое). С помощью этой функции найти значения XN при 5 различных значениях N для данного X.
Задача 7. Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом («T» – True, «F» – False): <выражение> ::= T | F | And(<операнды>) | Or(<операнды>) | Not(<выражение>) <операнды> ::= <выражение> | <выражение>,<операнды>.
Вариант 3
Задача 1. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) – T2 ч. Определить путь S, пройденный лодкой.
Задача 2. Перераспределить значения переменных X и Y так, чтобы в X оказалось меньшее из этих значений, а в Y – большее.
Задача 3. Дан номер месяца (1 – январь, 2 – февраль, ...). Вывести число дней в этом месяце для невисокосного года.
Задача 4. Дана матрица размера 5 x 9. Найти суммы элементов всех ее четных 1 | нечетных 2 строк 3 | столбцов 4.
Задача 5. Описать процедуру UpCase1(S)1 | LowCase1(S)2, преобразующую все строчные 1 | прописные 2 буквы строки S в прописные 1 | строчные 2 (остальные символы строки S не изменяются). Используя эту процедуру, преобразовать пять данных строк.
Задача 6. Описать рекурсивную функцию SqrtK(x,k,n) вещественного типа, находящую приближенное значение корня k-й степени из числа x по формуле: y(0) = 1, y(n+1) = y(n) – (y(n) – x / y(n)k–1) / k, где y(n) обозначает SqrtK(x,k,n) (x – вещественный параметр, k и n – целые; x > 0, k > 1, n > 0). С помощью этой функции найти приближенные значения корня K-й степени из X при 6 различных значениях N для данных X и K.
Задача 7. Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом («T» – True, «F» – False): <выражение> ::= T | F | And(<операнды>) | Or(<операнды>) <операнды> ::= <выражение> | <выражение>,<операнды>.
Вариант 4
Задача 1. Скорость первого автомобиля V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга.
Задача 2. Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по возрастанию.
Задача 3. Дано целое число в диапазоне 0 – 9. Вывести строку – название соответствующей цифры на русском языке (0 – «ноль», 1 – «один», 2 – «два», ...).
Задача 4. Дана матрица размера 5 x 10. Найти минимальное 1 | максимальное 2 значение в каждой строке 3 | столбец 4.
Задача 5. Описать процедуру TrimL(S)1 |TrimR(S)2| Trim(S)3, удаляющую в строке S начальные 1 | конечные 2 | [начальные и конечные] 3 пробелы. Используя эту процедуру, преобразовать пять данных строк.
Задача 6. Описать рекурсивную функцию FibRec(N) целого типа, вычисляющую N-е число Фибоначчи F(N) по формуле: F(1) = F(2) = 1, F(k) = F(k–2) + F(k–1), k = 3, 4, ... . С помощью этой функции найти пять чисел Фибоначчи с указанными номерами.
Задача 7. Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом («T» – True, «F» – False): <выражение> ::= T | F | And(<операнды>) | Or(<операнды>) <операнды> ::= <выражение>,<выражение>.
Вариант 5
Задача 1. Скорость первого автомобиля V1 км/ч, второго – V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили первоначально движутся навстречу друг другу.
Задача 2. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной максимальное из этих значений, а если равны, то присвоить переменным нулевые значения.
Задача 3. Дано целое число в диапазоне 1 – 5. Вывести строку – словесное описание соответствующей оценки (1 – «плохо», 2 – «неудовлетворительно», 3 – «удовлетворительно», 4 – «хорошо», 5 – «отлично»).
Задача 4. Дана матрица размера 5 x 10. В каждой строке1|столбце2 найти количество элементов, больших3|меньших4 среднего арифметического всех элементов этой строки1|столбца2.
Задача 5. Описать функцию PosLast(subS,S) целого типа, возвращающую номер позиции, с которой в строке S содержится последнее вхождение подстроки subS. Если в строке S отсутствуют подстроки subS, то функция возвращает 0. Вывести значения этой функции для пяти данных пар subS и S.
Задача 6. Описать рекурсивную функцию C(m,n) целого типа, находящую число сочетаний из n элементов по m, используя формулу: C(0,n) = C(n,n) = 1, C(m,n) = C(m,n–1) + C(m–1,n–1) при 0 < m < n (m и n — целые параметры; n > 0, 0 <= m <= n). Дано число N и пять различных значений M. Вывести числа C(M,N) вместе с количеством рекурсивных вызовов функции C, потребовавшихся для их нахождения.
Задача 7. Проверить правильность выражения, заданного в виде строки S (выражение определяется по тем же правилам, что и в задании Proc73). Если выражение составлено правильно, то вывести 0, в противном случае вывести номер первого ошибочного (или лишнего) символа в строке S.
Вариант 6
Задача 1. Найти периметр и площадь прямоугольного треугольника, если даны длины его катетов a и b.
Задача 2. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной максимальное из этих значений, а если равны, то присвоить переменным нулевые значения.
Задача 3. Арифметические действия над числами пронумерованы следующим образом: 1 – сложение, 2 – вычитание, 3 – умножение, 4 – деление. Дан номер действия и два числа A и B (В не равно нулю). Выполнить над числами указанное действие и вывести результат.
Задача 4. Дана матрица размера 5 x 10. Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждой строке 1 | столбце 2.
Задача 5. Описать функцию PosK(subS,S,k) целого типа, возвращающую mnlep позиции, с которой в строке S содержится k-е вхождение подстроки subS (k > 0). Если количество вхождений subS в строке S меньше k, то функция возвращает 0. Вывести значения этой функции для пяти данных троек: k, subS и S.
Задача 6. Описать рекурсивную функцию NOD(A,B) целого типа, находящую наибольший общий делитель двух натуральных чисел A и B, используя алгоритм Евклида: NOD(A,B) = NOD(B mod A,A), если A <> 0; NOD(0,B) = B. С помощью этой функции найти наибольшие общие делители пар A и B, A и C, A и D, если даны числа A, B, C, D.
Задача 7. Проверить правильность выражения, заданного в виде строки S (выражение определяется по тем же правилам, что и в задании Proc73). Если выражение составлено правильно, то вывести True, иначе вывести False.
Вариант 7
Задача 1. Дана длина ребра куба. Найти площадь грани, площадь полной поверхности и объем этого куба.
Задача 2. Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по убыванию.
Задача 3. Единицы длины пронумерованы следующим образом: 1 – дециметр, 2 – километр, 3 – метр, 4 – миллиметр, 5 – сантиметр. Дан номер единицы длины и длина отрезка L в этих единицах (вещественное число). Вывести длину данного отрезка в метрах.
Задача 4. Дана матрица размера 5 x 10. Найти минимальное 1 | максимальное 2 значение среди сумм элементов всех ее строк 3 | столбцов 4 и номер строки 3 | столбца 4 с этим минимальным 1 | максимальным 2 значением.
Задача 5. Описать функцию WordN(S,k) строкового типа, возвращающую k-е слово строки S (под словом понимается набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки). Если количество слов в строке меньше k, то функция возвращает пустую строку. Используя эту функцию, выделить из данной строки S слова с номерами k1, k2, k3.
Задача 6. Описать рекурсивную функцию MinRec(A,N)1|MaxRec(A,N)2 вещественного типа, которая находит минимальный 1 | максимальный 2 элемент вещественного массива A размера N, не используя оператор цикла. С помощью функции MinRec1|MaxRec2 найти минимальные 1 | максимальные 2 элементы массивов A, B, C размера NA, NB, NC соответственно.
Задача 7. Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом: <выражение> ::= <цифра> | (<выражение><знак><выражение>) <знак> ::= + | – | *.
Вариант 8
Задача 1. Найти длину окружности и площадь круга заданного радиуса R. В качестве значения Pi использовать 3,14.
Задача 2. Даны три переменные: X, Y, Z. Если их значения упорядочены по возрастанию или убыванию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное.
Задача 3. Единицы массы пронумерованы следующим образом: 1 – килограмм, 2 – миллиграмм, 3 – грамм, 4 – тонна, 5 – центнер. Дан номер единицы массы и масса тела M в этих единицах (вещественное число). Вывести массу данного тела в килограммах.
Задача 4. Дана матрица размера 5 x 10. Найти минимальный 1 | максимальный 2 среди максимальных 1 | минимальных 2 элементов каждой строки 3 | столбца 4.
Задача 5. Описать процедуру SplitStr(S,W,N), которая формирует по данной строке S набор слов W, входящих в S (W – выходной строковый массив; N – его размер; предполагается, что N не будет превышать 10). Под словом понимается набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки. Используя эту функцию, вывести количество слов N, содержащихся в данной строке S, и сами эти слова.
Задача 6. Описать рекурсивную функцию Digits(S) целого типа, находящую количество цифр в строке S без использования оператора цикла. С помощью этой функции найти количество цифр в данных пяти строках.
Задача 7. Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом: <выражение> ::= <терм> | <выражение>+<терм> | <выражение>–<терм> <терм> ::= <элемент> | <терм>*<элемент> <элемент> ::= <цифра> | (<выражение>).
Вариант 9
Задача 1. Найти площадь кольца, внутренний радиус которого равен R1, а внешний радиус равен R2 (R1 < R2). В качестве значения Pi использовать 3.14.
Задача 2. Даны целочисленные координаты точки на плоскости. Если точка не лежит на координатных осях, то вывести 0. Если точка совпадает с началом координат, то вывести 1. Если точка не совпадает с началом координат, но лежит на оси OX или OY, то вывести соответственно 2 или 3.
Задача 3. Робот может перемещаться в четырех направлениях («С» – север, «З» – запад, «Ю» – юг, «В» – восток) и принимать три цифровые команды: 0 – продолжать движение, 1 – поворот налево, –1 – поворот направо. Дан символ C – исходное направление робота и число N – посланная ему команда. Вывести направление робота после выполнения полученной команды.
Задача 4. Дана целочисленная матрица размера 5 x 10. Вывести номер ее первой 1 | последней 2 строки 3 | столбца 4, содержащего равное количество положительных и отрицательных элементов (нулевые элементы не учитываются). Если таких строк 3 | столбцов 4 нет, то вывести 0.
Задача 5. Описать функцию DecToBin(N)1 | DecToHex(N)2 строкового типа, которая возвращает строковое представление целого неотрицательного числа N в двоичной 1 | 16-ричной 2 системе счисления. Результирующая строка состоит из символов ['0'–'1']1|['0'–'9', 'A'–'F']2 и не содержит ведущих нулей (за исключением представления числа 0). Используя эту функцию, получить двоичные 1 | 16-ричные 2 представления данных пяти чисел.
Задача 6. Описать рекурсивную функцию Simm(S) логического типа, проверяющую, является ли симметричной строка S, без использования оператора цикла. С помощью этой функции проверить данные пять строк.
Задача 7. Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом: <выражение> ::= <терм> | <выражение>+<терм> | <выражение>–<терм> <терм> ::= <цифра> | <терм>*<цифра>.
Вариант 10
Задача 1. Дана сторона равностороннего треугольника. Найти площадь этого треугольника и радиусы вписанной и описанной окружностей.
Задача 2. Даны вещественные координаты точки, не лежащей на координатных осях OX и OY. Вывести номер координатной четверти, в которой находится данная точка.
Задача 3. Локатор ориентирован на одну из сторон света («С» – север, «З» – запад, «Ю» – юг, «В» – восток) и может принимать три цифровые команды: 1 – поворот налево, –1 –поворот направо, 2 – поворот на 180 градусов. Дан символ C – исходная ориентация локатора и числа N1 и N2 – две посланные ему команды. Вывести ориентацию локатора после выполнения данных команд.
Задача 4. Дана матрица размера 5 x 10. Вывести номер ее первой 1 | последней 2 строки 3 | столбца 4, содержащего только положительные элементы. Если таких строк 3 | столбцов 4 нет, то вывести 0.
Задача 5. Описать функцию BinToDec(S)1| HexToDec(S)2 целого типа, которая определяет целое неотрицательное число по его строковому представлению S в двоичной 1 | 16-ричной 2 системе счисления. Параметр S имеет тип string, состоит из символов ['0'–'1']1|['0'–'9', 'A'–'F']2 и не содержит ведущих нулей (за исключением значения '0'). Используя эту функцию, вывести пять чисел, для которых даны их двоичные 1 | 16-ричные 2 представления.
Задача 6. Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала N! и двойного факториала N!! соответственно (N > 0 – параметр целого типа). С помощью этих функций вычислить факториалы и двойные факториалы пяти данных чисел.
Задача 7. Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом: <выражение> ::= <цифра> | <выражение>+<цифра> | <выражение>–<цифра>.
Библиографический список
Основная литература
1. Гаврилов, М. В. Информатика и информационные технологии : учебник для бакалавров / М. В. Гаврилов, В. А. Климов. – 2-е изд., испр. и доп. – М. : Юрайт, 2012. – 350 с.
2. Гуда, А. Н. Информатика. Общий курс : учебник / А. Н. Гуда, М. А. Бутакова, Н. М. Нечитайло ; ред. В. И. Колесников. – 3-е изд. – М. ; Ростов-на-Дону : Дашков и К, Наука-Спектр, 2013. – 400 с.
3. Кузнецова, Т. Н. Объектно-ориентированное программирование : лекция / Т. Н. Кузнецова. – Чита : ЗИП Сиб УПК, 2014. – 28 с.
Дополнительная литература
4. Гагарина, Л. Г.Введение в теорию алгоритмических языков и компиляторов : учебное пособие / Л. Г. Гагарина, Е. В. Кокорина. – М. : Высшее образование, 2011. – 176 с.
5. Гринченков, Д. В. Математическая логика и теория алгоритмов для программистов : учеб. пособие / Д. В. Гринченков, С. И. Потоцкий. – М. : КноРус, 2010. – 208 с.
6. Иванова, Г. С. Технология программирования : учебник для вузов / Г. С. Иванова. – М. : КноРус, 2011. – 336 с.
7. Костюкова, Н. И. Графы и их применение. Комбинаторные алгоритмы для программистов : учеб. пособие / Н. И. Костюкова. – М. : БИНОМ, 2010. – 311 с.
8. Пратт Т.Языки программирования. Разработка и реализация / Т. Пратт, М. Зельковиц. – СПб. : Питер, 2011. – 564 с.
Учебно-методическое издание
ГомбоевЛеонид Гындунович