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


 

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

45175. Великое Княжество Литовское 41 KB
  Образование Великого княжества Литовского было ускорено необходимостью объединиться для борьбы с агрессией немецких крестоносцев усилившейся с начала XIII в. Вхождение в состав Великого княжества Литовского русских украинских белорусских земель с более развитыми общественными отношениями и культурой содействовало дальнейшему развитию общественноэкономических отношений в Литве. Это а также различия в уровне общественноэкономического развития и этническая неоднородность отдельных частей Великого княжества Литовского обусловили отсутствие...
45176. Механизмы и институты власти в Московском централизованном государстве 15- начале 16 вв 149.93 KB
  Он был главой Российского государства и обладал широким кругом прав: издавал законы осуществлял государственное руководство имел судебные полномочия. С падением власти удельных князей великий князь стал подлинным властелином всей территории государства. Централизация государства явилась внутренним источником усиления великокняжеской власти а падение Золотой Орды внешним. Власть великого князя была ещё ограничена другими органами раннефеодального государства прежде всего Боярской думой.
45178. Причнина, как управленческая модель 89 KB
  Историк Скрынников считает что во время политики опричнины погибло около четырех тысяч человек а Кобрин – пятнадцать тысяч. Правление Ивана Грозного; истоки политики опричниныПодходило к концу правление Василия III.1 Сущность опричниныПроводимые реформы ограничивающие власть феодалов стали встречать их сопротивление несогласие с царской политикой неподчинение воле царя. Все кто жил на территории опричнины но не были опричниками выселялись.
45179. История государственного управления 86.42 KB
  Со смертью бездетного царя Федора Ивановича пресеклась многовековая династия Рюриковичей. Избрание было абсолютно легитимным но сам процесс становления авторитета нового царя у знати приказных людей и широких слоев русского общества легитимация династии требовали значительного времени. Успешными оказались внешнеполитические акции царя отвоевание в 1590 1593 гг. Ответственность за бедствия обрушившиеся на страну в массовом сознании возлагались на царя и объяснялись Божьим наказанием за его неправедность.
45180. Эволюция Земских соборов 95 KB
  Эволюция Земских соборов. Земский собор Совет всей земли высшее сословно-представительское учреждение Российского царства с середины XVI до конца XVII века собрание представителей всех слоёв населения кроме крепостных крестьян для обсуждения политических экономических и административных вопросов. Земский собор существовал в условиях сословно-представительной монархии. Последним земским собором принято считать собрание состоявшееся в 1683 1684 годы по вопросу о вечном мире с Речью Посполитой.
45181. Правление Петра I 17.15 KB
  Были введены: Коллегия чужестранных иностранных дел заменила Посольский приказ то есть ведала внешней политикой. Военная коллегия Воинская комплектование вооружение снаряжение и обучение сухопутной армии. Адмиралтейств коллегия военно-морские дела флот. Вотчинная коллегия заменила Поместный приказ то есть ведала дворянским землевладением рассматривались земельные тяжбы сделки на куплю-продажу земли и крестьян сыск беглых.
45182. Эпоха дворцовых переворотов 16.01 KB
  После его смерти столкнулись представители родовой знати Голицыны Долгорукие признававшие наследником князя Петра и чиновная власть сделавшая ставку на Екатерину I и выигравшая эту борьбу с помощью гвардейских полков. императором согласно ее завещанию провозглашается внук Петра I Петр II а к Верховному тайному совету фактически к А. В ходе обсуждения возможных кандидатов на престол выбор пал на курляндскую герцогиню Анну Иоанновну дочь брата Петра I Ивана Алексеевича.
45183. Ресурсный метод определения стоимости строительства 16.17 KB
  Этот метод формирования сметной документации предусматривает калькулирование в текущих ценах трудовых материальных и технических ресурсов необходимых для реализации проектного решения. В качестве исходных данных для определения прямых затрат в локальных ресурсных сметных расчетах выделяют следующие показатели: Затраты труда рабочих строителей монтажников персонала по пусконаладке Средний разряд работы Затраты труда машинистов Строительные машины и механизмы в маш час Расход материальных ресурсов в принятых физических...