Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Method_Lab_Work_ANSI_C__2010_lab1-10_v2.doc
Скачиваний:
39
Добавлен:
22.11.2018
Размер:
1.14 Mб
Скачать

Міністерство освіти і науки України

Національний технічний університет України

“Київський політехнічний інститут”

Кафедра автоматизованих систем обробки інформації та управління

Процедурно-орієнтоване програмування мовами С/С++

Методичні вказівки до лабораторних занять

з дисципліни “Алгоритмізація та програмування”

для студентів напряму “Комп’ютерні науки”

спеціальності

“Інформаційні управляючі системи та технології”

Київ 2010

Типи даних. Функції введення - виведення. Обчислення виразів Лабораторна робота 1

Мета роботи.

  1. Вивчити особливості використання вбудованих типів даних: char, int, long, short, float, double, unsigned char, unsigned int, unsigned long.

  2. Вивчити особливості використання функцій введення - виведення.

  3. Навчитися застосовувати стандартні математичні функції.

1.1 Теоретичні відомості

1.1.1. Структура програми

Програма складається з директив препроцесора, функцій, зовнішніх описів програми, коментарів.

Препроцесор - програма, що є складовою частиною компілятора і виконує підключення стандартних або особистих файлів користувача до основної програми, формування макровизначень, умовну компіляцію тощо.

Розрізняють директиви:

включення

#include <ім’я.h > #include "ім’я.h"

макровизначення

#define ім’я значення

умовної компіляції

#if вираз #else #elif вираз #endif

Директива формату #include <ім’я.h> використовується для включення стандартних файлів заголовків з каталогу include до програми користувача. Ці файли містять прототипи функцій, які користувач може використовувати у власній програмі як стандартні функції.

Директива формату #include "ім’я.h" використовується для включення власних файлів користувача до поточного коду.

1.1.2 Структура функцій програми

Функція - це іменована частина програми, що виконує логічно завершений набір дій та може викликатися з будь-якого місця програми, якщо це відповідає синтаксису програми. Функція складається з заголовка і тіла. Формат функції такий:

тип_ значення _що_повертається ім’я_функції (параметри) //заголовок { // тіло функції }

Одна з функцій програми має ім’я main(). Ця функція є точкою входу до програми. З цієї функції починається виконання програми. Якщо параметри відсутні, то в заголовку функції записуються тільки круглі дужки. Наприклад,

