17095

Функції введення/виведення printf(), scanf().Лінійні обчислювальні процеси

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторна робота № 7 Тема: Функції введення/виведення printf scanf.Лінійні обчислювальні процеси Ціль роботи: Вивчити формати оголошень і роботу основних функцій уведення/виведення інформації. Навчитися складати прості програми з лінійним обчислювальним процесом. О...

Украинкский

2013-06-29

99.5 KB

3 чел.


Лабораторна робота № 7

Тема: Функції введення/виведення printf(), scanf().Лінійні обчислювальні процеси

Ціль роботи: Вивчити формати оголошень і роботу основних функцій уведення/виведення інформації. Навчитися складати прості програми з лінійним обчислювальним процесом.

Обладнання: ПК,ПО Borland C++

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

Однієї з основних задач при програмуванні  є введення і виведення даних. У С для цього застосовують ряд функцій printf(), scanf(), cprintf(), ecvt(), fprintf(), fread(), fscanf(), hutc(), puts(), putw(), sprintf(), vprintf(). Функція printf() здійснює форматированє виведення у потік stdout. Оголошення функції знаходиться в заголовному файлі <stdio.h>.

Синтаксис оголошення функції

printf() #includ <stdio.h> printf (const char* format [,argument,…]);

У дужках [ ] зазначені необов'язкові елементи специфікації.

Специфікація формату, що визначає виведення аргументів, має вид:

 %[flags] [width] [.precision] [F/N/h/l/L] type

Функція scanf() - Здійснює форматированє уведення з потоку stdin

Синтаксис #include <stdio.h>

int scanf(const char *format[,adress, ...]);

Невідображуваними символами є пробіл ( ), символ табуляції (\t), символ переходу на новий рядок (\n) і інші керуючі послідовності. Якщо функція scanf() зустрічає невідображуваний символ у форматному рядку, він буде зчитувати, але не зберігати всю послідовність символів аж до наступного відображуваного символу у вхідному потоці.

Відображуваними символами є всі інші символи коду ASCII, за винятком символу відсотка (%). Якщо функція scanf() зустрічає в рядку формату відображуваний символ, то вона прочитає, і збереже відповідний йому символ.

Специфікації формату наказують функціям scanf() здійснити читання і перетворення символів із вхідного полючи в значення  визначеного типу, потім запам'ятати їх у пам'ять за адресою, зазначеному відповідним адресним аргументом. Завершальний (останній) невідображуваний символ не читається (включаючи символ переходу на новий рядок), якщо тільки він не описаний явно у форматному рядку.

Специфікація формату функції …scanf() має наступний вид

% [*] [widht] [F|N] [h|l|L] <type>

Специфікація формату починається із символу відсотка (%). Після цього символу випливають символи специфікації. Нижче представлене загальний опис рядка формату scanf(), що керує формуванням потоку даних.

Чи символ специфікатор

Чим чи керує що визначає

*- придушення призначення

width – ширина полючи

Size

-

Скасовує присвоювання наступного полючи введення

Максимальне число символів, що зчитуються

Змінює розмір за замовчуванням адресного аргументу

Символи типу

Символ

Очікується на вході  

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

d

D

o

O

i

I

u

U

x

X

e, E

f

g, G

s

c

Десяткове ціле

Десяткове ціле

Восьмеричне ціле

Восьмеричне ціле

Десяткове ціле

Десяткове ціле

Десяткове ціле без знака

Десяткове ціле без знака

Шестнадцатеричне ціле

Шестнадцатеричне ціле

Число з комою, що плаває

Число з комою, що плаває

Число з комою, що плаває

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

Символ

Покажчик на int (int *arg)

Покажчик на long (long *arg)

Покажчик на int (int *arg)

Покажчик на long (long *arg)

Покажчик на int (int *arg)

Покажчик на long (long *arg)

Покажчик на unsigned int (unsigned int *arg)

Покажчик на unsigned long (unsigned long *arg)

Покажчик на int (int *arg)

Покажчик на long (long *arg)

Покажчик на float (float *arg)

Покажчик на float (float *arg)

Покажчик на float (float *arg)

Покажчик на масив символів (char arg[ ])

Покажчик на символ (char *arg)

Приклад

/*    ЗАНЯТТЯ N 2

  Розробив Сидоров К.В.  */

#include <stdio.h> //Директива препроцесора (#include) включає

#include <conio.h> //Заголовні файли з розширенням (.h)

#include <string.h>

  int a;       //Оголошення глобальної перемінної типу int

int main(void)  //Головна функція

 {//Початок складеного оператора (блоку, тіла функції)

  char c,buf[20];       //Оголошення локальних перемінних

  char *pst="\"slovo\"";//Оголошення локальної перемінний c

  float f=26.6;         //ініціалізацією

  double d;

  clrscr();             //Функція очищення екрана

  printf(" Уведення перемінної типу char:   "); //Функція виведення на екран

  fflush(stdin);        //Функція очищення буфера клавіатури

  scanf("%c",&c);       //Функція введення даних,

   // & - операція узяття адреси

  printf("виведення перемінної типу char:  ");

  printf("%c\n",c);

  printf("\n Уведення перемінної типу int:  ");

  scanf("%d",&a);

  printf(" \t виведення перемінної типу int\n");

  printf(" Формат виведення (int): +6d     #6o     #8x\n");

  printf("\t\t     |%+6d|%#6o|%#8x|\n ",a,a,a);

  printf("\n Уведення перемінної типу int:  ");

  scanf("%d",&a);

  printf("\t виведення перемінної типу int\n");

  printf(" Формат виведення (int): -6d     +6d     #8d\n");

  printf("\t\t     |%-6d|%+6d|%#6d|\n",a,a,a);

  printf("\n виведення вихідного рядка:  %s\n\n",pst);

  printf(" Уведення рядка в масив:    ");

  scanf("%s",buf);

  printf("виведення рядка з масиву: %s\n\n",buf);

  printf(" Уведення перемінних типу float and double (через пробіл):\n");

  printf("\t\t      ");

  scanf("%f %lf",&f,&d);

  printf("\t виведення перемінних типу float and double\n");

  printf(" Формат виведення (float):  10.6f       10.6e       +10.6g\n");

  printf("\t\t     |%10.6f|%10.6e|%+10.6g|\n",f,f,f);

  printf(" Формат виведення (double): 10.8lf      10.8e        10.8g\n");

  printf("\t\t     |%10.8lf|%10.8e|%+10.8g|\n ",d,d,d);

  getche(); //Функція введення символу з клавіатури

  return 0; //Оператор повернення значення з функції (0)

}           //Кінець складеного оператора (блоку, тіла функції)

/*  Результат виконання програми

Уведення перемінної типу char:   u

виведення перемінної типу char:  u

Уведення перемінної типу int:    78

 виведення перемінної типу int

Формат виведення (int):      +6d     #6o     #8x

    |   +78|  0116|    0x4e|

Уведення перемінної типу int:    90

виведення к перемінної типу int

Формат виведення (int):      -6d     +6d    #8d

    |90    |   +90|    90|

виведення вихідного рядка:  "slovo"

Уведення рядка в масив:    символи 45!"#:$.;? %;?

виведення рядка з масиву: символи 45!"#:$.;? %;?

Уведення перемінних типу float and double (через пробіл):

  78.89  6778.0

  виведення перемінних типу float and double

Формат виведення (float):   10.6f       10.6e        +10.6g

       | 78.889999|7.889000e+01|    +78.89|

Формат виведення (double):  10.8lf      10.8e         10.8g

      |6778.00000000|6.77800000e+03|     +6778|  */

Приклад програми на С++

Скласти програму,що буде виводити будь-який текст на екран.

#include<iostream.h>

void main()

{cout<<" Я люблю математику\n";}

Хід роботи

  1.  Вивчити теоретичні відомості.
  2.  Виконати завантаження інтегрованого середовища розробки С++ (IDE) для
    Borland C, розташованої в каталозі N:\APL\BC\BIN\BC.EXE, з активної директорії.
  3.  Ознайомитися з форматом функцій printf() і scanf().
  4.  Скопіювати приклади для функцій printf, scanf з убудованої допомоги в активне вікно і вивчити їхню роботу. Вивчити синтаксичні конструкції, приведені в убудованій допомозі.
  5.  Виконати завантаження програм-прикладів (N:\APL\TC\LAB\*.CPP), їхнє коректування з використанням різних можливостей функцій printf (), scanf (), збереження файлів і компіляцію.
  6.  Написати звіт і зробити Захист роботи по роботі.
  7.  Підготуватися до захисту лабораторної роботи, вивчивши питання по даній темі, вивчивши контрольні питання по темі.

Індивідуальне завдання до лабораторної роботи №2

Скласти програму для форматованого введення і виведення даних заданого типу відповідно до індивідуального завдання приведеному в таблиці 2.1.

Таблиця 2.1 - Індивідуальне завдання

варіант

перший тип

другий тип

третій тип

четвертий тип

вирівнювання по краю

Точність речовинних типів

  1.  

unsigned int

long int

float

double

лівий

14.5

  1.  

signed int

long double

char

short int

правий

12.8

  1.  

unsigned int

unsigned long int

short int

float

правий

10.3

  1.  

long int

Char

double

float

лівий

11.2

  1.  

unsigned long int

float

int

long double

правий

7.3

  1.  

signed long int

long double

unsigned int

float

правий

16.5

  1.  

short int

long double

float

unsigned int

лівий

11.5

  1.  

unsigned long int

float

long int

char

правий

20.9

  1.  

float

signed int

long double

char

лівий

13.6

  1.  

long int

float

double

char

лівий

14.3

  1.  

char

signed long int

long double

float

правий

9.6

  1.  

float

int

long double

unsigned long int

лівий

8.2

  1.  

char

unsigned long int

float

long int

лівий

12.4

  1.  

float

signed long int

long double

signed long int

правий

15.7

  1.  

long double

short int

float

unsigned long int

правий

17.5

  1.  

long double

unsigned long int

int

char

лівий

14.2

  1.  

float

short int

char

long double

правий

10.5

  1.  

unsigned long int

short int

