- •Алгоритмизация и основы программирования
- •Библиографический список
- •1.Позиционные системы счисления
- •2.Переходы между основными системами счисления
- •3.Основные шестнадцатеричные константы
- •4.Реализация целочисленных операций
- •5.Представление отрицательных чисел
- •6.Целочисленные типы данных в языке Си
- •7.Вещественные типы данных в языке Си
- •8.Кодирование символов
- •9.Схемы алгоритмов
- •Соединитель
- •Межстраничный соединитель
- •Возможные варианты отображения решения
- •28.Указания по выполнению лабораторной работы
Межстраничный соединитель
Обозначение |
Комментарии |
Использование |
1 |
2 |
3 |
|
Первая строка внутри межстраничного соединителя определяет номер листа схемы, вторая – координату символа |
Связываемые линией потока символы находятся на разных листах |
Окончание табл.7
1 |
2 |
3 |
|
A3 – определяет зону на данном листе, где расположен символ "Комментарий" 010E3 – определяет номер листа и зону расположения, связываемую с символом E3 |
В случае связи некоторого символа со многими другими символами, расположенными на разных листах, на входе этого символа помещают один символ "Межстраничный соединитель", внутри которого на первой строке помещают знак #, а на второй строке – координаты символа "Комментарий". Внутри символа "Комментарий" указывают номера страниц и координаты символов, связанных с поясняемым символом |
Для соединения блоков используются соединительные линии или линии потока, представленные в табл. 8.
Таблица 8
Линии потока
Обозначение |
Комментарии |
Использование |
1 |
2 |
3 |
|
|
Применяют для указания направления линии потока: можно без стрелки, если линия направлена слева направо и сверху вниз; со стрелкой – в остальных случаях |
|
|
Окончание табл. 8 |
1 |
2 |
3 |
|
Излом линии потока под углом 90о |
Обозначает изменение направлений линии потока |
|
Пересечение линий потока |
Применяется в случае пересечения двух несвязанных линий потока |
|
Слияние линий потока. Место слияний линий потока обозначено точкой |
Применяется в случае слияния линий потока, каждая из которых направлена к одному и тому же символу на схеме. Место слияния линий потока допускается обозначать точкой или цифрой 0 |
|
Место слияний линий потока обозначено цифрой 0 |
В табл. 9-10 представлены стандартные блоки, используемые при построении схем алгоритмов.
Таблица 9
Возможные варианты отображения решения
Обозначение |
Комментарии |
Использование |
1 |
2 |
3 |
|
A = B, P ≥ 0 – условия решений; A, B, P – параметры |
При числе исходов не более трех признак условия решения (Да, Нет, =, >, <) проставляют над каждой линией потока или справа от линии потока
|
|
|
Окончание табл. 9 |
1 |
2 |
3 |
|
yi – условие i-го исхода, 011E1, 016A3, 005B5, 015E4 - адреса исходов. Структура адреса имеет вид:
|
При числе исходов более трех условие исхода проставляется в разрыве линии потока. Адрес исхода проставляется в продолжении условия исхода и отделяется от него пробелом |
|
B5 – знак, указывающий, что условия решения даются в виде таблицы или символа "Комментарий", расположенных на данном листе в зоне B5 |
В символе "Соединитель" указывают координату зоны, куда должна помещаться таблица, или символ "Комментарий" |
Таблица 10
Символы в схемах алгоритмов
Название символа |
Обозначение |
Использование |
1 |
2 |
3 |
1. Процесс |
|
Выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных |
2. Решение |
|
Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий |
3. Модификация |
|
Выполнение операций, меняющих команды, или группы команд, изменяющих программу |
|
|
Продолжение табл.10 |
1 |
2 |
3 |
4. Предопределенный процесс |
|
Использование ранее созданных и отдельно описанных алгоритмов или программ |
5. Ручной ввод |
|
Ввод данных вручную при помощи неавтономных устройства с клавиатурой, переключателей, кнопок |
6. Ввод-вывод |
|
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод) |
7. Документ |
|
Ввод-вывод данных, носителем которых служит бумага |
8. Файл |
|
Представление организованных на основе общих признаков данных, характеризующих в совокупности некоторый объект обработки данных. Используется в сочетании с символами конкретных носителей данных.
|
|
|
Окончание табл.10 |
1 |
2 |
3 |
9. Линия потока |
|
Указание последовательности связей между символами |
10. Соединитель |
|
Указание связи между прерванными линиями потока, соединяющими символы |
11. Пуск-останов |
|
Начало, конец, прерывание процесса обработки данных или выполнения программы |
12. Комментарий |
|
Связь между элементом схемы и пояснением |
13. Межстраничный соединитель |
|
Указание связи между разъединенными частями схем алгоритмов и программ, расположенных на разных листах |
Примечание. Размер a должен выбираться из ряда 10, 15, 20 мм. Допускается увеличивать размер a на число, кратное 5. Размер b равен 1,5 a. При ручном выполнении схем алгоритмов и программ допускается устанавливать b равным 2 a.
10.Лабораторные задания
Вариант 1
11.Преобразовать в десятичную СС:
10111011102 .
12338 .
102023 .
12.Преобразовать к десятично-буквенной записи:
0x31FA50, 0x42FFAA, 0x12112121122.
Определить размер области памяти с границами 432A:DAD0 и 9AAD:32FF.
13.Вычислить в побитовом виде:
23+100 в одном байте.
-20 + 120 в одном байте.
120-130 в двух байтах.
Преобразовать логический адрес 34DA:3FD3 к нормализованной форме.
14.Преобразовать в другую СС:
1238 в шестнадцатеричную СС.
0хADDFCA в восьмеричную СС.
123 в шестнадцатеричную СС.
1000 в шестнадцатеричную СС.
15.Показать ошибочность операций:
100 + 100 в одном байте со знаком.
- 50 - 100 в одном байте со знаком.
0xAAAA + 0xBBBB в двух байтах без знака.
16.Характеристики вещественных типов
Найти машинный ноль, машинный эпсилон, точность и диапазон для несуществующего типа doom, если под него отводится 12 байт и под порядок – 20 бит.
17.ASCII-таблица:
Закодировать десятичными числами фразу «Hello 2008».
Записать математическую формулу для преобразования малых русских букв в большие.
18.Схемы алгоритмов:
Решить линейное уравнение A · x + B = 0. Вещественные коэффициенты A и В вводятся с клавиатуры. Рассмотреть все возможные исходы, возникающие в случаях: A 0; A = 0, B 0 ; A = 0, B = 0; переполнение типа. Реализовать схему так, чтобы выход из программы был единственным.
Найти наибольший элемент побочной диагонали квадратной матрицы.
Вариант 2
19.Преобразовать в десятичную СС:
11111011112 .
14328 .
122123 .
20.Преобразовать к десятично-буквенной записи:
0x31АAА0, 0xАFFFAA, 0x221221222.
Определить размер области памяти с границами 332A:FA20 и 9AAD:D11F.
21.Вычислить в побитовом виде:
30+20 в одном байте.
-30 + 100 в одном байте.
220-330 в двух байтах.
Преобразовать логический адрес AFDA:3333 к нормализованной форме.
22.Преобразовать в другую СС:
2330 в шестнадцатеричную СС.
0хA33FAA в восьмеричную СС.
1421 в двоичную СС.
1024 в шестнадцатеричную СС.
23.Показать ошибочность операций:
110 + 100 в одном байте со знаком.
- 90 - 110 в одном байте со знаком.
0xAAAA + 0xDDDD в двух байтах без знака.
24.Характеристики вещественных типов
Несуществующий вещественный тип doom занимает 20 байтов, порядок – 8 байтов. Найти машинный ноль, машинный епсилон, точность и диапазон этого типа.
25.ASCII-таблица:
Закодировать десятичными числами фразу «Полёт на Марс».
Записать математическую формулу для преобразования больших русских букв в малые.
26.Схемы алгоритмов:
С клавиатуры вводится число N. Вывести на экран все простые числа до N.
Проверить, есть ли в матрице A[k][n] столбец, равный какому-нибудь столбцу матрицы B[k][m].
Вариант 3
26.1.Преобразовать в десятичную СС:
11011110002 .
43218 .
211023 .
26.2.Преобразовать к десятично-буквенной записи:
0xFFАAА0, 0x11FFFAA, 0x221212100.
Определить размер области памяти с границами 13FA:F220 и EAAD:DAAF.
26.3.Вычислить в побитовом виде:
50 + 40 в одном байте.
-20 + 80 в одном байте.
200 -130 в двух байтах.
Преобразовать логический адрес AF0A:3FFF к нормализованной форме.
26.4.Преобразовать в другую СС:
930 в шестнадцатеричную СС.
0хFFF0AA в восьмеричную СС.
2007 в двоичную СС.
2048 в шестнадцатеричную СС.
26.5.Показать ошибочность операций:
20 + 120 в одном байте со знаком.
- 100 - 110 в одном байте со знаком.
0x9AAA + 0xAAAA в двух байтах без знака.
26.6.Характеристики вещественных типов
Несуществующий вещественный тип doom занимает 30 байтов, порядок – 6 байтов. Найти машинный ноль, машинный епсилон, точность и диапазон этого типа.
26.7.ASCII-таблица:
Закодировать десятичными числами фразу «1+2=3».
Записать математическую формулу для проверки, содержит ли переменная x русскую букву.
26.8.Схемы алгоритмов:
Определить количество наибольших чисел в одномерном числовом массиве.
Проверить, есть ли в матрице A[k][n] строка, равная какой-нибудь строке матрицы B[m][n].
Вариант 4
26.9.Преобразовать в десятичную СС:
10000110002 .
11118 .
100023 .
26.10.Преобразовать к десятично-буквенной записи:
0xFА120, 0x352FFAA, 0x120112100.
Определить размер области памяти с границами 13FA:12F0 и DAAD:DAAD.
26.11.Вычислить в побитовом виде:
30 + 70 в одном байте.
-10 + 80 в одном байте.
200 -100 в двух байтах.
Преобразовать логический адрес A00A:30FF к нормализованной форме.
26.12.Преобразовать в другую СС:
1234 в шестнадцатеричную СС.
0хFFF0AA в восьмеричную СС.
2007 в двоичную СС.
2048 в шестнадцатеричную СС.
26.13.Показать ошибочность операций:
20 + 120 в одном байте со знаком.
- 100 - 110 в одном байте со знаком.
0x9AAA + 0xAAAA в двух байтах без знака.
26.14.Характеристики вещественных типов
Несуществующий вещественный тип doom занимает 30 байтов. Точность мантиссы – не менее 20 десятичных знаков. Найти размер порядка в битах, машинный ноль, машинный епсилон и диапазон этого типа.
26.15.ASCII-таблица:
Закодировать десятичными числами фразу «\nHello, World!».
Записать математическую формулу для проверки, содержит ли переменная x английскую букву.
26.16.Схемы алгоритмов:
Определить количество совпадающих пар в двух одномерных числовых массивах.
Умножить матрицу A[k][n] на вектор x[n].
27.Дополнительные задания
27.1.Неизбежное округление
Показать, что десятичное число 0,2 не представимо точно в виде конечной двоичной дроби.
27.2.Правила деления
Найти и доказать правила деления шестнадцатеричных чисел на 2, на 3, на 5.
27.3.Сортировка
Нарисовать схему алгоритма для сортировки массива по возрастанию методом пузырька.
27.4.* Килобайт
На олимпиаде 2003 года для студентов специальности 220100 –ВМКСС была предложена следующая задача.
Можно считать, что каждое десятилетие в компьютерной технике становятся популярными новые единицы измерения. В 80-е годы это – килобайты, в 90-е мегабайты, в 2000-е гигабайты и т.д. С их помощью задаются хорошо знакомые величины 64 Кб, 4 Мб, 4 Гб и др.
В каком десятилетии появится аналогичная единица измерения Х, для которой величина nX, где n = 2m, 0 ≤ m ≤ 9, будет оканчиваться на число 024, так же как килобайт (210 байт)?
