Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Method_Lab_Work_ANSI_C__2010_lab1-10_v2.doc
Скачиваний:
39
Добавлен:
22.11.2018
Размер:
1.14 Mб
Скачать

1.2 Приклад програми Умова задачі

Скласти програму, яка вводить дані різного типу з клавіатури та виводить дані на екран. Типи даних відповідають таблиці 1.1. Використати функції вводу та виводу відповідно до таблиці 1.2. Виконати розрахунок математичного виразу, використовуючи математичні функції відповідно до таблиці 1.6. Сценарій роботи програми вимагає вивід на екран повідомлень про необхідність вводу даних відповідного типу за допомогою будь-яких функцій виводу. У відповідь на повідомлення, що з’являється на екрані, користувач вводить дані відповідного до повідомлення типу.

Особливості використання функцій вводу та виводу

  1. При введенні та виведенні даних за допомогою класів потоків з рядка, який має символи пропусків, вводяться та виводяться символи тільки до першого символу пропуску.

  2. При введенні даних потоком використовується стандартний потік вводу stdin, при виведенні потокових даних використовується стандартний потік виводу stdout.

  3. Після введення символу за допомогою функцій getchar(), getche(), getch() необхідно очищати буфер клавіатури, інакше наступний ввід даних буде неможливий (необхідно опрацювати введення символу ENTER, використовуючи функцію fflush(stdin)).

  4. При введенні символу без відображення його на екрані натискувати клавішу ENTER після символу непотрібно.

  5. Для переведення курсору на новий рядок в процесі виведення даних на екран використовується ESC-послідовність ‘\n’

  6. Для отримання кінця рядка використовується ESC-послідовність ‘\0’

  7. Для виконання табуляції курсору в процесі виведення даних на екран використовується ESC-послідовність‘\t’.

  8. При використанні функцій консольного виводу курсор не переводи­ться на початок наступного рядка, тому користувач повинен використовувати ESC-послідовності '\n' - перевід курсору на новий рядок, '\r' - перевід курсору на початок рядка.

Текст програми 1.1

#include<stdio.h> //бібліотека функцій введення та виведення

#include<conio.h> //бібліотека очищення екрана та іншого сервісу

#include<math.h> //бібліотека математичних функцій

#include<iostream> //бібліотека потоків вводу – виводу

using namespace std;

void main() //основна функція – точка входу до програми

