Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab1-10.doc
Скачиваний:
37
Добавлен:
12.05.2015
Размер:
425.98 Кб
Скачать

3.13. Стандартная библиотека языка c

Стандартная библиотека языка Cразбита по группам функций, например, математические функции, функции ввода-вывода и т.д. Вызов необходимой для использования в конкретной программе группы функций осуществляется по директиве препроцессора #include, имеющий следующий формат:

#include <головной-файл>

где головной-файл – имя головного файла для группы функций (например,math.hдля математических функций).

Оператор #includeдля группы функций должен быть задан до их использования в программе (принято обычно все операторы#includeдля вызова разделов библиотек размещать в самом начале программы).

3.14. Форматный вывод данных в c

Функции ввода-вывода определены в головном файле stdio.h.

Функция форматного вывода printf() стандартной библиотекиCвыводит символы и формирует и выводит задаваемые аргументами значения на дисплей. Функция имеет переменное число аргументов и вызывается следующим образом:

printf("строка-формата" [, аргумент-1 [,аргумент-2...]])

где строка-формата – символьная строка, состоящая из обычных символов, специальных символов и, если за строкой формата следует один или несколько аргументов, спецификаций полей формата вывода (по одному для каждого аргумента).

Простая спецификация формата содержит только символ "%" и символ выводимого типа. Основные символы типов приведены в следующей таблице:

Сим-вол

типа

Тип

аргумента

Вид печати

d

int

Десятичное целое число.

i

int signed

Десятичное целое число со знаком.

u

int unsigned

Десятичное целое число без знака

o

int

Восьмеричное число без знака (без 0в начале числа).

x, X

int

Шестнадцатеричное число без знака (без 0xили0Xв начале).

c

int или char

Единичный символ после преобразования в unsigned char.

s

char *

Строка символов.

f

floatили double

Десятичное число с точкой и со знаком "-" (если число отрицательное).

e, E

floatили double

Десятичное число в экспоненциальной форме (целая часть, дробная часть и, после eилиE показатель степени со знаком).

g, G

float; double

В зависимости от величины и точности числа выводится либо по типу f, либо по типамeилиE.

%

%

Выводится символ "%".

Если число спецификаций формата больше числа аргументов, излишние спецификации игнорируются. В обратном случае результат вывода не определен.

4. Порядок выполнения работы

  1. Скопируйте в свою папку программу LAB10.Cиз папкиC Examplesв папкеРабочая папка.

  2. Запустите Dev-C++ для программыLAB10.C.

  3. Программа определяет наибольший общий делитель для натуральных (целых) чисел mиnс использованием следующего алгоритма:

    1. Ввод чисел mиn.

    2. Присваивание переменной x1значения переменнойm, а переменнойx2– значения переменнойn.

    3. Если значения переменных x1иx2равны друг другу, вывод значенийm,nиx1, а затем выход из программы, иначе выполнение пунктов 4-5.

    4. Если x1большеx2, уменьшить значениеx1на значениеx2, иначе уменьшить значениеx2на значениеx1.

    5. Переход к пункту 3.

  4. Найдите в тексте программы оператор intи получите по нему справку. Откройте текстовый редакторБлокноти скопируйте в его окно содержимое справки с заголовком "Ключевое словоint".

  5. Найдите в тексте программы оператор returnи получите по нему справку.Скопируйте в окно текстового редактораБлокнотсодержимое справки с заголовком "Ключевое словоreturn".

  6. Найдите в тексте программы функцию printf()и получите по ней справку. Скопируйте в окно текстового редактораБлокнотсодержимое справки (до пунктаMore About printf) с заголовком "Функцияprintf()".

  7. Найдите в тексте программы функцию getchar()и получите по ней справку. Скопируйте в окно текстового редактораБлокнотсодержимое справки (до пунктаMore About printf) с заголовком "Функцияgetchar()".

  8. Запустите программу на выполнение (программа содержит ошибку). Найдите строку с ошибкой и исправьте ошибку (xx1наx1).

  9. Повторно запустите программу на выполнение. Введите значения тестовые значения mиn:42и28. Обратите внимание, что программа работает неправильно (наибольшим общим делителем чисел42и28на самом деле является число14).

  10. Запустите программу в режиме отладки. Установите точку прерывания на десятой строке программы – операторе:

