Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ПСРВ.doc
Скачиваний:
26
Добавлен:
12.02.2016
Размер:
1.6 Mб
Скачать

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