Задание на лабораторную работу №1.



 

Запустите интерпретатор Hugs (файл winhugs.exe).

В режиме работы с интерпретатором

1. Вычислите числовое выражение.

2. Вычислите логическое выражение

3. Получите списки с помощью генератора списков

а) арифметическую прогрессию с первым элементом и разностью , с элементами, не превышающими значения . (в варианте указаны три числа, соответствующие ,  и , соответственно);

б) первые 20 элементов списка, указанного  в варианте;

в) получить список, описанный в варианте, и найти число его элементов .

       Далее работаем и непосредственно в интерпретаторе (удобно при отладке программ) и создаем полноценные исходные тексты программ в редакторе. Создайте файл с расширением *.hs в блокноте или любом текстовом редакторе, также в интерпретаторе есть кнопка “Run Text Editor” для перехода в режим редактирования. ВНИМАНИЕ! При использовании этой кнопки загрузится модуль Prelude с основными встроенными функциями Haskell, ни в коем случае не изменяйте его, а создайте новый файл. Убедитесь, что у вашего файла расширение именно *.hs. Запишите в нем:

4. Функцию myexpr(определив самостоятельно тип и необходимое число аргументов), позволяющую вычислить выражение из задания 1. Убедитесь в равенстве ответов. Продемонстрируйте работу функции при каких-нибудь 3 наборах аргументов, отличных от начальных (в задании 1). 

После создания файла сохраните его и вернитесь в интерпретатор. Загрузить файл можно а) с помощью кнопки «Открыть файл» б) набрав в интерпретаторе команду :l <имя файла>. После успешного (нет сообщений об ошибках) открытия файла набирайте в интерпретаторе имя функции и необходимые параметры (см. пример выполнения лабораторной работы ниже).

Работа со списочными и кортежными функциями.

5. а),б) Создайте функцию (функции) для обработки списков и кортежей (задание в варианте), используя встроенные функции из таблицы 1.3.

 

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

 

Вариант 1.

1.

2. «Неверно, что если число, в четыре раза меньшее числа предшествующему числу 54 больше квадрата 7, то сумма списка первых трех простых натуральных чисел четна»

3. а) 5, 3, 90;

б) пятиугольные числа;

в) Найти все раскраски флагов, имеющих три горизонтальные полосы в 9 цветов (включая черный и белый) таких, что полосы одинаковых цветов не стоят рядом, и их число.

5. а) По заданным двум спискам функция возвращает список, содержащий в обратном порядке элементы списка, имеющего меньшую длину. 

б) Дан кортеж двух числовых списков. Получить кортеж, содержащий два числа – минимальное из первого списка и максимальное из второго.

 

Вариант 2.

1.

2. Верно каждое из трех утверждений: 1) разность квадратов 18 и 24 не превышает их наименьшего общего кратного 2) первый элемент кортежа (5,4) нечетное число 3)

произведение элементов списка [2,5,4] больше удесятеренного последнего элемента 

3. а) 2,7,120;

б) числа Сабита;

в) Имеется 5 монет – в 1,3,5,10 и 15 копеек. Найти все комбинации из двух(различных) монет и их число.

5. а) Возвращает максимальный элемент из 4 чисел – двух последних и двух первых элементов заданного числового списка.  

б) По заданному кортежу двух чисел получает список, в котором первое число повторяется число раз, равное второму элементу кортежа.

 

Вариант 3.

1.

2. Верно только одно из двух утверждений: 1) остаток от деления 84 на 9 не больше, чем наибольший общий делитель 34 и 68 2) второй элемент кортежа (“a”,”b”) входит в строку “abcdef”, которую перевернули и удалили после этого 2 первых элемента.

3. а) 1,8, 94;

б) центрированные семиугольные числа

в) Расписание на день должно состоять из 4 пар. Найти все комбинации расписаний, если общее число предметов 9 (предметы придумать самостоятельно) и их число.

5. а) Проверить, содержится ли минимальный элемент первого списка во втором списке.  

б) Дан числовой список и кортеж двух чисел. Присоединить к списку в качестве первого и последнего элементов первый и второй элементы кортежа соответственно.

 

Вариант 4.

1.

2. «Если разница между максимальным и минимальным элементами списка [1,2,3,4,5] нечетна, то третий элемент этого списка не равен минимальному».

3. а) 6,3,70;

б) шестиугольные числа;

в) При наборе 4-буквенного слова на телефоне (кнопочном) были нажаты клавиши 6,4,5,5. Найти все возможные «слова» и их число.

