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


 

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

48587. Учет внешнеэкономической деятельности 765.5 KB
  Организация и осуществление ВЭД требует соблюдения определённых целей и ставит специфические задачи перед бухгалтерским учётом. Основными объектами бухгалтерского учёта ВЭД являются: валютные средства и валютные операции, которые включают в себя товары и их движение на основе экспортно-импортных операций
48588. Хімія. Курс лекцій 4.73 MB
  В конспекті лекцій викладено найважливіші поняття, закони і теоретичні положення хімії як науки, пояснено будову атомів і утворення хімічних зв’язків, систематизовано відомості про властивості хімічних елементів та їх сполук. Так як в основу металургійних процесів покладено процеси відновлення металів, нами велику увагу приділено окисно-відновним реакціям, впливу різноманітних факторів на кінетику даних процесів, вивченню термодинамічних закономірностей їх перебігу.
48589. Насосно-компрессорные трубы 27.83 KB
  Расчет НКТ. Трубы НКТ Насоснокомпрессорные трубы используются в эксплуатации газовых и нефтяных скважин для транспортировки газообразных и жидкообразных веществ а так же для ремонтных и спускоподъемных работ. В связи с постоянными механическими нагрузками и взаимодействиями с агрессивными средами НасосноКомпрессорные трубы НКТ очень сильно подвергаются коррозии и эрозии. Классификация НКТ труб Трубы НКТ имеют различное применение.
48590. АУДИТ КАЧЕСТВА КАК ИНСТРУМЕНТ ПОВЫШЕНИЯ КОНКУРЕНТОСПОСОБНОСТИ ПРОДУКЦИИ И УСЛУГ 940.5 KB
  Исследовать теоретические аспекты аудита качества продукции и услуг; дать общую характеристику организации и ее деятельности; проанализировать основные технико-экономические показатели; провести аудит качества и анализ конкурентоспособности выполняемых работ и услуг; разработать мероприятия по улучшению качества и повышению конкурентоспособности предоставляемых услуг.
48591. Устройство, назначение преобразователей частоты ф. OMRON 5.92 MB
  Устройство назначение преобразователей частоты ф. Преобразователи частоты предназначены для регулировки частоты вращения и момента на валу асинхронного или синхронного электродвигателя. Преобразователь частоты это прибор предназначенный для преобразования переменного тока напряжения одной частоты обычно частоты питающей сети в переменный ток напряжение другой частоты. Выходная частота в современных инверторах может быть как ниже так и выше частоты питающей сети.
48593. САР. Система автоматического регулирования частоты вращения двигателя постоянного тока 1.04 MB
  Оглавление Область применения проектируемой системы. Принцип работы системы. Передаточные функции системы. ПФ замкнутой системы по задающему воздействию ПФ замкнутой системы по возмущающему воздействию.
48594. Система автоматического регулирования частоты вращения двигателя постоянного тока 2.69 MB
  Содержание Задание на курсовое проектирование Исходные данные Анализ области применения системы Анализ исходных данных Оценка действующего на систему возмущающего воздействия Классификация САР функции и дифференциальные уравнения звеньев САР 12 11 Структурная схема САР 15 12 Передаточные функции системы 15 13 Уравнения динамики замкнутой системы автоматического регулирования 16 14 Анализ структурной устойчивости САР...
48595. Проектирование технологического процесса цеха жести 587.5 KB
  Выбор электродвигателей по роду тока Начальным этапом при выборе двигателя является выбор рода тока. Различают двигатели переменного и постоянного тока. Двигатели постоянного тока Двигатели постоянного тока ДПТ делятся на двигатели с параллельным последовательным смешанным и независимым возбуждением. Двигатели постоянного тока с последовательным возбуждением В двигателях этого типа ток якоря является током возбуждения и как следствие магнитный поток возбуждения растет с увеличением нагрузки поэтому снижается угловая скорость...