Функция scanf - въвеждане на данни
Описание на функциите scanf и printf е включено в библиотечния файл stdio.h.
Библиотечна функция scanf използва следните стандартни спецификатори за преобразуване :
%c - знак
%d - цяло число със знак
%f - реално число (число с плаваща запетая)
%s - знаков низ, стринг
%u - цяло число без знак
Библиотечна функция printf извежда на екрана съобщение и/или стойност на данни.
Същите спецификатори се използват и от библиотечната функция printf.
Следващият пример за библиотечна функция scanf илюстрира как се въвежда стринг от клавиатурата.
#include<iostream>
#include <stdio.h>
using namespace std;
int main()
{
int i;
char mas[80];
// Opisanie na bibliotechni funkcii za nasochwane na potoka pri startirane na programata
// funkciq : standartno ustrojstwo
// stdin : standartno whodno ustrojstwo - w sluchaq klawiatura
// stdout : standartno izhodno ustrojstwo - w sluchaq monitor
// stderr : standartno ustrojstwo za izwevdane na greshki - w sluchaq monitor
// stdprn : standartno izhodno ustrojstwo - w sluchaq printer
printf ("Da se systawi programa, chrez ");//bez npreminawane na now red
printf ("koqto se wywevdat realno\n");//s preminawane na now red
fprintf (stdout,"chislo ot interwala ");//bez preminawane na now red
fprintf (stdout,"[-99.9..99.99].\n");//s preminawane na now red
printf ("Programata da izwede cqlata chast na chisloto ili syobshenie\n");
fprintf (stdout,"za greshka, ako wywedenata stojnost e nekorektna.\n");
printf ("Primer: -45.93 Izhod -45\n");
printf ("Wywedete chislo ot interwala: [-99.9..99.9]: ");
if ( fscanf (stdin,"%d", &i))
printf("Programata wyzpriema stojnost: %i\n", i);
else
{
fprintf(stderr, "Ot klawiaturata e wywedena greshna informaciq!\n");
//exit(1);//
}
system("pause");
return 0;
}//kraj na pograma scanf
Нека разгледаме следната примерна задача:
За успоредник с въведени две прилежащи страни a,b, както и сключения между тях остър ъгъл трябва да изчислим лицето му.
Алгоритъм:
Използва се функция scanf за въвеждане на входни данни: дължини на страни a,b, и ъгъл.
Преобразуваме въведените данни за ъгъла в радиани: yg=y*pi/180;
Лицето S се изчислява по формулата: S=a*b*sin(yg);
Следващата програма дава решен пример за въвеждане на входни данни чрез функция scanf:
#include<iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
double pi=3.1415926;
int main()
{ float a,b,y,yg,S;
printf ("Da se systawi programa, chrez koqto se wywevdat\n");
printf ("dwe prilevashi strani na usporednik - a,b, kakto i\n");
printf ("ygyla mevdu tqh - yg i se izwevda liceto na ysporednika\n");
printf ("Primer: a=8; b=9; yg=30 Izhod: S=36.\n");
printf ("Strana a: "); scanf ("%f",&a);
printf ("Strana b: "); scanf ("%f",&b);
printf ("Ygyl mevdu stranite: "); scanf ("%f",&y);
yg=y*pi/180;
S=a*b*sin(yg);
printf ("Liceto na usporednika e: %f\n", S);
system("pause");
return 0;
}//kraj na pograma scanf
Задачи с подобни функции и служебни думи са разгледани в страницата с
електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи
решени примери.
Начало на страницата