Skip to content Skip to navigation

Connexions

You are here: Home » Content » Влез и излез на податоци

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Влез и излез на податоци

Module by: Liljana Stefanovska. E-mail the author

Влез и излез на податоци

Внесување на податоци со scanf() функцијата

Влезните податоци може да се внесат во компјутерот од стандардниот влез со користење на библиотечната функција scanf(). Обликот на оваа функција е следниот:

scanf(Контролна низа од знаци, arg1, arg2, … , argn)

Контролната низа од знаци е всушност низа од знаци (стринг) кој ја содржи потребната информација за форматирање, а arg1, arg2, ..., argn се аргументите кои ги претставуваат индивидуалните податоци. Аргументите претставуваат покажувачи кои ја даваат мемориската адреса каде ќе се смести податокот кој ќе се прочита. Контролната низа од знаци е изградена од индивидуални групи на знаци со една група на знаци за секој податок кој ќе се чита. Секоја група на знаци мора да започне со знакот %. Во нејзината наједноставна форма една група знаци се состои од % по кој следи знак за конверзија кој го дава типот на соодветниот мемориски елемент каде ќе се запише податокот.

Table 1
Знак законверзија Значење
c Податочниот елемент е еден знак
d Податочниот елемент е децимален цел број
f Податочниот елемент е реална вредност
h Податочниот елемент е краток цел број
I Податочниот елемент е децимален, хексадецимален или октален цел број
o Податочниот елемент е октален цел број
s Податочниот елемент е низа од знаци по која следи едно празно место, нов ред или табулатор
u Податочниот елемент е децимален цел број без знак
x Податочниот елемент е хексадецимален цел број

Example 1

#include <stdio.h>
main()
{
    char del;
    int delbroj;
    float cena;
    ...
    scanf(“%c%d%f”,&del,&delbroj,&cena);
    ...
}

Првата група знаци покажува дека првиот аргумент е знак, втората дека вториот аргумент е децимален цел број, додека третата дека третиот аргумент е реален број.

Со помош на scanf() функцијата вредностите на трите променливи del, delbroj и cena можат да се прочитаат од стандардниот влез кога ќе се изврши програмата. Влезот за програмата може да е следниот:

Pc 12345 570.34

или

Pc

12345

570.34

Example 2

#include <stdio.h>
main()
{
    int a, b, c;
    ...
    scanf(“%3d %3d %3d”,&a,&b,&c);
    ...
}
Table 2

Влез

Излез

1 2 3 a=1, b=2, c=3
123456789 a=123 b=456 c=789

Example 3

#include <stdio.h>
main()
{
    int i;
    float f;
    char c;
    ...
    scanf(“%3d %5f%c”,&i,&f,&c);
    ...
}
Table 3

Влез

Излез

10256.875 T i=102 f=56.87 c=5

Треба да се напомене дека функцијата scanf го враќа бројот на прочитани параметри.

Example 4

#include <stdio.h>
main()
{
    int i;
    float f = 3.0;
    char c = ‘a’;
   
    i = scanf(“%f %c”,&f,&c);
    printf(”%d %f %c”,i, f, c);
}
Table 4

Влез

Излез

a c 0 3.0 а
5.0 c 2 5.0 c

Печатење на податоци со printf() функцијата

Излезните податоци може да се запишат од компјутерската меморија на стандардниот излез со користење на библиотечната функција printf. Општата форма на printf функцијата е

printf(Kontrolna niza od znaci, arg1, arg2, …, argn)

каде контролната низа се однесува на низа од знаци која содржи информации за форматирањето. arg1, arg2, …, argn се аргументите кои ги претставуваат индивидуалните излезни податоци.

Example 5

#include <stdio.h>
#include <math.h>
main()
{
    float i = 2.0, j = 3.0;
    printf (“%f %f %f %f”, i, j, i+j, sqrt(i+j)); 
}

Оваа програма на екранот ќе печати:

2.000000 3.000000 5.000000 2.236068

Бројот на конверзии во даден формат треба точно да одговара на бројот на аргументи во функцијата. При тоа, С ова нема да го потврди. Ако се дадени поголем број аргументи, вишокот аргументи се игнорираат. Ако, пак, нема доволен број аргументи, С ќе генерира чудни броеви за аргументите кои недостигаат.

Example 6

#include <stdio.h>
/* Variable for computation results */
int answer;
int main()
{
    answer = 2 + 2;
    printf("The answer is %d\n");
    return (0);
}

Example 7

#include <stdio.h>
float result; /* Rezultat od delenje */
int main()
{
    result = 7.0 / 22.0;
    printf("Rezultatot e %d\n", result);
    return (0);
}

Задачи за вежбање:

ЗАДАЧА 1.

Да се напише програма за пресметување и печатење на плоштината и периметарот на круг која ќе чита реален број кој го претставува радиусот на кругот.

ПРОГРАМА:

#include <stdio.h>

int main(void)

{

long double radius = 0.0L;

long double plostina = 0.0L;

const long double pi = 3.1415926353890L;

printf(“vnesi radius na krugot “);

scanf(”%Lf”, &radius);

plostina = pi * radius * radius;

printf(”P na krug so r %.3Lf e %.12Lf\n”, radius, plostina);

return 0;

}

ЗАДАЧА 2.

Да се напише програма која чита големи букви од тастатура и ги печати истите како мали букви.

ПРОГРАМА:

#include <stdio.h>

int main(void)

{

char ch;

printf(“Vnesi golema bukva “);

scanf(”%c”, &ch);

printf(”Mala ekvivalent bukva na ‘%c’ e ‘%c’\n”, ch, ch-’A’+’a’);

return 0;

}

ЗАДАЧА 3.

Кој ќе биде излезот на следната програма?

#include <stdio.h>

int main(void)

{

int i=0, j, k=7, m=5;

j = m += 2;

printf(“j = %d\n“, j); // j = 7

j = k++ > 7;

printf(”j = %d\n”, j); // j = 0

j = i == 0 || --k;

printf(“j = %d\tk = %d\n”, j, k); // j = 1 k = 8

return 0;

}

ЗАДАЧА 4.

Да се напише програма која ќе прочита два цели броја и ќе ја испечати нивната сума, разлика, производ и остатокот при делењето. Програмата исто така ќе прочита и со која прецизност треба да ги испечати двата броја.

ПРОГРАМА:

#include <stdio.h>

int main(void)

{

int prv, vtor, vkupno, dec;

printf(“vnesi dva broja “);

scanf(”%i %i”, &prv, &vtor);

printf(“vnesi preciznost vkupno decimalni mesta “);

scanf(”%i %i”, &vkupno, &dec);

printf(“%i + %i = %0*i\n“, prv,vtor,vkupno,prv + vtor);

printf(“%i - %i = %0*i\n“, prv,vtor,vkupno,prv - vtor);

printf(“%i * %i = %0*i\n“, prv,vtor,vkupno,prv * vtor);

printf(“%i / %i = %0*.*lf\n“,prv,vtor,vkupno,dec,prv / vtor);

printf(“%i %% %i = %0*i\n“, prv,vtor,vkupno,prv % vtor);

return 0;

}

ИЗЛЕЗ:

vnesi dva broja 12345 56789

vnesi preciznost vkupno mesta decimalni mesta 9 3

12345 + 56789 = 000069134

12345 - 56789 = -00044444

12345 * 56789 = 701060205

12345 / 56789 = 00000.000

12345 % 56789 = 000012345

Content actions

Download module as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks