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.  Назвіть функції для введення/ виведення інформації.


 

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

66936. Ми у космос летимо. Заняття за інтересами 920 KB
  Мета. Закріпити вміння учнів працювати з технікою складання паперу «Орігамі». Виготовити моделі ракет, супутників, гратографії «Сузір’я», геометричну аплікацію, мозаїку «Чумацький шлях». Навчати працювати в групах, в парах та закріплювати вміння працювати з ножицями,...
66937. Рідна земля, живи! Виступ екологічної агітбригади 76.5 KB
  Мета: донести до людей значення екологічних проблем, зокрема, характерних для рідного краю; залучати учнів до агітаційної роботи з даного питання; виховувати любов до планети Земля, сприяти хоча б частковому вирішенню екологічної ситуації.
66938. Даруйте радість людям – і стане світ багатшим 53.5 KB
  Виховувати в учнів почуття доброти чуйності милосердя поваги до людей; формувати активну життєву позицію яка проявляється в дієвій допомозі людям; формувати в учнів уміння формулювати судження виховувати високі моральні якості. Добро спішіть творити люди. Живіть добро звершайте Та нагород за це не вимагайте.
66939. «Сумні дати серця» (сторінками життя Василя Стефаника) 120.5 KB
  Мета:познайомити учнів із життєвим шляхом українського письменника Василя Стефаника, розкрити трагізм його життя; розвивати чуйність, увагу, спостережливість; виховувати почуття патріотизму, любові до України, її синів. У додатку – презентація «Надто добрий знавець народної мужицької душі (життя і творчість В.Стефаника)».
66940. Професія педагога: «за» і «проти» 38.5 KB
  Слово суддям заключне слово класного керівника хід класної години Класний керівник: Сьогодні моє слово до вас мої вихованці. На нашому ринзі незвичайна і дуже відповідальна зустріч зустріч захисників і противників професії педагога. У правому куті команда захисників професії.
66941. Внеклассное мероприятие по английскому языку «Великобритания» 35.5 KB
  Thank you, and now I want you to know more about our teams. Let introduce with our teams. The competition consists of several tasks. The 1st task is to answer the questions about Great Britain. If your answer is correct the team will get one point. If your answer is wrong the second team will be allowed to give the answer.
66942. Досліджую свою оселю 72.5 KB
  Мета: вчити учнів досліджувати своє довкілля, робити висновки зі своїх досліджень, формувати у дітей уявлення про різноманітність архітектурних споруд, викликати інтерес до пізнання через дослідження, розвивати прагнення прикрасити, зробити комфортнішою свою оселю...
66943. Від пірамід до хмарочосів 1.16 MB
  Мета заходу: ознайомити учнів – випускників шкіл з професією будівельника, показати велич та красу цієї професії, довести, що професія будівельника – це постійний пошук та нескінченна творчість, допомогти дитині зробити професійний вибір відповідно своїм здібностям, інтересам, нахилам.
66944. Закріплення звукового значення букви «ґе». Опрацювання тексту «Ґави і Галаган» 76 KB
  Хід уроку Організаційний момент Вчитель Стали діти рівненько привітайте один одного посмішками починаємо наш урок читання. Рідну мову ми вивчаємо ЇЇ любимо не забуваємо Вчитель Як ми будемо працювати Учні Працюватимемо старанно. Щоб почути у кінці Що у нашім першім класі Діти просто молодці...