Тема 4. Структуры. Записи.




Тема 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. S(Ai * Xi) + S (Bi * Y)
2-2 S (Ai * X) + S (Bi * X2)
2-3 S (Ai * X + S(Bi*XY) + (SCi)*Y
2-4 S (A i * Bi) * X + S (Ci) * Y
2-5 S (|Ai| * |Bi|) * X - S (|Ci|) * Y
2-6 S (|Ai|) * X + S (Bi) * Y
2-7 S (|Ai|) * X + S (|Bi|) * X * Y + S (Ci)
2-8 (|S (Ai) + S (Bi)|) * X * Y
2-9 |S (Ai + Bi)| * X + X2

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

2-11. S(Aij * X) + S (Bi * Y)
2-12 S (Ai * X) + S (Bij * X2)
2-13 S (Aij * X) + S(Bi*XY) + (SCi)*Y
2-14 S (Ai * Bij) * X + S (Ci) * Y
2-15 S (|Ai| * |Bij|) * X - S (|Ci|) * Y
2-16 S (|Aij|) * X + S (Bi) * Y
2-17 S (|Ai|) * X + S (|Bi|) * X * Y + S (Cij)
2-18 (|S (Ai) + S (Bij)|) * X * Y
2-19 |S (Ai + Bij)| * X + X2
2-20 |S (Ai) * X + S (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) с заданной точностью e.

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

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

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

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

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

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

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)

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: