- •Министерство образования и науки Украины
- •Практическое занятие №1
- •1.1. Сокращенная запись двоичных чисел в восьмеричной и шестнадцатеричной системах счисления
- •1.2. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные
- •1.3. Преобразование двоичных, восьмеричных и шестнадцатеричных чисел в десятичные
- •1.4. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №2
- •1.1. Вход в систему
- •1.2. Редактирование командной строки
- •1.3. Память командных строк
- •1.4. Переключение виртуальных консолей
- •1.5. Изменение консольных шрифтов
- •1.6. Основные команды
- •Выполнение некоторых команд
- •2. Команда просмотра содержимого каталогов -ls (LiSt) – выдает на экран перечень файлов и каталогов (по умолчанию из текущего каталога).
- •Жесткая ссылка обозначает ся так же, как файл, на который она ссылается, счетчик ссылок при этом будет иметь значение больше 1.
- •3. Команда создание новых каталогов - mkdir.
- •5. Команда копирование файлов -cp (CoPy).
- •6. Команда перемещение файлов - mv (MoVe).
- •7. Команда удаление файлов - rm (ReMove).
- •8. Команды просмотра содержимого файлов more и cat.
- •Подстановочные символы
- •1.7. Выход из системы
- •2. Упражнения
- •Используя справочную информацию из п.1.6 Основные команды, изучите работу рассмотренных команд с различными параметрами и опциями:
- •1.2. Перенаправление ввода и вывода
- •1.3. Перенаправление с добавлением
- •1.4. Использование конвейера
- •2. Упражнения
- •3. Содержание отчёта
- •Справочная информация
- •Практическое занятие №4 Псевдонимы команд в ос qnx Цель – создание псевдонимов команд для облегчения работы в среде ос qnx
- •1. Краткие теоретические сведения
- •1.1. Управление связями файлов
- •1.2. Жесткие связи
- •1.3. Символические связи
- •1.4. Права доступа к файлам
- •1.5. Зависимости
- •1.6. Изменение прав доступа
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Сравнение файлов (команда diff)
- •1.3. Подсчет числа слов, строк и байт в файле (команда wc)
- •1.4. Потоковый редактор sed
- •2. Упражнения
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •/Usr/xpg4/bin/grep
- •Операнды
- •/Usr/bin/grep
- •/Usr/xpg4/bin/grep
- •Использование
- •Работа с большими файлами
- •/Usr/bin/who
- •/Usr/xpg4/bin/who
- •Операнды
- •1.1. Ввод текста
- •1.2. Редактирование текста
- •1.3. Сохранение файлов и выход из VI
- •1.4. Редактирование еще одного файла
- •1.5. Включение других файлов
- •1.6. Выполнение команд Shell
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №7 Работа с текстовыми файлами Цель – знакомство с командами, работающими с текстовыми файлами (awk-интерпретатор скриптовый)
- •1. Краткие теоретические сведения
- •1.1. Язык awk
- •1.2. Регулярные выражения
- •Метасимволы, используемые в регулярных выражениях
- •1.3. Действия
- •1.4. Awk-переменные и выражения
- •1.5. Использование операций
- •1.6. Использование массивов
- •1.7. Селекторы
- •1.8. Использование операторов
- •1.9. Ввод и вывод данных
- •1.10. Встроенные функции
- •2. Упражнения
- •Структура файла query1
- •Структура файла query2
- •3. Содержание отчёта
- •1.2. Граматика языка shell
- •2. Упражнения
- •3. Содержание отчёта
- •Выполнить:
- •2. Упражнения
- •Примечание:
- •3. Содержание отчёта
- •1.1. Компоновка объектных модулей
- •1.2. Отладка
- •2. Упражнения
- •Задание №1
- •Задание №2
- •Задание №3
- •Задание №4
- •Задание №5
- •Задание №6
- •Задание №13
- •Задание №14
- •Задание №15
- •Задание №16
- •Задание №17
- •Практическое занятие №11
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Создание каталога
- •1.3. Биты режима для прав доступа
- •1.4. Удаление каталога
- •1.5. Создание жесткой связи
- •1.6. Создание символической связи
- •1.7. Чтение символической связи
- •1.8. Переименование файла
- •1.9. Удаление файла
- •1.10. Обработка ошибок
- •2. Упражнения
- •3. Содержание отчёта
- •1.2. Проверка возможностей управления работой и процессами в shell
- •2. Упражнения
- •3. Содержание отчёта
- •1.3. Ошибки, связанные с именами файлов
- •1.4. Доступ к файлу
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №15 Организация процессов вQnx
- •1. Методические указания по выполнению практической работы
- •1.1. Файл main.O
- •1.2. Файл input.C
- •1.3. Файл output.C
- •1.4. Файл process.C
- •1.5. Используемые функции
- •1.6. Получение информации о процессах
- •2. Упражнения
- •1.2. Клиент
- •1.3. Определение идентификаторов узла, процесса и канала (nd/pid/chid) нужного сервера
- •1.4. Применение обмена сообщениями
- •2. Упражнения
- •3. Содержание отчёта
- •Практическое занятие №17 Организация потоков в qnx
- •1. Краткие теоретические сведения
- •1.1. Запуск потока
- •1.2. Администрирование атрибутов потока
- •Текст программы
- •Результаты
- •1.2. Текст программы
- •1.3. Последовательность действий
- •1.4. Результаты
- •2. Упражнения
- •3. Содержание отчёта
1.2. Отладка
В качестве средства отладки программ QNX включает в себя отладчик gdb. Это программа, под управлением которой можно запустить исполняемый модуль программы. Чтобы можно было воспользоваться отладчиком, необходимо скомпилировать программу с включением в неё отладочной информации. Этой цели служит опция "-g" компилятора. В результате компилятор включает дополнительную информацию в объектные и исполняемые модули, позволяющую связать исходный текст программы с исполняемым модулем.
Чтобы воспользоваться отладчиком gdb, его необходимо запустить, указав в качестве аргумента имя исполняемого модуля:
# gdb <имя модуля>
После запуска появляется строка приглашения для ввода команд отладчика:
(gdb)
Перечислим наиболее ходовые команды отладчика:
run - запустить исполняемый модуль.
where - показать содержимое стека.
up -движение вверх по стеку.
print - показать значение переменной.
break - установить контрольную точку (точка остановки).
next - перейти после остановки на следующую строку.
step - войти внутрь функции.
Например, запуск исполняемого модуля осуществляется командой:
(gdb)run
Подробную информацию о командах отладчика можно получить с помощью команды help. Например:
(gdb) help run
2. Упражнения
Перед выполнением полученного задания необходимо внимательно изучить следующие стандартные функции языка Си:
-
getchar()
gets()
puts()
Realloc()
malloc()
strtok()
strstr()
strchr()
strrev()
strcat()
strcpy()
strcmp()
strdup()
strlen()
strncmp()
free()
B соответствие с заданием написать программу, максимально используя при программировании указанные выше функции.
Для отчета по работе требуется представить:
результат ее выполнения на компьютере в среде операционной системы QNX;
распечатанный текст программы на языке Си.
Задание №1
В соответствие с вариантом реализовать на языке Си программу (lab1_1.c) расчета значения функции.
Пример файла lab1_1.c для функции
#include <stdio.h>
#include <math.h>
int main() {
double x, y, t;
t = 0.5;
x = sin(t);
y = exp(t) * sqrt(x);
printf(“t=%f\tx=%f\ty=%f\n”, t, x, y);
return 0;
}
Задание №2
На базе задания №1 создать программу (lab1_2.c) расчета значений функции на заданном интервале с заданным шагом и вывода результатов в табличном виде. Построить график функции.
№ вар. |
Интервал/шаг |
№ вар. |
Интервал/шаг |
1 |
[0.1, 0.3] / 0.01 |
2 |
[0.39, 0.43] / 0.002 |
3 |
[2.5, 2.9] / 0.02 |
4 |
[0.1, 1.1] / 0.05 |
5 |
[9, 13] / 0.2 |
6 |
[0.05, 1.05] / 0.05 |
7 |
[1.1, 1.3] / 0.01 |
8 |
[0.2, 0.6] / 0.02 |
9 |
[1.9, 2.3] / 0.02 |
10 |
[1.0, 1.6] / 0.03 |
Пример файла lab1_2.c для функции для интервала [0, 2] с шагом 0.1
#include <stdio.h>
#include <math.h>
int main() {
double x, y, t;
for(t = 0; t <= 2; t = t + 0.1) {
x = sin(t);
y = exp(t) * sqrt(x);
printf(“t=%f\tx=%f\ty=%f\n”, t, x, y);
}
return 0;
}
№ вар. |
Вычислить выражение |
При заданных значениях |
1 | ||
2 | ||
3 | ||
4 | ||
5 | ||
6 | ||
7 | ||
8 | ||
9 | ||
10 |