тип_ значення _що_повертається main() { ... //тіло функції }

Тіло функції містить оголошення констант, змінних і оператори відповідно до алгоритму. Оголошення можуть бути в довільному місці, але до першого звертання до змінної.

1.1.3 Правила синтаксису

{ } - операторні дужки. Вони об’єднують декілька операторів в один блок, визначають початок і кінець блоку та функції;

; - кінець оператора;

, - роздільник при перерахуванні програмних об’єктів;

( ) - містять параметри функцій або умови логічних та циклічних операторів;

/* */ - містять коментар, що розміщується на декількох рядках;

// - коментар, що розміщується в одному рядку, використовується в С++.

1.1.4. Типи даних

Усі дані поділяються на змінні та константи. Кожна змінна має свій ідентифікатор або своє ім’я. Кожне ім’я змінної відповідає певній області оперативної пам’яті комп’ютера. Кожна змінна характеризується іменем, типом, обсягом оперативної пам’яті та діапазоном значень.

Таблиця 1.1 Характеристика типів змінних

Тип

Назва типу

Обсяг оперативної пам’яті

Діапазон значень

сhar

Цілий тип

8 бітів

-128 ... +127

signed char

Цілий із знаком

8 бітів

-128 ... +127

unsigned char

Без знаковий цілий

8 бітів

0 ... 255

short int

Цілий короткий

16 бітів

-32768 ... +32767

unsigned int

Без знаковий цілий

32 бітів

0 ... 65535

int

Цілий

32 бітів

-2147483648 …+2147483647

long int

Цілий довгий

32 бітів

-2147483648 …+2147483647

unsigned long

Цілий довгий без знаковий

32 бітів

0 ... +429496729

float

З плаваючою крапкою

32 бітів

3.4 *10^38 …

3.4 *10^-38

double

З плаваючою крапкою довгий

64 бітів

1.7 *10^-308 …

1.7 *10^308

long double

З плаваючою крапкою довгий

80 бітів

3.4 *10^-4932 …

3.4 *10^4932

Приклад оголошення змінних:

int a; float b,c; char litera; int index=1;

1.1.5. Функції введення та виведення даних

Для виконання дій над даними користувача необхідно їх ввести з клавіатури. Для цього використовується стандартний потік вводу stdin. Для відображення результатів на екрані необхідно застосовувати стандартний потік виводу stdout. Введення та виведення даних здійснюється за допомогою функцій введення та виведення, формати яких приведені у таблиці 1.2.

Таблиця 1.2 Функції введення та виведення

Функція

Формат введення та виведення

Призначення

Приклад

Заголовний файл

Результат, що

повертається функцією

_сprintf()

int _cprintf ( формат, apг1, apг2, ...)

Виведення на консоль значень аргументів згідно з форматом виведення.

int с; _cprint("%d",c);

сonio.h

Значення типу int, дорівнює кількості виведених символів

_cscanf()

int _cscanf (формат, арг1,aрг2,...)

Введення з консолі значень змінних згідно з форматом і присвоєння значень аргументам. Аргументами є адреси змінних в оперативній пам’яті.

int a; char NAME[5];

_cscanf ("%s", Name);

_cscanf ("%d", &a);

сonio.h

Значення типу int дорівнює кількості змінних, що отримали значення. При невдалому скануванні повертається значення EOF

_cputs()

int _cputs (const char *str);

Виведення на консоль рядка символів. Не додається символ кінця рядка ‘\0’. Borland C++ використовує cputs()

char NAME[5]; _cputs(NAME);

_cputs("Hello");

conio.h

У випадку успіху повертається 0

_cgets()

char *_cgets (char *str);

Введення з консолі послідовності символів до символу “кінець рядка” (‘\0’),

char a[5]; _cgets(a);

conio.h

Значення типу int, що дорівнює покажчику на символ з індексом 2 (str[2]).

getch()

int getch(void);

Введення символу з консолі без відображення на екрані. Не використовується для Win32.

int c; c=getch();

conio.h

Код введеного з клавіатури символу

putch()

int putch(int c);

Виведення на консоль символу. Не використовується для Win32

putch('В’); putch(getch());

conio.h

Повертається надрукований символ або значення EOF при невдалому виведенні.

getchar()

int getchar(void);

Введення символу із стандартного вхідного файлу stdin.

int ch; ch=getchar();

stdio.h

Повертається код введеного символу або значення EOF

putchar()

int putchar(int c);

Виведення у стандартний вихідний файл stdout символу.

putchar(getch());

stdio.h

Повертається символ або значення EOF при невдалому виводу

gets()

char *gets ( char *s);

Введення із стандартного вхідного файлу stdin рядка і розміщення його по покажчику *s

char line[80]; gets(line);

stdio.h

Покажчик на перший символ рядка або NULL при невдалому введенні

puts()

int puts (const char *s);

Виведення у стандартний вихідний файл stdout рядка і доповнення його символом нового рядка ‘\n’

char b[80]; puts(b);

stdio.h

Повертається невід’ємне значення або EOF при невдалому виведенні

printf()

int printf (const char *format, argument, ...);

Виведення у стандартний вихідний файл stdout значень аргументів згідно з форматом виведення

int a; float b;

char str[10];

printf("%d %f %s", a.b.str);

stdio.h

Повертається кількість виведених байтів або від’ємне значення при невдалому виведенні

scanf()

int scanf (const char *format, address, ...);

Введення із стандартного вхідного файлу значень змінних згідно з форматом і розміщення їх за вказаними адресами у оперативній пам’яті.

char AME[20];

int a; scanf("%s", AME); scanf("%d", &a);

stdio.h

Повертається кількість змінних, що отримали значення. При невдалому скануванні повертається значення EOF

sprintf()

int sprintf (char *str, const char *format, argument, ...);

Розміщення у рядку символів значень аргументів із пам’яті згідно з шаблоном. Використовується для перетворення типів даних

char str[3]

sprintf(str,"%d", 13);

stdio.h

Повертається кількість виведених символів.

sscanf()

sscanf (рядок, формат, арг1, ...);

Читання із рядка у адреси пам’яті згідно з форматом шаблонів. Використовується для перетворення типів

int a; float b;

char str[5]; sscanf(str,"%d%f", &a, &b);

stdio.h

Повертається кількість введених символів або EOF при невдалому введенні

Специфікації форматів, що використовуються у функціях форматного введення та виведення даних, приводяться у табл. 1.3.

Таблиця 1.3. Специфікації форматів

Функція

Формат

scanf()

%[*] [ширина] тип

printf()

% [прапорець] [ширина] [.точність] тип

Значення полів формату:

% - символ формату.

* - ігнорується поле вводу, дані не зберігаються.

тип - символ, який визначає типи даних, що вводяться та виводяться.

прапорець - символи, які управляють вирівнюванням виводу знаків, пропусків, десяткових точок, восьмирічних та шістнадцятирічних префіксів.

ширина - параметр, який визначає мінімальне число виводу символів.

точність – параметр, який визначає максимальне число символів, що друкуються для цілих чисел, та кількість цифр після десяткової точки для даних типу float, double.

Таблиця 1.4 Специфікації деяких типів

Символ формату

Тип аргументу

c

char

d

int

i

int (десятковий, восьмирічний, шістнадцятирічний)

e, f

float, double

s

Рядок символів

n

Покажчик на цілий тип

p

Покажчик на тип void (задає сегмент та зміщення)

Специфікації прапорців у функціях форматного виведення

+

Виведення знаків +/-, якщо використовується знаковий тип

-

Вирівнювання даних зліва

Таблиця 1.5 Використання класів потоків для операцій вводу, виводу

Формат

Призначення

Приклад

Заголовний файл

cin >>

Зумовлений потік введення, >> - операція правого зсуву

char Name[20];

cin >> Name;

istream

iostream

cout <<

Зумовлений потік виведення, << - операція лівого зсуву

int c; char f;

cout<< “Hello”;

cout<<c<<f;

ostream iostream

Таблиця 1.6 Математичні функції

Функція

Призначення

Приклад

Бібліотека

Тип

abs

Модуль аргументу

abs(c); abs(-b);

stdlib.h

int

acos

Арккосинус

acos(0.5)

math.h

double

asin

Арксинус

asin(1);

math.h

double

atan

Арктангенс

atan(1.0);

math.h

double

cos

Косинус

cos(3.14);

math.h

double

exp

Експонента

exp(1);

math.h

double

log

Натуральний логарифм

log(exp(3)

math.h

double

log10

Десятковий логарифм

log10(100)

math.h

double

pow

Ступінь числа x^y

pow(x,y)

math.h

double

sin

Синус

sin(3.1/6)

math.h

double

sqrt

Корінь квадратний

sqrt(144)

math.h

double

tan

Тангенс

tan(3.1/4)

math.h

double

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