МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСТИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра інформаційних
систем та мереж
Лабораторна робота №3
на тему:
«Базові типи даних. Бібліотечні функції форматованого введення даних з клавіатури та виведення результатів на екран»
Львів - 2009
Тема роботи: Базові типи даних. Бібліотечні функції форматованого введення даних з клавіатури та виведення результатів на екран.
Мета роботи: вивчити правила оголошення змінних базових типів даних та бібліотечні функції форматованого введення даних з клавіатури та виведення їх на екран.
Методичні вказівки:
Для введення-виведення даних необхідно підключити файл-заголовок stdio.h . Підключення відбувається за допомогою директиви препроцесора #include:
#include <stdio.h>
Форматоване введення даних відбувається за допомогою функції scanf, прототип якої має такий вигляд:
int scanf (const char *format [, address, ...]);
де format – форматний рядок, address – адреси змінних, значення яких вводиться з клавіатури.
Форматний рядок функції scanf складається із специфікацій форматів. Специфікація форматованого введення даних за допомогою функції scanf має вигляд:
% [flag] [width] [size_modifier] type_char
де flag =‘*’ - позначає пропуск введення поля даних із вхідного потоку;
width – кількість символів, які будуть прочитані із вхідного потоку;
size_modifier ={F|N|h|l|L}– модифікатор розміру типу;
type_char ={d|D|i|I|o|O|u|U|x|X|f|e|g|E|G|c|s}– символ типу.
Приклад оголошення та введення даних:
char a; int b; long c; float d; double e;
scanf(“%c %d %ld %f %lf”,&a, &b, &c, &d, &e);
Форматоване виведення даних відбувається за допомогою функції printf, прототип якої має такий вигляд:
int printf (const char *format [, argument, ...]);
де format – форматний рядок, argument – зміні або вирази, значення яких виводиться на екран.
Форматний рядок функції printf складається із специфікацій форматів. Специфікація форматованого виводу має вигляд:
% [flags] [width] [.prec] [size_modifier] type_char
де flags={-,+|пропуск, #} – набір прапорців, що визначають вирівнювання виводу, форму виводу знаку числа та наявність префіксу для цілих чисел у вісімковій та шістнадцятковій системах числення;
width ={n|0n|*}– ширина поля виводу; тут n позначає ціле число;
prec ={none|0|n|*}– точність виводу чисел та рядків символів; тут none позначає відсутність позначення точності, а n – ціле число;
size_modifier ={F|N|h|l|L}– модифікатор розміру типу;
type_char ={d|i|o|u|x|X|f|e|g|E|G|c|s}– символ типу.
Приклад виведення даних:
char a=’*’; int b=-25; long c=0xFC5B4E; float d=3.14159; double e=12345.678E-3;
printf(“%2c %4d %12ld %8.4f %14.5lE”, a, b, c, d, e);
У кожному завданні необхідно:
виконати введення вказаних у варіанті завдання (табл. 1) даних згідно із заданими оголошеннями та специфікаціями форматів; вхідні дані необхідно задавати в одному рядку; розділення даних виконувати вказаними у специфікаціях форматів символами або пропусками;
введення даних та виведення результатів роботи програми необхідно супроводжувати відповідними текстовими повідомленнями;
виділити складові частини специфікацій форматів і пояснити їх призначення;
побудувати специфікації форматів для ехо-виводу на екран введених даних;
порівняти задані значення даних з отриманими на екрані; знайти причину виявлених помилок або розбіжностей; змінити специфікації форматів на правильні; повторити введення та ехо-виведення заданих даних;
виконати виведення вказаних у варіанті завдання (табл. 2) оголошених даних згідно із заданих специфікацій форматів;
виділити складові частини специфікацій форматів і проаналізувати результати виводу на екран.
Варіанти індивідуальних завдань:
Введення даних функцією scanf()
19
char a;
long b;
int c;
char d[20];
d, 0xa5b8ef 0402: ABCDEF
"%c,%12ld %o:%4s"
#include<stdio.h>
void main()
{
char a;
long b;
int c;
char d[20];
scanf("%c, %12ld %o: %4s",&a,&b,&c,&d);
}
Виведення даних функцією printf()
19
int a=-178;
long b=-75854;
int c=0x181;
unsigned long
d=0xffffe2ff; short d=131;
12, 4, a, 6, b, c, d
"\ta=%+*.*x\tb=%#-12.*ld\a c=%#-010.0x
d=%#-9.2lX"
#include<stdio.h>
#include<conio.h>
void main()
{
int a=-178;
long b=-75854;
int c=0x181;
unsigned long
d=0xffffe2ff;
clrscr();
printf("\ta=%+*.*x\tb=%#-12.*ld\a c=%#-010.0x d=%#-9.2lX", 12, 4, a, 6, b, c, d);
getch();
}
Висновок: На цій лабораторній роботі я вивчив правила оголошення змінних базових типів даних та опанував бібліотечні функції форматованого введення даних з клавіатури та виведення їх на екран.