Главная страница
Финансы
Экономика
Математика
Начальные классы
Информатика
Биология
Медицина
Сельское хозяйство
Ветеринария
Вычислительная техника
Дошкольное образование
Логика
Этика
Религия
Философия
Воспитательная работа
История
Физика
Политология
Социология
Языкознание
Языки
Право
Юриспруденция
Русский язык и литература
Строительство
Промышленность
Энергетика
Другое
Доп
образование
Связь
Электротехника
Автоматика
Физкультура
Технология
Классному руководителю
Химия
Геология
Иностранные языки
Логопедия
Искусство
Экология
Культура
География
ИЗО, МХК
Казахский язык и лит
Директору, завучу
Школьному психологу
Обществознание
Социальному педагогу
Языки народов РФ
ОБЖ
Музыка
Механика
Украинский язык
Астрономия
Психология

Задания по ЯП (Ассемблер). Тема Вычисление значения выражения


Скачать 75.5 Kb.
НазваниеТема Вычисление значения выражения
АнкорЗадания по ЯП (Ассемблер).doc
Дата29.04.2017
Размер75.5 Kb.
Формат файлаdoc
Имя файлаЗадания по ЯП (Ассемблер).doc
ТипПрограмма
#602

Задания по курсу «Языки программирования»

II семестр (Ассемблер)
Тема 1. Вычисление значения выражения.
Примечания к заданиям:

  • Реализуйте вычисление заданного выражения как ассемблерную вставку в программе на языке Паскаль.

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

  • Все переменные являются целочисленными.


1-1. ((A* X2) div (B * X2)) div (X * Y + 1)
1-2. A * X5 + B * X3 + C * X + D div X
1-3. (A * X4 + B * X3 + C * X2 + D * X) div E
1-4. A * X3 + B * X2 + C div X + (D div X) div X
1-5. (A * X2 + B * X + C) div (D * X + E)
1-6. (A * X + B) div (C * X2 + D * X + E)
1-7. ((A * X + B) div (C * X + D)) div E
1-8. (((A * X div B) * X div C) * X div D) * X
1-9. A * X^2 + B * X * Y + C * Y2 + D * X + E * Y + A
1-10.A * X * Y * Z + B * X * Y + C * Y * Z + D * X * Z + A

1-11. ((A* X) div (B * X*Y)) div (X + 1)
1-12. A * (X5 + B * X3 )+ C * X + D div X2
1-13. A * X4 + B * X3 + C * X2 + (D * X) div E
1-14. (A * X3 + B * X2 + C div X + D div X) div X
1-15. (A * X2 + B * X)*Y + C div (D * X + E)
1-16. (A * X + B) div (C * X2 )+ D * X + E
1-17. (A * X + B) div ((C * X + D) div E)
1-18. (((A * X div B)+ X div C) * X div D) * X
1-19. (A * X^2 + B * X * Y + C )* Y2 + D * X + E * Y + A
1-20.A * (X * Y * Z + B * X * Y + C * Y * Z )div( D * X * Z) + A
Тема 2. Массивы.
Примечания к заданиям:

  • Реализуйте вычисление заданного выражения как ассемблерную вставку в программе на языке Паскаль.

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

  • Все переменные (X, Y) являются целочисленными.

  • A, B, C – массивы.

  • Если у массива указан один индекс, значит он одномерный, если два – двумерный.

  • Индекс i=1..3.

2-1. (Ai * Xi) +  (Bi * Y)
2-2  (Ai * X) +  (Bi * X2)
2-3  (Ai * X + (Bi*XY) + (Ci)*Y
2-4  (Ai * Bi) * X +  (Ci) * Y
2-5  (|Ai| * |Bi|) * X -  (|Ci|) * Y
2-6  (|Ai|) * X +  (Bi) * Y
2-7  (|Ai|) * X +  (|Bi|) * X * Y +  (Ci)
2-8 (| (Ai) +  (Bi)|) * X * Y
2-9 | (Ai + Bi)| * X + X2

2-10 | (Ai) * X +  (Bi) * Y|

2-11. (Aij * X) +  (Bi * Y)
2-12  (Ai * X) +  (Bij * X2)
2-13  (Aij * X + (Bi*XY) + (Ci)*Y
2-14  (Ai * Bij) * X +  (Ci) * Y
2-15  (|Ai| * |Bij|) * X -  (|Ci|) * Y
2-16  (|Aij|) * X +  (Bi) * Y
2-17  (|Ai|) * X +  (|Bi|) * X * Y +  (Cij)
2-18 (| (Ai) +  (Bij)|) * X * Y
2-19 | (Ai + Bij)| * X + X2
2-20 | (Ai) * X +  (Bij) * Y|
Тема 3. Битовые операции. Упакованные данные.
Примечания к заданиям:
-Программы реализуются как ассемблерные вставки в Паскаль.
3-1 С помощью логических операций реализуйте запись битов в данной ячейки памяти, размером в 2 байта, в обратном порядке.

3-2 Реализуйте логическую арифметику, при которой в одном байте хранилось бы 8 логических переменных.

3-3 Реализуйте логическую арифметику, при которой в одном слове хранилось бы 16 логических переменных.

3-4 Реализуйте с помощью логических операций вставку заданного значения (0 или 1) в любой бит байта со сдвигом вправо и потерей крайнего бита.

3-5 Реализуйте с помощью логических операций вставку заданного значения (0 или 1) в любой бит байта со сдвигом влево и потерей крайнего бита.

3-6 Реализуйте с помощью логических операций вставку заданного значения (0 или 1) в любой бита байта с потерей исходного значения.

3-7 Реализуйте с помощью логических симметричное отображение младшего байта слова на старший байт с потерей исходных значений.

3-8 Реализуйте с помощью логических симметричное отображение старшего байта слова на младший байт с потерей исходных значений.

3-9 Реализуйте с помощью логических операцию, при которой старший байт слова логически складывается с младшим байтом, записанным в обратном порядке.

3-10 Реализуйте с помощью логических операцию, при которой старший байт слова логически умножается на младший байт, записанный в обратном порядке.

3-11 Реализуйте с помощью логических операцию, при которой младший байт слова логически складывается со старшим байтом записанным в обратном порядке.

3-12 Реализуйте с помощью логических операцию, при которой младший байт слова логически умножается на младшим байтом, записанный в обратном порядке.

3-13 Одномерный вектор имеет восемь координат, каждая из которых может принимать значения 0 или 1. Реализуйте с помощью битовых операций векторную алгебру (сложение, вычитание и скалярное произведение векторов).

3-14 С помощью битовых операций реализуйте перестановку двух любых битов в данном слове местами. Остальные биты остаются неизменными.

3-15 Заданы два числа 16. Найти их сумму и с помощью битовых операций записать оба слагаемых и их сумму одно за другим в ячейку памяти размером в два байта без пропуска битов.

3-16 Заданы два числа 16. Найти их произведение и с помощью битовых операций записать оба множителя и их произведение одно за другим в ячейку памяти размером в два байта без пропуска битов.

3-17 Заданы два числа  256. Найти целую часть от деления первого числа на второе и остаток деления. Записать две полученные величины одно за другим без пропуска битов в в ячейку памяти размером в два байта.

3-18 Дано слово из трех букв (например ОКН). С помощью битовых операций запишите последовательность ASCII кодов его букв в ячейку памяти минимального размера. Слово может быть и другим, программа должна его запрашивать. Запрашивать можно на Паскале.

3-19 Дано пятизначное число. (Может быть например такое 00001). С помощью битовых операций запишите его в ячейку памяти минимального размера. Запрашивать число можно на Паскале.

3-20 В двухбайтной ячейке памяти записана последовательность нулей и единиц. С помощью битовых операций переставьте биты так чтобы сначала шли все единицы, а затем все нули.
Тема 4. Структуры. Записи.
Примечания к заданиям:

  • Программа должна быть реализована на языке ассемблера TASM.

  • Под записью подразумевается структура с упакованными данными.


4-1 Реализуйте арифметические операции с комплексными числами. Комплексные числа задаются как структуры с полями Re и Im.

4-2 Реализуйте векторную алгебру в трехмерном пространстве (сложение, вычитание, скалярное и векторное произведение векторов). Вектор представляется как структура с полями, соответствующими координатам.

4-3 Многочлен степени n задается своими коэффициентами, каждый из которых записан в своем поле структуры «многочлен». Реализуйте сложение, вычитание и умножение многочленов.

4-4 Многочлен степени n задается своими коэффициентами, каждый из которых записан в своем поле структуры «многочлен». Реализуйте процедуру взятия производной от многочлена и подстановку вместо x значения x-a, где a – произвольное число.

4-5 Представить обыкновенную дробь как структуру с полями «Числитель» и «Знаменатель» и реализовать арифметические операции с дробями.

4-6 Представить матрицу 3х3 как структуру с полями, соответствующими каждому элементу. Реализовать сложение, умножение матриц, а также нахождение определителя.

4-7 Представить матрицу 3х4 как запись с полями, соответствующими каждому элементу. Реализовать сложение, умножение матриц.

4-8 Реализуйте базу данных с полями «Фамилия», «Имя», «Отчество», «Пол», «Год рождения». Каждая запись должна представлять собой структуру с соответствующими полями. Интерфейс должен позволять:

1)Вносить новые записи

2)Удалять записи