printf("\nProgram start);

  1. Задайте переменные x1иx2как наблюдаемые и проверьте их значения в точке прерывания.

  2. Продолжите выполнения программы по шагам до оператора

printf ("\nThe greatest common divisor %d and %d: %d\n",m,n,x1);

  1. Проверьте значение переменных в этой точке и выясните, почему значение x1стало неверным (обратите внимание на операторifв строке 12).

  2. Исправьте ошибку в программе и заново запустите программу с теми же тестовыми значениями в режиме отладки с той же точки прерывания с пошаговым выполнением.Убедитесь, что программа выдает правильное значение наибольшего общего делителя.

  3. Заново запустите программу на выполнение со следующими двумя числами для своего варианта: 1) 121и44; 2)108и24; 3)144и56; 4)136и48; 5)192и36; 6)168и98; 7)176и66; 8)78и144; 9)374и68; 10)372и48; 11)98и42; 12)256и48; 13)714и98; 14)248и64; 15)372и84.

  4. Покажите преподавателю программу и результаты ее работы и скопируйте текст программы и результат работы программы в окно текстового редактора Блокнотс заголовками "Текст программы LAB10.C" и "Результат работы программы LAB10.C".

  5. Напишите программу (имя программы латинскими буквами) в соответствии со своим вариантом, а затем выполните ее отладку и тестирование (задание значений – с помощью операции присваивание, вывод результатов – с помощью функции printf()):

Номер варианта

Исходные данные

Операция

Вывод

Имя

Тип

Значение

1

x1

double

3.5

xравен целой частиx1+x2

x1, x2 и x

x2

double

-1.8

x

double

--

2

x1

double

8.4

xравен дробной частиx1+x2

x1, x2 и x

x2

double

-1.3

x

double

--

3

i

double

8.7

xравен целой частиi*j

i, j и x

j

double

-12

x

double

--

4

u1

double

13.3

uравен дробной частиu1*u2

u1, u2 и u

u2

double

-7.8

u

double

--

5

a1

double

-7.8

aравен целой частиa1/a2

a1, a2 и a

a2

double

-4.3

a

double

--

6

b1

double

14.6

bравен дробной частиb1/b2

b1, b2 и b

b2

double

5.7

b

double

--

7

w1

double

118.6

w=w1+ целая частьw2

w1, w2 и w

w2

double

1.52·102

w

double

--

8

i1

int

15

z=i1/i2(результат- вещественное число)

i1, i2 и z

i2

int

6

z

double

--

9

d1

double

18.3

dравен остатку отd1/d2

d1, d2 и d

d2

double

4.8

d

double

--

10

y

int

8

y1=y++ +5

y=8

y2=++y +5

y, y1 и y2

y1

int

--

y2

int

--

Номер варианта

Исходные данные

Операция

Вывод

Имя

Тип

Значение

11

t

int

14

t1=t-- +7

t=14

t2=--t +7

t, t1 и t2

t1

int

--

t2

int

--

12

v1

double

14.3

vравно значению первой цифры после десятичной точки вv1/v2

v1, v2, v1/v2 и v

v2

double

3.1

v

int

--

13

s1

double

144.2

sравно значению первой цифры в целой частиs1/s2

s1, s2, s1/s2 и s

s2

double

7.3

s

int

--

14

a1

int

1

Условная операция: если x>0, тоy=a1, иначеy=a2

x, a1, a2 и y

a2

int

-1

x

int

-3

y

int

--

15

g1

int

0

Условная операция: если g – четное, тоz=g1, иначеz=g2

g, g1, g2 и z

g2

int

1

g

int

4

z

int

--

  1. Покажите преподавателю программу и результаты ее работы и скопируйте текст программы и результат работы программы в окно текстового редактора Блокнотс заголовками "Текст программы имя-программы" и "Результат работы программы имя-программы".

  2. Скопируйте полученный в окне текстового редактора Блокнотдокумент на свою дискету или флэш-карту.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]