Professional Documents
Culture Documents
Resenja Vez6
Resenja Vez6
UNIVERZITET U NIŠU
ELEKTRONSKI FAKULTET
KATEDRA ZA RAČUNARSTVO
ALGORITMI I PROGRAMIRANJE
Zadatak za samostalni rad za 6. laboratorijsku vežbu
oblast: STRINGOVI I FAJLOVI
Zadatak 1.
Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati strukturni
program koji iz fajla "brojevi.txt" učitava niz celih brojeva, određuje njihovu aritmetičku
sredinu i upisuje je na kraj istog fajla.
#include <stdio.h>
void main() {
f = fopen("brojevi.txt", "r+");
if (!f) {
printf("Greska. Fajl nije pronadjen u direktorijumu.");
return;
}
while (!feof(f)) {
fscanf(f, "%d", &x);
S += x;
i++;
}
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
Zadatak 2.
Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati strukturni
program koji izdvaja reči iz zadate rečenice, i svaku izdvojenu reč upisuje u novi red
tekstualnog fajla "reci.txt".
#include <stdio.h>
#include <string.h>
void main() {
f = fopen("reci.txt", "w");
if (!f) {
printf("Doslo je do greske prilikom otvaranja ili kreiranja fajla.");
return;
}
gets(red);
rec = strtok(red, delimetri);
while (rec) {
fprintf(f, "%s\n", rec );
rec = strtok(NULL, delimetri);
}
fclose(f);
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
Zadatak 3.
Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati strukturni
program koji prikazuje sva slova unete rečenice koja se u rečenici javljaju k ili više puta.
Rečenicu u vidu stringa zadaje korisnik, kao i celobrojni parametar k.
#include <stdio.h>
#include <string.h>
void main() {
j = 0;
n = 0;
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
/*
red = niz karaktera u koji se upisuje ucitani red
nadjeno = niz karaktera u koji se upisuju nadjena slova
k = parametar koji se trazi u zadatku
i, j = pomocni brojaci
n = pomocni brojac za nadjena jednaka slova
N = broj nadjenih odgovarajucih slova
U ASCII je
A=65
Z=90
a=97
z=122
*/
Zadatak 4.
Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati strukturni
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
program koji zadatu rečenicu modifikuje tako što poslednju reč prebacuje na početak
rečenice.
Smatrati da su reči razdvojene sa po tačno jednim blanko znakom. Rečenicu u vidu stringa
zadaje korisnik. Prikazati modigikovani string.
#include <stdio.h>
#include <string.h>
void main() {
gets(red);
strcpy(red1, red);
Rec[strlen(red1)] = '\0';
printf("%s\n", Rec);
}
/*
red1 se uvodi jer funkcija strtok menja sadrzaj stringa red s toga se pravi kopija
unetog sadrzaja kako ne bi bio izgubljen.
*/
Zadatak 5.
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
void main() {
gets(R);
scanf("%s", Rec);
ind = R - 1;
while (ind = strstr(ind + 1, Rec)) n++;
printf("%d\n", n);
}
Zadatak 6.
U fajlu „binarne-cifre.txt“ zapamćene su binarne cifre nekog pozitivnog celog broja i to tako
da je na početku fajla zapamćena cifra najmanje težine, a za njom i ostale cifre po težini,
svaka
u novom redu. Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati
strukturni program koji iz zadatog fajla čita cifre i prikazuje dekadnu reprezentaciju
zapamćenog binarnog broja.
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
#include <stdio.h>
#include <math.h>
void main() {
FILE* f;
int c, B=0, i=0;
f = fopen("binarne-cifre.txt", "r");
if (!f) {
printf("Doslo je do greske prilikom otvaranja fajla.");
return;
}
while (!feof(f)) {
fscanf(f, "%d", &c);
B += c * pow(2, i++);
}
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
Zadatak 7.
Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati strukturni
program koji proverava da li tekst u fajlu "tekst.txt" sadrži reč koju zadaje korisnik sa
tastature.
#include <stdio.h>
#include <math.h>
#include <string.h>
void main() {
FILE* f;
char rec[50], trazeno[50];
int nadjeno = 0;
f = fopen("tekst.txt", "r");
gets(trazeno);
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
if (!f) {
printf("Doslo je do greske prilikom otvaranja fajla.");
return;
}
Zadatak 8.
Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati strukturni
program koji vrši nadovezivanje jednog zadatog stringa na drugi zadati string bez korišćenja
bibliotečke funkcije strcat. Prikazati unete stringove, kao i rezultujući string.
Opciono: nadovezivanje implementirati u vidu korisničke funkcije nadovezi(...)
#include <stdio.h>
char* nadovezi(char* s1, char* s2) {
int i = 0, j = 0;
s1[i + j] = s2[j];
return s1;
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
void main() {
gets(s1);
gets(s2);
nadovezi(s1, s2);
printf("%s\n", s1);
}
Zadatak 9.
Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati strukturni
program kojim unetu rečenicu "ispravlja" tako što sva velika slova zamenjuje odgovarajućim
malim slovima. Prikazati modifikovani string. Napomena: razlika kodova odgovarajućih slova
u ASCII tabeli je uvek konstantna i iznosi 'a'-'A'.
#include <stdio.h>
void main() {
char r[100];
int i;
gets(r);
for (i = 0; i <= strlen(r); i++)
if (r[i] >= 65 && r[i] <= 90) r[i] += 'a' - 'A';
printf("%s\n", r);
}
Zadatak 10.
Nacrtati strukturni dijagram toka algoritma i na programskom jeziku C napisati strukturni
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
program koji učitava rečenicu po rečenicu iz fajla "recenice.txt", i u fajl "sadrze.txt" upisuje
samo one koje imaju više od m karaktera.
#include <stdio.h>
void main() {
scanf("%d", &m);
f = fopen("recenice.txt", "r");
g = fopen("sadrze.txt", "w");
if (!f || !g) {
printf("Doslo je do greske prilikom otvranja ili kreiranja fajlova.");
return;
}
while (!feof(f))
fscanf(f, "%c", &recenice[i++]);
if (k > m) {
for (l = poc; l <= k + poc; l++) fprintf(g, "%c",
recenice[l]);
}
k = -1;
poc = j + 1;
}
k++;
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
}
fclose(f);
fclose(g);
}
/*
recenice = niz karaktera u koji se prepisuje ucitani fajl recenice.txt;
i = pomocni brojac u koji se smesta (broj karaktera)+1 ucitanih iz fajla recenice.txt;
m = parametar trazen u zadatku;
j = pomocni brojac kojim se prolazi for petljom kroz sve ucitane karaktere sacuvane u
nizu -recenice-;
k = brojac karaktera od posledenjeg znaka interpunkcije ili od pocetka dokumenta za
prvi put;
poc = skladisti indeks prvog karatera u nizu nakon prethodnog znaka interpunkcije (ili
pocetak niza za prvi put);
l = pomocni brojac za upisivanje u fajl sadrze.txt recenice od trenutnog indeksa -poc-
do novopronadjenog znaka interpunkcije;
*/
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
Gavric Aleksandar
LAB Prakt AIP Vezba 6 2017
Gavric Aleksandar