5.а) Заданы две строки. Убрать из более длинной строки последние символы так, чтобы длина строк стала одинаковой и склеить полученные строки.

б) По заданному кортежу двух чисел получить кортеж, первый элемент которого равен сумме этих чисел, а второй – произведению.

 

Вариант 5.

1.

2. Верно хотя бы одно из утверждений: 1)второй элемент списка [8,1,3,4] больше первого 2)наименьшее общее кратное чисел 27 и 36 не превышает максимума из этих чисел 3)последний элемент строки «victory» содержится в строке, склеенной из строк «my»,«sweet»,«home».

3. а) 3,8,120;

б)треугольные числа;

в) В университете имеется 9 корпусов, в каждом корпусе 4 этажа, на каждом этаже 15 аудиторий. Получить список всех возможных кортежей, где первый элемент соответствует номеру корпуса, второй – этажу, третий - номеру аудитории. Найти число элементов списка. 

5. а) Возвращает подсписок заданного списка, начиная с заданного индекса n и заканчивая индексом m.  

б) По заданному списку и кортежу двух элементов проверить, содержится ли хотя бы один из элементов кортежа в списке.

 

Вариант 6.

1.

2. Либо оба утверждения одновременно верны, либо оба неверны. 1) символ, следующий за символом ‘m’(в таблице ASCI) содержится в строке “bingo” 2) сумма элементов кортежа (3,4) нечетна.

3. а) 1,6,83;

б) центрированные квадратные числа;

в) найти все представления числа 20 в виде суммы 4 натуральных чисел и количество таких представлений. 

5. а) Реверсирует в заданной строке первые n (заданное натуральное число) элементов.  

(«abcdefgh» 3 - > «cbadefgh» ).

б) По заданному списку функция должна получить кортеж из второго и последнего элементов.

Вариант 7.

1.

2. Неверно, что оба утверждения верны: 1) Произведение элементов списка [2,3,-5,1] нечетно 2) строка «abcdef», из которой убрали 2 последних символа, будет иметь длину менее 5.

3. а) 4,5,101;

б) прямоугольные числа;

в) найти все поля шахматной доски, лежащие ниже диагонали, проведенной из нижнего левого угла и их число.

5. а) Проверяет, является ли заданная строка палиндромом .  

б) Проверяет одинаковую четность двух элементов заданного числового кортежа.

 

Вариант 8.

1.

2. Хотя бы одно из утверждений неверно : 1) Наибольший общий делитель чисел 54 и 81 - нечетное число 2) сумма элементов списка [1,2,3,4,5], кроме двух последних элементов не превышает 10.

3. а) 3,2,43;

б) квадратные пирамидальные числа;

в) Считая, что в брак вступают с 18 лет и, приняв, что максимальная продолжительность жизни составляет 90 лет, а разница в возрасте жениха и невесты не должна превышать 15 лет, найти все комбинации возрастов жениха и невесты и их число.

5. а) Проверяет, встречается ли первый символ строки в ней еще раз.  

б) Проверить, что длина заданного списка не меньше минимального элемента заданного кортежа двух чисел и не больше максимального.

 

Вариант 9.

1.

2. Верно, что если 1) символ, имеющий номер на 2 больший, чем символ ‘g’ входит в строку “haskell”, то 2) наименьшее общее кратное первого и последнего элементов списка [15,32,24,48] нечетно.

3. а) 8,4,107;

б) центрированные шестиугольные числа;

в) В аккорд входит 3 различные ноты, найти все аккорды , состоящие из 7 различных нот и их число.

5. а) В заданной строке производит циклический сдвиг на n символов влево.  

(«abcdefgh» 3 - > «defghabc» )

б) По заданному числовому списку получить кортеж двух булевских значений – четности минимального элемента списка и максимального.

Вариант 10.

1.

2. Хотя бы одно утверждение ложно: 1) Длина списка [1,2,3,4,5] кратна 3 2) Остаток от деления на 19 числа 221 превосходит частное от деления этого же числа на 14 3) Второй элемент кортежа (‘f’,’t’) больше первого.

3. а) 5,6,99;

б) центрированные треугольные числа;

в) Получить все векторы длины три (можно представить кортежем) , элементы которого принимают значения из 4-х элементного множества, если запрещаются векторы с тремя одинаковыми элементами.

5. а) Получить строку, склеенную из двух строк, в первой из которых удалено n последних элементов, а во второй n первых.  

б) Уменьшает максимальный элемент числового кортежа из двух элементов на 1 и увеличивает минимальный втрое.

 


Дата добавления: 2019-03-09; просмотров: 728; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!