Unos podataka sa tipkovnice

Sjedište: CARNET - Arhiva 2021 Loomen
E-kolegij: III. Gimnazija Osijek - Informatika 2
Knjiga: Unos podataka sa tipkovnice
Otisnuo/la: Gost (anonimni korisnik)
Datum: ponedjeljak, 28. listopada 2024., 12:20

1. Funkcija za učitavanje podataka

Za upisivanje podataka s tipkovnice u C-u postoji nekoliko funkcija. Najčešće se koristi funkcija za formatirani upis podataka,  scanf(). Njezina je sintaksa:

     scanf("lista_formata", lista_varijabli);

Kao i kad je riječ o funkciji printf() u listu_formata upisuju se oznake formata za tip varijabli, a u listu_varijabli popis imena varijabli istim redoslijedom kao u popisu formata. Varijable navedene u listi međusobno se odvajaju zarezom. Budući da se u C-u njihove vrijednosti prenose preko adrese, ispred imena svake varijable treba dodati i adresni operator & (operator za dodjeljivanje adrese).

Oznake formata tipa varijabli jednake su onima koje se koriste u ispisu, ali mora se paziti kako se odvajaju u listi formata jer to određuje način unosa podataka pri izvođenju programa. Ako su oznake formata odvojene zarezom i vrijednosti varijabli se pri upisu podataka odvajaju zarezom. Ako nema zareza, vrijednosti se odvajaju razmakom. 

Primjer

Linija programa

     scanf("%d,%f", &a,&b);

traži od korisnika da, koristeći se tipkovnicom, upiše dva broja (jedan cijeli i jedan realni), te da ih pri upisivanju odvoji zarezom.

Zadatak 1.

Napišimo program koji učitava dva cijela broja s tipkovnice i na zaslonu ispisuje njihov zbroj. Ne zaboravite najaviti i varijable.

Rješenje

#include<stdio.h>
int main()
{
     int a,b;
     printf("Unesi dva cijela broja ");
     scanf("%d %d",&a,&b);
     printf("Rezultat %d+%d je %d\n",a,b,a+b);
     return 0;
}

 

Takav je program općenitiji. Računa vrijednosti zbroja za bilo koja dva unesena cijela broja. Varijable smo učitali s razmakom.

Zadatak 2.

Koje će vrijednosti biti pridružene varijablama a i b nakon  što se izvrši ovaj blok naredbi, a nakon pokretanja upišu se redom brojevi 58, 35, 27?

main()
{
     int a,b;
     float d;
     scanf("%d,%f,%d", &b,&d,&a);
}

Napomena: U ovom isječku programa nema naredbe return 0;, pa zato nema ni riječi int u najavi funkcije main(). S obzirom na to da je ovo isječak kôda potreban da biste naučili pravilno pročitati program, ovakav je zapis ispravan!

Rješenje

a = 27

b = 58

d = 35.000000

Zadatak 3.

Što će se ispisati nakon ovog bloka naredbi?

main()
{
     const char a = 'A';
     printf("%d",a);
}

Rješenje

Na zaslonu će se ispisati cijeli broj 65 jer je to dekadska vrijednost znaka 'A' prema ASCII kôdu. Ako u printf() funkciji %d zamijenimo s %c, dobit ćemo ispis slova A. Isprobajte!

Zadatak 4.

Što će se ispisati nakon ovog bloka naredbi ako se redom upišu brojevi 2814, 589 i 13?

main()
{
     int a,b;
     float d;
     scanf(″%d,%d,%f", &a,&b,&d);
     printf(″%6d\n%4d\n%.2f", a,b,d);
}

 

Rješenje

□□2814

□589

13.00

Napomena: Kvadratići označuju prazno mjesto na zaslonu.