3)Упорядочивать записи по алфавиту

4)Просматривать весь список.

4-9 Реализуйте базу данных с полями «Фамилия», «Имя», «Отчество», «Пол», «Год рождения». Каждая запись должна представлять собой структуру с соответствующими полями. Интерфейс должен позволять:

1)Вносить новые записи

2)Удалять записи

3) Просматривать список по полу

4)Просматривать список по году рождения.

4-10 Реализуйте базу данных с полями «Фамилия», «Имя», «Отчество», «Пол», «Год рождения». Каждая запись должна представлять собой структуру с соответствующими полями. Интерфейс должен позволять:

1)Вносить новые записи

2)Удалять записи

3)Искать записи по маске фамилии

4) Искать записи по маске фамилии и полу.

4-11 Реализуйте базу данных с полями «Фамилия», «Имя», «Отчество», «Пол», «Год рождения». Каждая запись должна представлять собой структуру с соответствующими полями. Интерфейс должен позволять:

1)Вносить новые записи

2)Удалять записи

3)Искать записи по маске фамилии

4) Редактировать записи, найденные по маске фамилии.

4-12 Реализуйте базу данных с полями «Фамилия», «Имя», «Отчество», «Пол», «Год рождения». Каждая запись должна представлять собой структуру с соответствующими полями. Интерфейс должен позволять:

1)Вносить новые записи

2)Удалять записи

3)Удалять записи по маске фамилии

4)Просматривать весь список.

4-13 Реализуйте базу данных с полями «Фамилия», «Имя», «Отчество», «Пол», «Год рождения». Каждая запись должна представлять собой структуру с соответствующими полями. Интерфейс должен позволять:

1)Вносить новые записи

2)Удалять записи

3)Поиск записей по возрасту

4)Изменение возраста у найденных записей.

4-14 Реализуйте базу данных с полями «Товар», «Цена», «Изготовитель». Каждая запись должна представлять собой структуру с соответствующими полями. Интерфейс должен позволять:

1)Вносить новые записи

2)Удалять записи

3)Поиск по маске наименования

4)Изменение цену у найденной записи.

4-15 Реализуйте арифметические операции с комплексными числами. Комплексные числа задаются как запись с полями Re и Im.

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

4-17 Многочлен степени n задается своими коэффициентами, каждый из которых записан в своем поле записи «многочлен». Реализуйте сложение, вычитание и умножение многочленов.

4-18 Многочлен степени n задается своими коэффициентами, каждый из которых записан в своем поле записи «многочлен». Реализуйте процедуру взятия производной от многочлена и подстановку вместо x значения x-a, где a – произвольное число.

4-19 Представить обыкновенную дробь как запись с полями «Числитель» и «Знаменатель» и реализовать арифметические операции с дробями.

4-20 Представить матрицу 3х3 как запись с полями, соответствующими каждому элементу. Реализовать сложение, умножение матриц, а также нахождение определителя.
Тема 5. Процедуры.
5-1 Строку символов можно рассматривать как однонаправленный список. Реализуйте подпрограммы осуществляющие соответственно операции передвижения по списку, удаление элемента списка, вставка элемента в список, переход на начало списка. Каждая операция должна быть реализована в отдельной подпрограмме.

5-2 Строку символов можно рассматривать как однонаправленный список. Реализуйте подпрограммы осуществляющие соответственно операции поиск элемента в списке, удаление найденного элемента, замена данного элемента на другой. Каждая операция должна быть реализована в отдельной подпрограмме.

5-3 Строку символов можно рассматривать как очередь. Реализуйте подпрограммы осуществляющие соответственно операции добавления элемента в очередь и извлечение элемента из очереди. Каждая операция должна быть реализована в отдельной подпрограмме.

5-4 Реализуйте подпрограмму, которая возвращает символы имеющиеся в данной строке с указанием числа вхождений каждого символа.

5-5 Реализуйте подпрограмму, которая находит наибольшую и наименьшую цифру в данной строке, состоящей из букв и цифр.

5-6 Реализуйте подпрограмму, которая заменяет все заглавные буквы данной строки на строчные и наоборот.

5-7 Комплексное число может быть реализовано как запись с двумя полями. Реализуйте операции сложения, вычитания, умножения и деления двух комплексных чисел, в четырех отдельных подпрограммах.

5-8 Дано предложение. Напишите подпрограмму, возвращающую все правильные идентификаторы, имеющиеся в данной предложении.