long int

char

лівий

11.7

  1.  

char

double

long double

unsigned int

лівий

16.12

  1.  

float

int

double

char

лівий

10.3

  1.  

long double

unsigned int

double

float

правий

9.5

  1.  

long double

float

long double

unsigned long int

лівий

13.6

  1.  

float

long int

long double

unsigned long int

лівий

12.4

  1.  

float

long int

char

unsigned long int

правий

13.8

  1.  

signed int

long double

float

unsigned short long

правий

10.6

  1.  

float

double

char

long int

лівий

12.5

  1.  

signed long int

long double

float

char

правий

11.4

  1.  

int

long double

unsigned long int

float

лівий

10.3

  1.  

unsigned long int

float

long int

char

лівий

15.6

  1.  

signed char

long double

unsigned char

short int

лівий

18.10

Вимоги до змісту звіту приведені в лабораторній   роботі   №1.

Контрольні запитання

  1.  Як здійснюється виведення і введення інформації в мові? Чи існують убудовані оператори введення/ виведення?
  2.  Для чого використовується форматованє уведення/ виведення?
  3.  З якого символу починається форматний рядок?
  4.  Для чого встановлюються прапори?
  5.  Які символи перетворення використовуються й у яких випадках?
  6.  Які елементи формату є обов'язковими елементами?
  7.  У якому заголовному файлі приведені оголошення (прототипи) цих функцій?
  8.   Чи відрізняються символи типу <type>, застосовувані для функцій prinf() і scanf()?
  9.   Чи відрізняються типи аргументів функцій? Якщо відрізняються, то в чому розходження і чим воно викликано?
  10.  Про що свідчить модифікатор const?
  11.  Назвіть функції для введення/ виведення інформації.


 

А также другие работы, которые могут Вас заинтересовать

1700. Применение мер пресечения 49.25 KB
  Меры пресечения как меры уголовно-процессуального принуждения. Основания и порядок применения мер пресечения. Виды мер пресечения в уголовном процессе
1701. Социально-педагогическая адаптация личности 50.08 KB
  Сущность понятия психологическая аккультурация. Значение межкультурных контактов для адаптации. Рассмотреть U – образная кривая адаптации В. Оберга и W - кривая адаптации. Факторы, влияющие на процесс адаптации к новой культурной среде. Программы преодоления культурно шока.
1702. Сучасні проблеми і тенденції соціально-економічного розвитку України 25.17 KB
  Стан справ в економіці України залишається вкрай складним. Українська економіка змушена долати наслідки планово-розподільної системи господарювання.
1703. Исследование газоразрядной плазмы зондовым методом 54.25 KB
  Цель работы - ознакомиться с зондовым методом исследования плазмы и приобрести навыки экспериментального определения основных параметров плазмы в газоразрядном приборе: потенциала плазмы, температуры электронного газа, концентраций заряженных частиц.
1704. Проектирование одноцепной ВЛ 500 кВ ПС 139.05 KB
  Определение расчетных климатических условий. Электрический расчет проводов. Определение единичных нагрузок на провод АС 400/51. Определение единичных нагрузок на трос ТК – 70. Расчет и комплектование гирлянд изоляторов.
1705. CALS-технологии. Continuous Acquisition and Lifecycle Support 171.89 KB
  CALS (Continuous Acquisition and Lifecycle Support — непрерывная информационная поддержка поставок и жизненного цикла) означает совокупность принципов и технологий информационной поддержки жизненного цикла продукции на всех его стадиях.
1706. Аналіз діяльності Балаклійського лісового господарства 116.53 KB
  ПРИРОДНО-ІСТОРИЧНІ ТА КЛІМАТИЧНІ ОСОБЛИВОСТІ ТЕРИТОРІЇ ДП БАЛАКЛІЙСЬКЕ ЛІСОВЕ ГОСПОДАРСТВО. ХАРАКТЕРИСТИКА ЛІСОВОГО ФОНДУ ТА ГОСПОДАРСЬКА ДІЯЛЬНІСТЬ ДП БАЛАКЛІЙСЬКЕ ЛІСОВЕ ГОСПОДАРСТВО. ОСОБЛИВОСТІ ПРОВЕДЕННЯ РУБОК ДОГЛЯДУ У СОСНОВИХ ДЕРЕВОСТАНАХ ТА МЕТОДИ ОЦІНКИ СОРТИМЕНТНОЇ СТРУКТУРИ ЗАПАСУ, ЩО ВИБИРАЄТЬСЯ.
1707. Правовое регулирования участия в арбитражном процессе государственных органов 238.5 KB
  Общие положения участия в арбитражном процессе органов государственной власти, местного самоуправления и иных органов в защиту публичных интересов. Особенности рассмотрения в арбитражном суде дел об оспаривании нормативных правовых актов.
1708. Эффективность ЛФК при остеохондрозе поясничного отдела позвоночника 130.69 KB
  ЛФК как метод реабилитации при остеохондрозе поясничного отдела позвоночника. Клинические проявления остеохондроза поясничного отдела позвоночника. Задачи и принципы физической реабилитации при остеохондрозе поясничного отдела позвоночника.