{ //початок основної функції

char simbol;

puts("function puts():"); //вивід повідомлення на екран

puts("input simbol"); //вивід повідомлення на екран

putchar(getch()); //вивід символу, що не відображається

puts("\n repeat input simbol-function getch():");

//вивід повідомлення

simbol=getch(); //ввід символу з клавіатури

putchar(simbol); //вивід символу на екран

char str[20];

puts("\n input string - function gets():"); //вивід повідомлення

gets(str); // введення рядка

printf("functions printf(),puts(): str=");

// форматне виведення тексту

puts(str); // виведення рядка

printf("\r\n function printf(): str=%s \r\n",str); //форматне виведення рядка

int i; float a,b,c;

puts("function scanf(),printf()");

printf("\n input integer i, float a,b,c \n"); // форматне виведення

scanf("%d%f%f%f",&i,&a,&b,&c); // форматне введення

printf("i=%d a=%f b=%f c=%e",i,a,b,c); // форматне виведення

puts("\n input string for sscanf() as %d %f %f or sprintf()");

char str1[20],str2[20]; float a1,b1,d;

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

gets(str1); //ввід рядка з клавіатури

printf("string is: ");

puts(str1);

sscanf(str1,"%d %f %f",&i,&a1,&b1);

//введення із рядка за адресами змінних

printf("i=%d a=%f b=%e \n",i,a1,b1);

// вивід на екран для контролю введення

puts("function sprintf() does not display rezult");

sprintf(str2,"i=%d a=%f b=%e ",i,a1,b1); // виведення у рядок

puts("function puts():");

puts(str2);

d=(a+pow(b,3)-abs(a1-b1))/sqrt(sin(c*3)); // розрахунок виразу

puts("function printf():");

printf("d=(a+pow(b,3)-abs(a1-b1))/sqrt(sin(c*3))=%f",d);

char string[30]; //оголошення рядка

cout<<"\n input text"<<endl; //потоковий вивід

cin>>string; //потоковий ввід

cout<<" entered text is "<<"'"<<string<<"'"<<endl;

getch(); // затримка екрана

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

Текст програми 1.2

#include <stdio.h> //бібліотека стандартних функцій вводу - виводу

#include <conio.h> //функції роботи з екраном

#include <math.h> //математичні функції

#include <iostream> //потоки вводу – виводу

#include <stdlib.h> //функція виходу з програми

using namespace std;

//=============== функція початку роботи =================== =====

void welcome(){

puts("Welcome to see the usage of input/output functions in C++!!!");

puts("Press any key..."); //вивід тексту

char a;

cin>>a; //чекати натискання на клавішу

}

//====функції putchar(),getchar(),putch(),getch(),puts(),gets()==

void f1(){

char str[15];

puts("Usage of functions putchar(),getchar():");

puts("Input any symbol"); //вивід тексту

char c;

c=getchar(); //ввід символу

putchar(c); //вивід символу

puts("\nUsage of functions putch(),getch():");

putch(getch()); //ввід символу без його відображення на екрані

puts("\nUsage of functions puts(),gets():");

puts("Input string");

gets(""); //зчитується символ '\n'

gets(str); //ввід рядка

puts(str); //вивід рядка

getch(); //чекати натискання на клавішу

}

//======================= функції cin,cout ==========================

void f2(){

int a;

puts("Usage of functions cin,cout:");

cout<<"Enter int a"<<endl; //потоковий вивід

cin>>a; //потоковий ввід

cout<<"\na^2="<<a*a<<endl;

getch(); //чекати натискання на клавішу

}

puts("Usage of sscanf(),sprintf()");

int a; float b,c; //опис локальних змінних

char str1[15],str2[15];

puts("Input int,float,float:");

gets(str1); //ввід рядка

sscanf(str1,"%d %f %f",&a,&b,&c); //запис даних з рядка за // адресами змінних

puts("function sprintf() not display rezult"); //вивід повідомлення

sprintf(str2,"a=%d b=%f c=%e -",a,b,c); //запис значень змінних у

// рядок

puts("Your string is");

puts(str2); //вивід рядка

}

//==================== функції sscanf(),sprintf() ===================

void f3(){

puts("Usage of sscanf(),sprintf()");

int a; float b,c; //опис локальних змінних

char str1[15],str2[15];

puts("Input int,float,float:");

gets(str1); //ввід рядка

sscanf(str1,"%d %f %f",&a,&b,&c);

//запис даних з рядка за адресами змінних

puts("function sprintf() not display rezult");

//вивід повідомлення

sprintf(str2,"a=%d b=%f c=%e -",a,b,c);

//запис значень змінних у рядок

puts("Your string is");

puts(str2); //вивід рядка

}

//======================приклад обчислення виразу =================

void f4(){

system("cls");//очищення екрана

puts("Usage of scanf(),printf()and math functions:\n");

float a,b,c,y;

puts("enter a, b!=0, c>-1(c!=0) :"); //вивід повідомлення

scanf("%f%f%f",&a,&b,&c); //форматний ввід даних

if ((b==0)||(c<=-1)||(c==0)) //умови існування виразу

{

printf("\nError!!! Try another time...\r\n");

exit(1); //переривання програми

}

y=abs(a/b-log(c))/sqrt(pow(c,5)+1)-cos(2*a)/atan(c)+sinh(a); //вираз

printf("Calculating...Press any key...\r");

getch(); //чекати натискання на клавішу

//вивід результатів

printf("abs(a/b-log(c))/sqrt(pow(c,5)+1)-cos(2*a)/atan(c)+sinh(a)=%e\r\n",y);

puts("Good luck!!!");

}

//======================== головна програма 1.2 ====================

void main(){

welcome(); //функція початку програми

f2(); //функції putchar(),getchar(),putch(),getch(),puts(),gets()

f3(); //функції cin,cout

f1(); //функції sscanf(),sprintf()

f4(); //приклад обчислення виразу

}

Функції welcome та f4

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

Функція F1() Функція F3()

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]