5-9 Дано предложение, состоящее из нескольких слов, разделенных пробелом. Реализуйте подпрограмму, записывающую слова в том же порядке, но в каждом слове символы должны идти в обратном порядке.

5-10 Дано предложение, состоящее из нескольких слов, разделенных пробелом. Реализуйте подпрограмму, записывающую слова в обратном порядке.

5-11 Дано предложение, состоящее из нескольких слов, разделенных пробелом. Реализуйте подпрограмму, записывающую слова в порядке неубывания их длины.

5-12 Дано предложение, состоящее из нескольких слов, разделенных пробелом. Реализуйте подпрограмму, записывающую слова в порядке невозрастания их длины.

5-13 Дано предложение, состоящее из нескольких слов, разделенных пробелом. Реализуйте подпрограмму, которая находит слово наименьшей длины и укорачивает все остальные, отбрасывая лишние символы.

5-14 Дано предложение, состоящее из нескольких слов, разделенных пробелом. Реализуйте подпрограмму, удаляющую наиболее часто встречающийся символ. Если все символы встречаются по одному необходимо выдать соответствующее сообщение и ничего не удалять.

5-15 Дано предложение, состоящее из нескольких слов, разделенных пробелом. Реализуйте подпрограмму, возвращающую строчные буквы, встречающиеся в данном предложении.

5-16 Дано предложение, состоящее из нескольких слов, разделенных пробелом. Реализуйте подпрограмму, Возвращающую сначала заглавные, а затем строчные буквы в алфавитном порядке.

5-17 Задано число от 1 до 1999. Реализуйте подпрограмму, возвращающую запись данного числа римскими цифрами.

5-18 Заданы три числа. Реализуйте подпрограмму, возвращающую их наибольший общий делитель.

5-19 Задана строка из цифр. Реализуйте подпрограмму, упорядочивающую данные цифры по неубыванию.

5-20 Задано четыре натуральных числа. Реализуйте подпрограмму нахождения их наименьшего общего кратного.
VI.Макроассемблер.
Примечания к заданиям:
- Все повторяющиеся фрагменты должны быть выполнены в виде макросов.

- Вычисления проводятся до пятого знака после запятой.
6-1 Дано натуральное число n. Вычислить: (1-1/22)(1-1/32)(1-1/42)…(1-1/n2)

6-2 Дано натуральное число n. Вычислить: (1-1/22)(1-1/33)(1-1/44)…(1-1/nn)

6-3 Дано натуральное число n. Вычислить: (1-1/2n)(1-1/3n)(1-1/4n)…(1-1/nn)

6-4 Дано натуральное число n. Вычислить: (1-1/2!)(1-1/3!)(1-1/4!)…(1-1/n!)

6-5 Используя разложение в ряд Тейлора найти значение sin(x) с заданной точностью .

6-6. Используя разложение в ряд Тейлора найти значение cos(x) с заданной точностью .

6-7 Используя разложение в ряд Тейлора найти значение ch(x) с заданной точностью .

6-8. Используя разложение в ряд Тейлора найти значение tg(x) с заданной точностью .

6-9 Используя разложение в ряд Тейлора найти значение exp(x) с заданной точностью .

6-10 Используя разложение в ряд Тейлора найти значение ln(x) с заданной точностью .

6-11 Используя разложение в ряд Тейлора найти значение sh(x) с заданной точностью .

6-12 Реализуйте программу умножения двух квадратных матриц размером 4х4, поиск отдельного элемента итоговой матрицы должен быть описан как макрос.

6-13 Дана текстовая строка, состоящая из символов 0..9. Реализуйте программу получения из данной строки соответствующего числа. Нахождение цифры по ее ASCII коду должно быть реализовано в виде макроса.

6-14 Задана строка символов. Напечатать строку из символов, ASCII коды которых получаются прибавлением заданного k к ASCII кодам символов исходной строки. Нахождение ASCII кодов и получение нового ASCII кода должно быть оформлено в виде макросов.

6-15 Задана строка символов. Удалить из этой строки символы, ASCII коды которых превышают заданное k. Нахождение ASCII кодов и сравнение с k должно быть оформлено в виде макросов.

6-16 Задана строка из русских и латинских символов, заменить в ней все латинские буквы на значок “*”, а все русские на “+”, остальные символы заменяются нулями. Нахождение ASCII кодов и определение принадлежности к алфавиту должно быть оформлено в виде макросов.

6-17 Задана строка символов. Посчитать количество, ASCII коды которых лежат в заданном интервале. Нахождение ASCII кодов и проверка принадлежности интервалу должны быть оформлено в виде макросов.

6-18 Дано натуральное число n. Вычислить:

(1-1/2!)(1+1/3!)(1-1/4!)…(1-(-1)n-1/n!)

6-19 Дано натуральное число n. Вычислить:

(1-1/2n)(1+1/3n)(1-1/4n)…(1-(-1)n-1/nn)

6-20 Дано натуральное число n. Вычислить:

(1-1/22)(1+1/33)(1-1/44)…(1-(-1)n-1/nn)
VII.Модульное программирование.
Примечания к заданиям:
- В модуле команды должны быть реализованы в виде макросов.
7-1 Реализовать модуль, подключение которого позволяет осуществлять ввод с клавиатуры символьной строки и вывод на экран символьной строки.

7-2 Реализовать модуль, подключение которого позволяет открывать файл, закрывать файл и выводить содержимое файла на экран. Предусмотреть листинг, если файл большой.

7-3 Реализовать модуль, подключение которого позволяет открывать файл, закрывать файл и читать запись в файле по номеру позиции.

7-4 Реализовать модуль, подключение которого позволяет открывать файл, закрывать файл и делать запись в файле по номеру позиции.

7-5 Реализовать модуль, подключение которого позволяет создавать файл, открывать файл, закрывать файл, и автоматически записывающий в открытый файл его собственное имя.

7-6 Реализовать модуль, подключение которого позволяет производить одной командой следующие пересылки данных:

  1. непосредственный операнд в любой регистр (в том числе сегментный),

  2. m8m8,

  3. m16m16,

  4. r8r8 (r8 - один из байтов любого регистра, а не только общего назначения).

7-7 Реализуйте модуль, подключение которого позволяет запрашивать строку, содержащую действительное число, и преобразовывать его в числовой формат. Модуль должен содержать два макроса: запрос строки через прерывания и преобразование в число.

7-8 Реализуйте модуль, подключение которого позволяет осуществлять форматный вывод действительного числа, то есть целую часть и заданное количество знаков после запятой.

7-9 Реализуйте модуль, содержащий два макроса выделения целой и дробной части рационального числа.

7.10 Реализуйте модуль, подключение которого позволяет вычислять значение выражения «пятизначное число + пятизначное число» вводимого как строка с клавиатуры. Распознавание числа и вывод результата реализуйте как макросы.

7.11 Реализуйте модуль, подключение которого позволяет вычислять значение выражения «пятизначное число * пятизначное число» вводимого как строка с клавиатуры. Распознавание числа и вывод результата реализуйте как макросы.

7.12 Реализуйте модуль записывающий в файл первые пять строк треугольника Паскаля. Операции открытие файла, запись в файл и закрытие файла реализуйте в виде макросов.

7.13 Реализуйте модуль читающий из файла строку длиной 10 символов и записывающий эту строку в обратном порядке в тот же файл. Операции открытие файла, чтение из файла, запись в файл и закрытие файла реализуйте в виде макросов.

7.14 Реализуйте модуль читающий из файла строку длиной 10 символов и проверяющий встречается ли в прочитанной строке заданное с клавиатуры сочетание из трех букв. Операции открытие файла, чтение из файла и закрытие файла реализуйте в виде макросов.

7.15 Реализуйте модуль читающий из файла строку из 10 цифр и подсчитывающий в ней количество инверсий. Операции открытие файла, чтение из файла и закрытие файла реализуйте в виде макросов.

7.16 Реализуйте модуль записывающий в файл сначала русский, а затем латинский алфавит. Причем каждая буква идет два раза, сначала заглавная, потом строчная (Аа Бб и т.д). Операции открытие файла, запись в файл и закрытие файла реализуйте в виде макросов.

7.17 В файле заданы два числа: первый член геометрической прогрессии и ее множитель. Реализуйте модуль записывающий в этот же файл первые N членов геометрической прогрессии. Операции открытие файла, чтение из файла, запись в файл и закрытие файла реализуйте в виде макросов.

7.18 В файле заданы два числа: первый член арифметической прогрессии и ее разность. Реализуйте модуль записывающий в этот же файл первые N членов арифметической прогрессии. Операции открытие файла, чтение из файла, запись в файл и закрытие файла реализуйте в виде макросов.

7.19 В файле заданы два числа. Реализуйте модуль записывающий в этот же файл первые N членов последовательности определяемой рекуррентным соотношением аn+1=an+an-1. Операции открытие файла, чтение из файла, запись в файл и закрытие файла реализуйте в виде макросов.

7.20 Реализуйте модуль, который по вводимому с клавиатуры числу, записывает в файл все его простые делители. Операции открытие файла, запись в файл и закрытие файла реализуйте в виде макросов.
написать администратору сайта