Euba Fhi Hiu 2009 Programovanie A Riesenia Lubomir Turna ZadProgAjazC

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 106

// begin file 04\01.

c
/*
1. urobte program, ktorému zadáte císlo dekadicky a výpisom bude jeho hexadecimálna ho
*/
#include <stdio.h>
main()
{
int i;
scanf("%d", &i);
printf("%x\n", i);
}
// end file 04\01.c
// begin file 04\02.c
/*
2. Urobte program s výpisom, ktorý vypocíta zo zadanej hodnoty (ceny) zadanú dan.
*/
#include <stdio.h>
main()
{
int i;
int dan;
scanf("%d", &i);
scanf("%d", &dan);
printf("%d\n", i*dan/100);
}
// end file 04\02.c
// begin file 04\03.c
/*
3. Urobte program, ktorý nacíta reálne císlo a vypí e jeho celocíselnú cast, desatinnú
*/
#include <stdio.h>
main()
{
float f;
scanf("%f", &f);
printf("%d\n", (int) f);
printf("%f\n", f - (int) f);
}
// end file 04\03.c
// begin file 04\04.c
/*
4. Urobte program, ktorý vyu ije súcasne binárne operátory aj operátory unárne pre tie
*/
main()
{
int i = 5;
int k;
i = 5;
k = i + 8;
i = i + 1;
/* s unarnym operatorom */
k = 5;
k = i++ + 8;
}
// end file 04\04.c
// begin file 04\05.c
/*
5. Urobte program, ktorý umo ní zadat dopredu stanovený pocet velkých písmen a vypí e
*/
main()
{
int i;
int n = 5;
char c;
for (i = 0; i < 5; i++) {
c = getchar();
c = c - 'A' + 'a';
printf("%c\n", c);
}
}
// end file 04\05.c
// begin file 04\06.c
/*
6. Urobte program so v emo ným vyu itím operátora /a % pri delení císel.
*/
main()
{
int i;
i = 16;
if (i % 2 == 0)
printf("i je parne\n");
else
printf("i je neparne\n");
if (i / 3 >= 5)
printf("i je vacsie rovne ako 3*5\n");
else
printf("i je mensie ako 3*5\n");
}
// end file 04\06.c
// begin file 04\07.c
/*
8. Urobte program, ktorý vypí e text:
Na 100% som si "isty ze znaky /,\, %, , ´; *, /*.......*,//,\\,"",",%%,...........
vypisat.
Poznámka: príkaz printf(); mô e pokracovat na dal om riadku.
*/
main()
{
printf("Na 100%% som si \"isty ze znaky /,\\, %%, , ´; *, /*.......*,//,\\\\,\"\
}
// end file 04\07.c
// begin file 04\08.c
/*
7. Urobte program pre výpocet a výpis aritmetického priemeru dopredu zadaného poctu cí
*/
main()
{
int i;
int n = 5;
int cislo;
int suma = 0;
for (i = 0; i < n; i++) {
scanf("%d", &cislo);
suma += cislo;
}
printf("\apriemer je %f\n", suma/n);
}
// end file 04\08.c
// begin file 04\09.c
/*
9. Urobte program pre výpocet obvodu a obsahu tvorca pre z klávesnice zadanú velkost
*/
main()
{
int i;
scanf("%d", &i);
printf("obvod je %d\n", 4*i);
printf("obsah je %d\n", i*i);
}
// end file 04\09.c
// begin file 04\10.c
/*
10. Urobte program pre výpocet obvodu a obsahu obdl nika pre z klávesnice zadané velkos
*/
main()
{
int i;
int j;
scanf("%d %d", &i, &j);
printf("obvod je %d\n", i+i+j+j);
printf("obsah je %d\n", i*j);
}
// end file 04\10.c
// begin file 04\11.c
/*
11. Urobte program pre obvod a obsah kru nice /kruhu pre dopredu z klávesnice zadaný po
*/
main()
{
int i;
scanf("%d", &i);
printf("obvod je %f\n", 2*3.14*i);
printf("obsah je %f\n", 3.14*i*i);
}
// end file 04\11.c
// begin file 04\12.c
/*
12. Urobte program pre ilustráciu arit. operácií (+,-,*,/) binárnym operátorom aj s výp
*/
main()
{
int i;
int j;
scanf("%d %d", &i, &j);
printf("i+j = %d\n", i + j);
printf("i-j = %d\n", i - j);
printf("i*j = %d\n", i * j);
printf("i/j = %d\n", i / j);
}
// end file 04\12.c
// begin file 04\13.c
/*
13. Urobte program ako v príklade c. 12 ale pou ite unárne operátory.
*/
main()
{
???
}
// end file 04\13.c
// begin file 04\14.c
/*
14. Urobte program ako v príklade c. 12 ale pre aritmet. operácie, skrátené priradova
*/
main()
{
int i;
int j;
int k;
scanf("%d %d", &i, &j);
k = i;
k += j;
printf("i+j = %d\n", k);
k = i;
k -= j;
printf("i-j = %d\n", k);
k = i;
k *= j;
printf("i*j = %d\n", k);
k = i;
k /= j;
printf("i/j = %d\n", k);
}
// end file 04\14.c
// begin file 04\15.c
/*
15. Urobte program, ktorý umo ní z klávesnice nacítat znak a vypí e znak o 3 pozície v
*/
main()
{
char c;
c = getchar();
printf("%c\n", c + 3);
}
// end file 04\15.c
// begin file 04\16.c
/*
16. Urobte program, ktorý umo ní z klávesnice nacítat znak a vypí e jeho dekadickú pozí
*/
main()
{
char c;
c = getchar();
printf("%d\n", c);
}
// end file 04\16.c
// begin file 04\17.c
/*
17. Urobte program, ktorý umo ní z klávesnice nacítat znak a vypí e jeho hexadecimálnu
*/
main()
{
char c;
c = getchar();
printf("%x\n", c);
}
// end file 04\17.c
// begin file 04\18.c
/*
18. Urobte program, ktorý umo ní zadat z klávesnice císla pre operáciu y = 3.0(x/3.0 +
*/
main()
{
int x;
int z;
int v;
int y;
scanf("%d %d %d", &x, &z, &v);
y = 3.0*(x/3.0 + 4.3/z + 4.12) / 13.7 + v;
printf("%d\n", y);
}
// end file 04\18.c
// begin file 04\19.c
/*
19. Urobte program, ktorý umo ní zaka dým na nový riadok vypísat z klávesnice zadané zn
*/
main()
{
char c;
while (1) {
printf("zadaj znaky:\n");
while (1) {
c = getchar();
printf("%c\n", c);
if (c == '\n')
break;
}
}
}
// end file 04\19.c
// begin file 04\20.c
/*
20. Urobte program ako v príklade c. 19, ale výpis v jednom riadku.
*/
main()
{
char c;
while (1) {
printf("zadaj znaky:");
while (1) {
c = getchar();
printf("%c", c);
if (c == '\n')
break;
}
}
}
// end file 04\20.c
// begin file 05\01.c
/*
1. Dopí te program, aby pomocou explicitnej konverzie delenie f = i/j; dalo hodnotu 2.
*/
#include <stdio.h>
main()
{
int i = 10, j = 4;
float f = (float) i / j;
printf("%f\n", f);
}
// end file 05\01.c
// begin file 05\02.c
/*
2. Urobte program, ktorý pomocou ternárneho operátora porovná dve císla a hned vypí e
v tvare:
mensie:
vacsie:
*/
#include <stdio.h>
main()
{
int i = 10, j = 4;
i <= j ? printf("mensie:%d\nvacsie:%d\n", i, j) : printf("mensie:%d\nvacsie:%d\n",
}
// end file 05\02.c
// begin file 05\03.c
/*
3. Urobte program pre výpocet n! pre zadané n. (Pozor na typ pre výsledok ! - mo nost
*/
#include <stdio.h>
main()
{
int n = 5;
float vysledok = 1;
while (n > 1) {
vysledok *= n;
n--;
}
printf("%f\n", vysledok);
}
// end file 05\03.c
// begin file 05\04.c
/*
4. Urobte program, ktorý bude obsahovat sekvenciu:
i=5:
printf("%d\n",i==8);
printf("%d\n",i==8);
printf("%d\n",i==8);
Zdôvodnite dosiahnuté výsledky.
*/
#include <stdio.h>
main()
{
int i;
i=5;
printf("%d\n",i==8);
printf("%d\n",i>=8);
printf("%d\n",i<=8);
/*
program vypise:
0
0
1
co su logicke hodnoty (1 je pravda, 0 nepravda) porovnania cisla 5 s cislom 8 na "zhoda", "
*/
}
// end file 05\04.c
// begin file 05\05.c
/*
5. Napí te program, ktorý precíta 2 znaky z intervalu 0 9, A F (cítanie nie 1 hexa
*/
#include <stdio.h>
main()
{
char c1;
char c2;
int i1;
int i2;
int cislo;

c1 = getchar();
c2 = getchar();
if (c1 >= '0' && c1 <= '9')
i1 = c1 - '0';
if (c1 >= 'A' && c1 <= 'F')
i1 = c1 - 'A' + 10;
if (c2 >= '0' && c2 <= '9')
i2 = c2 - '0';
if (c2 >= 'A' && c2 <= 'F')
i2 = c2 - 'A' + 10;
cislo = (16 * i1) + i2;
printf("%d\n", cislo);
}
// end file 05\05.c
// begin file 05\06.c
/*
6. Vyskú ajte program, v ktorom bude sekvencia:
int c;
if((c=getchar())>='A'&&c<='Z´)
printf("%d\n",c);
zamente cast zápisu (c=getchar()) za c = getchar ()
*/
#include <stdio.h>
main()
{
/* program pri zadani vstupu CC vypise 68 a 1 pretoze v druhom pripade sa najprv vy
int c;
if((c=getchar())>='A'&&c<='Z')
printf("%d\n",c);
if(c = getchar()>='A'&&c<='Z')
printf("%d\n",c);
}
// end file 05\06.c
// begin file 05\07.c
/*
7. precítajte znak, podla jeho charakteru vypí te:
printf ("Znak %c je cislo.\n ); alebo
printf ("Znak%c je velke pismeno.\n ); alebo
printf ("Znak%c je male piseno.\n ); alebo
printf ("Znak%c je iny znak.\n ; alebo...
*/
#include <stdio.h>
main()
{
char c;
c = getchar();
if (c >= '0' && c <= '9') {
printf ("Znak %c je cislo.\n", c);
}
else if (c >= 'A' && c <= 'Z') {
printf ("Znak %c je velke pismeno.\n", c);
}
else if (c >= 'a' && c <= 'z') {
printf ("Znak %c je male piseno.\n", c);
}
else {
printf ("Znak %c je iny znak.\n", c);
}
}
// end file 05\07.c
// begin file 05\08.c
/*
8. Overte, e sekvencie
if(vyraz !=0) vs. if(vyraz)
if(vyraz==0) vs. if(!vyraz)
sa chovajú rovnako.
*/
#include <stdio.h>
main()
{
int vyraz = 1;
if (vyraz != 0) {
printf("vyraz != 0\n");
}
if (vyraz) {
printf("vyraz\n");
}
vyraz = 0;
if (vyraz == 0) {
printf("vyraz == 0\n");
}
if (!vyraz) {
printf("!vyraz\n");
}
}
// end file 05\08.c
// begin file 05\09.c
/*
9. Vyu ite sekvenciu programu pre test skráteného vyhodnotenia:
if(i==5&&++j==3)
printf("podmienka funguje ! \n );
*/
#include <stdio.h>
main()
{
int i;
int j;
/* nastavim spravne hodnoty */
i = 5;
j = 2;
if(i==5 && ++j==3)
printf("podmienka funguje ! \n");
}
// end file 05\09.c
// begin file 05\10.c
/*
10. Precítajte z klávesnice znaky a po zadanie ´\n´ a spocítajte pocet velkých písmen,
*/
#include <stdio.h>
main()
{
char c;
int velke = 0;
int male = 0;
int cisla = 0;
int ine = 0;
while (1) {
c = getchar();
if (c == '\n')
break;
if (c >= 'A' && c <= 'Z')
velke++;
else if (c >= 'a' && c <= 'z')
male++;
else if (c >= '0' && c <= '9')
cisla++;
else
ine++;
}
printf("velke: %d, male: %d, cisla: %d, ine: %d\n", velke, male, cisla, ine);
}
// end file 05\10.c
// begin file 05\11.c
/*
11. Pou ite cyklus for (break, continue) pre nacítanie znakov z klávesnice, nech progra
zadavaj z klavesnice!
zadaj i.znak:
Znak je:
i poradové císlo, musí byt aktuálne
Po ukoncení zadávania program vypocíta a vypí e % výskyt velkých, malých písmen, císlic, in
*/
#include <stdio.h>
main()
{
char c;
int velke = 0;
int male = 0;
int cisla = 0;
int ine = 0;
int i;
for (i = 0; i < 10; i++) {
printf("zadavaj z klavesnice!\n");
printf("zadaj %d.znak:\n", i+1);
c = getchar();
getchar();
printf("znak je:%c\n", c);
if (c >= 'A' && c <= 'Z')
velke++;
else if (c >= 'a' && c <= 'z')
male++;
else if (c >= '0' && c <= '9')
cisla++;
else
ine++;
}
printf("velke: %d, male: %d, cisla: %d, ine: %d\n", velke, male, cisla, ine);
}
// end file 05\11.c
// begin file 05\12.c
/*
12. Napí te program, kt. po zadaní dvoch reálnych císel vypí e v etky celé císla le iac
*/
#include <stdio.h>
main()
{
float a;
float b;
scanf ("%f %f", &a, &b);
a = (int) (a + 1);
while (a < b) {
printf("%f\n", a);
a++;
}
}
// end file 05\12.c
// begin file 05\13.c
/*
13. Urobte program pre výpocet aritmetického priemeru a disperzie zo zadaných hodnôt z
*/
#include <stdio.h>
main()
{
int i;
float suma;
int pocet = 0;
while (1) {
scanf("%d", &i);
if (i == 0)
break;
suma += i;
pocet++;
}
printf("priemer je %f\ndisperzia sa neda vyratat, kedze nepouzivame pole\n", suma/p
}
// end file 05\13.c
// begin file 05\14.c
/*
14. Urobte program pre výpocet (2n)!=2*4*6*8....
*/
#include <stdio.h>
main()
{
int n = 6;
float suma = 1;
while (n > 0) {
suma *= 2*n;
n--;
}
printf("(2n)!=%f\n", suma);
}
// end file 05\14.c
// begin file 05\15.c
/*
15. Urobte program pre výpocet (2n+1)!=1*3*5*7....
*/
#include <stdio.h>
main()
{
int n = 6;
float suma = 1;
while (n >= 0) {
suma *= 2*n + 1;
n--;
}
printf("(2n+1)!=%f\n", suma);
}
// end file 05\15.c
// begin file 05\16.c
/*
16. Urobte príklad c. 10 s pou itím while.
*/
#include <stdio.h>
main()
{
// identicke rieseniu 10.
char c;
int velke = 0;
int male = 0;
int cisla = 0;
int ine = 0;
while (1) {
c = getchar();
if (c == '\n')
break;
if (c >= 'A' && c <= 'Z')
velke++;
else if (c >= 'a' && c <= 'z')
male++;
else if (c >= '0' && c <= '9')
cisla++;
else
ine++;
}
printf("velke: %d, male: %d, cisla: %d, ine: %d\n", velke, male, cisla, ine);
}
// end file 05\16.c
// begin file 05\17.c
/*
17. Urobte príklad c. 10 s pou itím do-while.
*/
#include <stdio.h>
main()
{
char c;
int velke = 0;
int male = 0;
int cisla = 0;
int ine = 0;
do {
c = getchar();
if (c == '\n')
break;
if (c >= 'A' && c <= 'Z')
velke++;
else if (c >= 'a' && c <= 'z')
male++;
else if (c >= '0' && c <= '9')
cisla++;
else
ine++;
} while (1);
printf("velke: %d, male: %d, cisla: %d, ine: %d\n", velke, male, cisla, ine);
}
// end file 05\17.c
// begin file 05\18.c
/*
18. Urobte príklad c. 10 s pou itím for (return,break,...).
*/
#include <stdio.h>
main()
{
char c;
int velke = 0;
int male = 0;
int cisla = 0;
int ine = 0;
for (;;) {
c = getchar();
if (c == '\n')
break;
if (c >= 'A' && c <= 'Z')
velke++;
else if (c >= 'a' && c <= 'z')
male++;
else if (c >= '0' && c <= '9')
cisla++;
else
ine++;
}
printf("velke: %d, male: %d, cisla: %d, ine: %d\n", velke, male, cisla, ine);
}
// end file 05\18.c
// begin file 05\19.c
/*
19. S pou itím for vypisujte prirodzené císla, nech sa program pýta ci e te , vhodne u
*/
#include <stdio.h>
main()
{
char c;
int i;
for (i = 1; ; i++) {
printf("%d\n", i);
printf("ci este (ano = ENTER)?\n");
c = getchar();
if (c != '\n')
break;
}
}
// end file 05\19.c
// begin file 05\20.c
/*
20. Urobte program c. 19 s pou itím while.
*/
#include <stdio.h>
main()
{
char c;
int i;
i = 1;
while (1) {
printf("%d\n", i);
printf("ci este (ano = ENTER)?\n");
c = getchar();
if (c != '\n')
break;
i++;
}
}
// end file 05\20.c
// begin file 05\21.c
/*
21. Urobte program c. 19 s pou itím do-while.
*/
#include <stdio.h>
main()
{
char c;
int i;
i = 1;
do {
printf("%d\n", i);
printf("ci este (ano = ENTER)?\n");
c = getchar();
if (c != '\n')
break;
i++;
} while (1);
}
// end file 05\21.c
// begin file 05\22.c
/*
22. Na programe s prík. for urobte výpis celých hodnôt medzi dvoma z klávesnice zadaným
*/
#include <stdio.h>
main()
{
int i;
float a;
float b;
scanf("%f %f", &a, &b);
for (i = (int) a + 1; i < b; i++) {
printf("%d\n", i);
}
}
// end file 05\22.c
// begin file 05\23.c
/*
23. Urobte príklad c. 22 s pou itím while.
*/
#include <stdio.h>
main()
{
int i;
float a;
float b;
scanf("%f %f", &a, &b);
i = (int) a + 1;
while (i < b) {
printf("%d\n", i);
i++;
}
}
// end file 05\23.c
// begin file 05\24.c
/*
24. Urobte príklad c. 22 s pou itím do-while.
*/
#include <stdio.h>
main()
{
int i;
float a;
float b;
scanf("%f %f", &a, &b);
i = (int) a + 1;
if (i < b) {
do {
printf("%d\n", i);
i++;
} while (i < b);
}
}
// end file 05\24.c
// begin file 06\01.c
/*
1. Urobte text súbor ZNAKY.TXT s náhodne usporiadanými znakmi,
?ítanie tohto súboru pomocou do-while ukon?ite pre?ítaním znaku
´q´(Quit) a zárove? ukon?ite program, urobte výpis pod?a znakov:
pre: 0-9 "?íslo"
a-z "malé písmeno"
A-Z "ve?ké písmeno"
iné "iný znak"
*/
#include <stdio.h>
main()
{
FILE *f;
char c;
f = fopen("ZNAKY.TXT", "r");
if (f == NULL)
return;
do {
c = fgetc(f);
if (c == 'q')
break;
printf("%c - ", c);
if (c >= '0' && c <= '9') {
printf("cislo\n");
}
else if (c >= 'a' && c <= 'z') {
printf("male pismeno\n");
}
else if (c >= 'A' && c <= 'Z') {
printf("velke pismeno\n");
}
else {
printf("iny znak\n");
}
} while (!feof(f));
fclose(f);
}
// end file 06\01.c
// begin file 06\02.c
/*
2. Urobte text súbor zlo ený z velkých aj malých písmen, urobte následne 2 súbory do
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *subor_male;
FILE *subor_velke;
char c;
f = fopen("ZNAKY.TXT", "r");
if (f == NULL)
return;
subor_male = fopen("male.txt", "w");
subor_velke = fopen("velke.txt", "w");
while (!feof(f)) {
c = fgetc(f);
if (c >= 'a' && c <= 'z') {
fputc(c, subor_male);
}
if (c >= 'A' && c <= 'Z') {
fputc(c, subor_velke);
}
}
fclose(f);
fclose(subor_male);
fclose(subor_velke);
}
// end file 06\02.c
// begin file 06\03.c
/*
3. Urobte text súbor zlo ený z velkých aj malých písmen, urobte následne súbor z prvéh
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
f = fopen("ZNAKY.TXT", "r");
if (f == NULL)
return;
f2 = fopen("OPACNE.TXT", "w");
while (!feof(f)) {
c = fgetc(f);
if (c == EOF)
break;
if (c >= 'a' && c <= 'z') {
fputc(c - 'a' + 'A', f2);
}
else if (c >= 'A' && c <= 'Z') {
fputc(c - 'A' + 'a', f2);
}
else {
fputc(c, f2);
}
}
fclose(f);
fclose(f2);
}
// end file 06\03.c
// begin file 06\04.c
/*
4. Urobte text súbor zlo ený z velkých aj malých písmen a následne súbor, do ktorého v
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *subor_male;
char c;
f = fopen("ZNAKY.TXT", "r");
if (f == NULL)
return;
subor_male = fopen("male.txt", "w");
while (!feof(f)) {
c = fgetc(f);
if (c >= 'a' && c <= 'z') {
fputc(c, subor_male);
}
}
fclose(f);
fclose(subor_male);
}
// end file 06\04.c
// begin file 06\05.c
/*
5. Napí te program, ktorý sa pokúsi cítat neexistujúci súbor.
*/
#include <stdio.h>
main()
{
FILE *f;
f = fopen("neexistuje", "r");
fgetc(f);
fclose(f);
}
// end file 06\05.c
// begin file 06\06.c
/*
6. Napí te program, ktorý sa pokúsi písat do neexistujúceho súboru.
*/
#include <stdio.h>
main()
{
FILE *f;
f = fopen("neexistuje_pisat", "w");
fputs("bol som tu\n", f);
fclose(f);
}
// end file 06\06.c
// begin file 06\07.c
/*
7. Napí te program, ktorý cíta zo súboru znaky na obrazovku alebo do nového súboru (pr
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;

f = fopen("ZNAKY.TXT", "r");
if (f == NULL)
return;
printf("Pisat do suboru alebo na obrazovku? [s/o]\n");
scanf("%c", &c);
if (c == 's') {
f2 = fopen("ZNAKY07.TXT", "w");
}
else {
f2 = stdout;
}
while (!feof(f)) {
c = fgetc(f);
if (c == EOF)
break;
fputc(c, f2);
}
fclose(f);
fclose(f2);
}
// end file 06\07.c
// begin file 06\08\08.c
/*
8. Urobte program, ktorý do súboru CISLA.TXT zapí e postupne 100 real císel ako násobo
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
float cislo;
int i;
f = fopen("CISLA.TXT", "w+");
for (i = 0; i < 100; i++) {
fprintf(f, "%f\n", (i+1)*2.71829);
}
fclose(f);

f = fopen("CISLA.TXT", "r");
f2 = fopen("KCISLA.TXT", "w+");
while (!feof(f)) {
fscanf(f, "%f", &cislo);
fprintf(f2, "$%f\n", cislo);
}
fclose(f);
fclose(f2);

f = fopen("KCISLA.TXT", "r");
f2 = fopen("KKCISLA.TXT", "w+");
while (!feof(f)) {
fscanf(f, "$%f\n", &cislo);
fprintf(f2, "%f\n", cislo);
}
fclose(f);
fclose(f2);
}
// end file 06\08\08.c
// begin file 06\08\CISLA.TXT
2.718290
5.436580
8.154870
10.873160
13.591450
16.309740
19.028030
21.746320
24.464610
27.182900
29.901190
32.619480
35.337770
38.056060
40.774350
43.492640
46.210930
48.929220
51.647510
54.365800
57.084090
59.802380
62.520670
65.238960
67.957250
70.675540
73.393830
76.112120
78.830410
81.548700
84.266990
86.985280
89.703570
92.421860
95.140150
97.858440
100.576730
103.295020
106.013310
108.731600
111.449890
114.168180
116.886470
119.604760
122.323050
125.041340
127.759630
130.477920
133.196210
135.914500
138.632790
141.351080
144.069370
146.787660
149.505950
152.224240
154.942530
157.660820
160.379110
163.097400
165.815690
168.533980
171.252270
173.970560
176.688850
179.407140
182.125430
184.843720
187.562010
190.280300
192.998590
195.716880
198.435170
201.153460
203.871750
206.590040
209.308330
212.026620
214.744910
217.463200
220.181490
222.899780
225.618070
228.336360
231.054650
233.772940
236.491230
239.209520
241.927810
244.646100
247.364390
250.082680
252.800970
255.519260
258.237550
260.955840
263.674130
266.392420
269.110710
271.829000
// end file 06\08\CISLA.TXT
// begin file 06\08\KCISLA.TXT
$2.718290
$5.436580
$8.154870
$10.873160
$13.591450
$16.309740
$19.028030
$21.746321
$24.464609
$27.182899
$29.901190
$32.619480
$35.337769
$38.056061
$40.774349
$43.492641
$46.210930
$48.929218
$51.647511
$54.365799
$57.084091
$59.802380
$62.520672
$65.238960
$67.957253
$70.675537
$73.393829
$76.112122
$78.830406
$81.548698
$84.266991
$86.985283
$89.703568
$92.421860
$95.140152
$97.858437
$100.576729
$103.295021
$106.013313
$108.731598
$111.449890
$114.168182
$116.886467
$119.604759
$122.323051
$125.041344
$127.759628
$130.477921
$133.196213
$135.914505
$138.632797
$141.351074
$144.069366
$146.787659
$149.505951
$152.224243
$154.942535
$157.660812
$160.379105
$163.097397
$165.815689
$168.533981
$171.252274
$173.970566
$176.688843
$179.407135
$182.125427
$184.843719
$187.562012
$190.280304
$192.998596
$195.716873
$198.435165
$201.153458
$203.871750
$206.590042
$209.308334
$212.026627
$214.744904
$217.463196
$220.181488
$222.899780
$225.618073
$228.336365
$231.054657
$233.772934
$236.491226
$239.209518
$241.927811
$244.646103
$247.364395
$250.082687
$252.800964
$255.519257
$258.237549
$260.955841
$263.674133
$266.392426
$269.110718
$271.829010
$271.829010
// end file 06\08\KCISLA.TXT
// begin file 06\08\KKCISLA.TXT
2.718290
5.436580
8.154870
10.873160
13.591450
16.309740
19.028030
21.746321
24.464609
27.182899
29.901190
32.619480
35.337769
38.056061
40.774349
43.492641
46.210930
48.929218
51.647511
54.365799
57.084091
59.802380
62.520672
65.238960
67.957253
70.675537
73.393829
76.112122
78.830406
81.548698
84.266991
86.985283
89.703568
92.421860
95.140152
97.858437
100.576729
103.295021
106.013313
108.731598
111.449890
114.168182
116.886467
119.604759
122.323051
125.041344
127.759628
130.477921
133.196213
135.914505
138.632797
141.351074
144.069366
146.787659
149.505951
152.224243
154.942535
157.660812
160.379105
163.097397
165.815689
168.533981
171.252274
173.970566
176.688843
179.407135
182.125427
184.843719
187.562012
190.280304
192.998596
195.716873
198.435165
201.153458
203.871750
206.590042
209.308334
212.026627
214.744904
217.463196
220.181488
222.899780
225.618073
228.336365
231.054657
233.772934
236.491226
239.209518
241.927811
244.646103
247.364395
250.082687
252.800964
255.519257
258.237549
260.955841
263.674133
266.392426
269.110718
271.829010
271.829010
// end file 06\08\KKCISLA.TXT
// begin file 06\09.c
/*
9. Urobte program, ktorý do súboru C.TXT zapí e postupne 100 reál císel ako násobok cí
*/
#include <stdio.h>
main()
{
FILE *f;
int i;
float cislo;
float suma = 0;
f = fopen("C.TXT", "w");
if (f == NULL)
return;
for (i = 0; i < 100; i++) {
fprintf(f, "%f\n", (i + 1) * (float) 1/3);
}
fclose(f);
f = fopen("C.TXT", "r");
i = 0;
while (!feof(f)) {
fscanf(f, "%f", &cislo);
suma += cislo;
i++;
}
fclose(f);
f = fopen("C.TXT", "a");
fprintf(f, "%f\n", suma/i);
fclose(f);
}
// end file 06\09.c
// begin file 06\10\10.c
/*
10. Urobte program, ktorý umo ní v cykle nacítat do súboru císla ako postupný násobok h
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
int i;
float a;
float b;
char c;
float cislo;
f = fopen("C.TXT", "w");
if (f == NULL)
return;
for (i = 0; i < 100; i++) {
fprintf(f, "%f\n", (i + 1) * 3.1415927);
}
fclose(f);
printf("Zadaj hranice intervalu\n");
scanf("%f %f", &a, &b);
getchar();
f = fopen("C.TXT", "r");
f2 = fopen("C2.TXT", "w");
while (!feof(f)) {
fscanf(f, "%f", &cislo);
if (cislo >= a && cislo <= b) {
fprintf(f2, "%f\n", cislo);
}
}
fclose(f);
fclose(f2);
f = fopen("C2.TXT", "r");
printf("Vypisat celociselnu cast do suboru alebo na obrazovku? [s/o]\n");
scanf("%c", &c);
getchar();
if (c == 's') {
f2 = fopen("C3.TXT", "w");
}
else {
f2 = stdout;
}
while (!feof(f)) {
fscanf(f, "%f", &cislo);
fprintf(f2, "%d\n", (int) cislo);
}
fclose(f);
fclose(f2);
}
// end file 06\10\10.c
// begin file 06\10\C.TXT
3.141593
6.283185
9.424778
12.566371
15.707964
18.849556
21.991149
25.132742
28.274334
31.415927
34.557520
37.699112
40.840705
43.982298
47.123891
50.265483
53.407076
56.548669
59.690261
62.831854
65.973447
69.115039
72.256632
75.398225
78.539817
81.681410
84.823003
87.964596
91.106188
94.247781
97.389374
100.530966
103.672559
106.814152
109.955744
113.097337
116.238930
119.380523
122.522115
125.663708
128.805301
131.946893
135.088486
138.230079
141.371671
144.513264
147.654857
150.796450
153.938042
157.079635
160.221228
163.362820
166.504413
169.646006
172.787599
175.929191
179.070784
182.212377
185.353969
188.495562
191.637155
194.778747
197.920340
201.061933
204.203525
207.345118
210.486711
213.628304
216.769896
219.911489
223.053082
226.194674
229.336267
232.477860
235.619452
238.761045
241.902638
245.044231
248.185823
251.327416
254.469009
257.610601
260.752194
263.893787
267.035379
270.176972
273.318565
276.460158
279.601750
282.743343
285.884936
289.026528
292.168121
295.309714
298.451306
301.592899
304.734492
307.876085
311.017677
314.159270
// end file 06\10\C.TXT
// begin file 06\10\C2.TXT
12.566371
15.707964
18.849556
21.991150
25.132742
28.274334
31.415928
// end file 06\10\C2.TXT
// begin file 06\10\C3.TXT
12
15
18
21
25
28
31
31
// end file 06\10\C3.TXT
// begin file 06\11\11.c
/*
11. Urobte program, ktorý doká e zo súboru nacítat císla, pred ktorými stojí vopred nez
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
f = fopen("ZNAKY.TXT", "r");
if (f == NULL)
return;
f2 = fopen("CISLA.TXT", "w");
while (!feof(f)) {
c = fgetc(f);
if (c >= '0' && c <= '9') {
fprintf(f2, "%c", c);
}
}
fclose(f);
fclose(f2);
}
// end file 06\11\11.c
// begin file 06\11\CISLA.TXT
123143333// end file 06\11\CISLA.TXT
// begin file 06\11\ZNAKY.TXT
1231eladksAjflWiftoZ4eiurerkjgldkfgqslkjfl3333skjf
// end file 06\11\ZNAKY.TXT
// begin file 06\12\12.c
/*
12. Urobte program, ktorý nacíta do súboru SUB.TXT rad císiel a následne vytvorí súbor
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
int i = 0;
int j;
int cislo;
f = fopen("SUB.TXT", "w");
while(1) {
j = 0;
printf("Zadaj cislo\n");
scanf("%d", &j);
if (j == 0)
break;
fprintf(f, "%d\n", j);
i++;
}
fclose(f);
f2 = fopen("REV.TXT", "w");
for ( ; i > 0; i--) {
f = fopen("SUB.TXT", "r");
for (j = 0; j < i; j++) {
fscanf(f, "%d", &cislo);
}
fprintf(f2, "%d\n", cislo);
fclose(f);
}
fclose(f2);
}
// end file 06\12\12.c
// begin file 06\12\REV.TXT
// end file 06\12\REV.TXT
// begin file 06\12\SUB.TXT
// end file 06\12\SUB.TXT
// begin file 06\13\13.c
/*
13. Urobte program, ktorý zo súboru typu text urobí súbor bin.
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
f = fopen("TEXT.TXT", "r");
f2 = fopen("BIN.TXT", "wb");
while(1) {
c = fgetc(f);
if (c == EOF)
break;
fputc(c, f2);
}
fclose(f);
fclose(f2);
}
// end file 06\13\13.c
// begin file 06\13\BIN.TXT
/*
13. Urobte program, ktorý zo súboru typu text urobí súbor bin.
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
f = fopen("TEXT.TXT", "r");
f2 = fopen("BIN.TXT", "wb");
while(1) {
c = fgetc(f);
if (c == EOF)
break;
fputc(c, f2);
}
fclose(f);
fclose(f2);
}
// end file 06\13\BIN.TXT
// begin file 06\13\TEXT.TXT
/*
13. Urobte program, ktorý zo súboru typu text urobí súbor bin.
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
f = fopen("TEXT.TXT", "r");
f2 = fopen("BIN.TXT", "wb");
while(1) {
c = fgetc(f);
if (c == EOF)
break;
fputc(c, f2);
}
fclose(f);
fclose(f2);
}
// end file 06\13\TEXT.TXT
// begin file 06\14\14.c
/*
14. Urobte program, ktorý z bin súboru urobí súbor text.
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
f = fopen("BIN.TXT", "rb");
f2 = fopen("TEXT.TXT", "w");
while(1) {
c = fgetc(f);
if (c == EOF)
break;
fputc(c, f2);
}
fclose(f);
fclose(f2);
}
// end file 06\14\14.c
// begin file 06\14\BIN.TXT
/*
14. Urobte program, ktorý z bin súboru urobí súbor text.
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
f = fopen("BIN.TXT", "rb");
f2 = fopen("TEXT.TXT", "w");
while(1) {
c = fgetc(f);
if (c == EOF)
break;
fputc(c, f2);
}
fclose(f);
fclose(f2);
}
// end file 06\14\BIN.TXT
// begin file 06\14\TEXT.TXT
/*
14. Urobte program, ktorý z bin súboru urobí súbor text.
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
char c;
f = fopen("BIN.TXT", "rb");
f2 = fopen("TEXT.TXT", "w");
while(1) {
c = fgetc(f);
if (c == EOF)
break;
fputc(c, f2);
}
fclose(f);
fclose(f2);
}
// end file 06\14\TEXT.TXT
// begin file 06\15\15.c
/*
15. Urobte program, ktorý vytvorí súbor písaného textu a následne urobí frekvencnú anal
*/
#include <stdio.h>
main()
{
FILE *f;
char c;
int i;
int pocet;
f = fopen("TEXT.TXT", "w");
fprintf(f, "Pisany text pre frekvencnu analyzu textu\n");
fclose(f);
for(i = 0; i < 256; i++) {
pocet = 0;
f = fopen("TEXT.TXT", "r");
while(1) {
c = fgetc(f);
if (c == EOF)
break;
if (c == i) {
pocet++;
}
}
fclose(f);
if (pocet > 0)
printf("Znak '%c' sa v subore vyskytuje %d krat\n", i, pocet);
}
}
// end file 06\15\15.c
// begin file 06\15\TEXT.TXT
Pisany text pre frekvencnu analyzu textu
// end file 06\15\TEXT.TXT
// begin file 06\16\16.c
/*
16. Urobte program pre výpis celých ?ísel zo zadaného intervalu a tieto zapí e do súbor
*/
#include <stdio.h>
main()
{
FILE *f;
int i;
int a;
int b;
float suma = 0;
printf("Zadaj hranice intervalu\n");
scanf("%d %d", &a, &b);
getchar();
f = fopen("C.TXT", "w");
for (i = a; i <= b; i++) {
fprintf(f, "%d\n", i);
suma += i;
}
fprintf(f, "%f\n", suma / (b - a + 1));
fclose(f);
}
// end file 06\16\16.c
// begin file 06\16\C.TXT
1
2
3
2.000000
// end file 06\16\C.TXT
// begin file 06\17\17.c
/*
17. Urobte program ako v príklade c. 16, ale císla zo zadaného intervalu nacíta z u ex
*/
#include <stdio.h>
main()
{
FILE *f;
int i;
int a;
int b;
int cislo;
float suma = 0;
printf("Zadaj hranice intervalu\n");
scanf("%d %d", &a, &b);
getchar();
f = fopen("C.TXT", "r");
while(!feof(f)) {
fscanf(f, "%d", &cislo);
if (cislo >= a && cislo <= b) {
printf("%d\n", cislo);
suma += cislo;
i++;
}
}
fclose(f);
f = fopen("C.TXT", "a");
fprintf(f, "%f\n", suma / i);
fclose(f);
}
// end file 06\17\17.c
// begin file 06\17\C.TXT
1
2
3
2
7
111
231
4
// end file 06\17\C.TXT
// begin file 06\18\18.c
/*
18. Urobte program ako v príklade c. 16, ale aritmetický priemer urobí postupne v dy pr
*/
#include <stdio.h>
main()
{
FILE *f;
int i;
int j;
int k;
int a;
int b;
int cislo;
int pocet = 0;
float suma;
printf("Zadaj hranice intervalu\n");
scanf("%d %d", &a, &b);
getchar();
f = fopen("C.TXT", "r");
while (!feof(f)) {
fscanf(f, "%d", &cislo);
pocet++;
}
fclose (f);
printf("%d - %d, %d\n", a, b, pocet);
for (i = 1; i < pocet; i++) {
suma = 0;
cislo = 0;
k = 0;
f = fopen("C.TXT", "r");
for (j = 0; j < i; j++) {
fscanf(f, "%d", &cislo);
if (cislo >= a && cislo <= b) {
suma += cislo;
k++;
}
}
fclose(f);
if (cislo >= a && cislo <= b) {
f = fopen("C.TXT", "a");
fprintf(f, "%f\n", suma / k);
fclose(f);
}
}
}
// end file 06\18\18.c
// begin file 06\18\C.TXT
1
2
3
4
5
6
7
// end file 06\18\C.TXT
// begin file 06\19\19.c
/*
18. Urobte program ako v príklade c. 16, ale aritmetický priemer urobí postupne v dy pr
19. Urobte program ako v príklade ?. 18, ale netreba dodr a? podmienku "zaka dým" pre z
*/
#include <stdio.h>
main()
{
FILE *f;
int i;
int j;
int k;
int a;
int b;
int cislo;
int pocet = 0;
float suma;
printf("Zadaj hranice intervalu\n");
scanf("%d %d", &a, &b);
getchar();
f = fopen("C.TXT", "r");
while (!feof(f)) {
fscanf(f, "%d", &cislo);
pocet++;
}
fclose (f);
printf("%d - %d, %d\n", a, b, pocet);
for (i = 1; i < pocet; i++) {
suma = 0;
cislo = 0;
k = 0;
f = fopen("C.TXT", "r");
for (j = 0; j < i; j++) {
fscanf(f, "%d", &cislo);
if (cislo >= a && cislo <= b) {
suma += cislo;
k++;
}
}
fclose(f);
// vypisem kazde parne
if (cislo % 2 == 0) {
if (cislo >= a && cislo <= b) {
f = fopen("C.TXT", "a");
fprintf(f, "%f\n", suma / k);
fclose(f);
}
}
}
}
// end file 06\19\19.c
// begin file 06\19\C.TXT
1
2
3
4
5
6
7
// end file 06\19\C.TXT
// begin file 06\20\20.c
/*
20. Urobte program, ktorý doká e do existujúceho súboru so zapísanými reál. císlami pri
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
int i;
float cislo;
char c;
f = fopen("C.TXT", "r");
f2 = fopen("C2.TXT", "w");
while (!feof(f)) {
fscanf(f, "%f", &cislo);
printf("zadaj text:\n");
i = 0;
while(1) {
c = getchar();
if (c == '\n')
break;
if (i >= 5)
continue;
fprintf(f2, "%c", c);
i++;
}
fprintf(f2, "%f\n", cislo);
}
fclose (f);
fclose (f2);
}
// end file 06\20\20.c
// begin file 06\20\C.TXT
1
2
3
4
5
6
7
// end file 06\20\C.TXT
// begin file 06\20\C2.TXT
aaaaa1.000000
asdf2.000000
3.000000
4.000000
qwe5.000000
111116.000000
dfsdf7.000000
7.000000
// end file 06\20\C2.TXT
// begin file 06\21\21.c
/*
21. Urobte program, ktorý z existujúceho súboru s císelnými hodnotami tieto vypí e na o
*/
#include <stdio.h>
main()
{
FILE *f;
float cislo;
f = fopen("C.TXT", "r");
while (1) {
fscanf(f, "%f", &cislo);
if (feof(f))
break;
printf("%f\n", cislo);
}
fclose (f);
}
// end file 06\21\21.c
// begin file 06\21\C.TXT
1
2
3
4
5
6
7
// end file 06\21\C.TXT
// begin file 06\22\22.c
/*
22. Urobte program, ktorý z existujúceho súboru s císelnými hodnotami tieto vypí e na o
*/
#include <stdio.h>
main()
{
FILE *f;
float cislo;
f = fopen("C.TXT", "r");
while (1) {
fscanf(f, "%f", &cislo);
if (feof(f))
break;
printf("%f ", cislo);
}
fclose (f);
}
// end file 06\22\22.c
// begin file 06\22\C.TXT
1
2
3
4
5
6
7
// end file 06\22\C.TXT
// begin file 06\23\23.c
/*
23. Urobte program, ktorý z existujúceho súboru s císelnými hodnotami tieto vypí e do t
*/
#include <stdio.h>
main()
{
FILE *f;
float cislo;
int i = 0;
f = fopen("C.TXT", "r");
while (1) {
fscanf(f, "%f", &cislo);
if (feof(f))
break;
if (i % 2 == 0) {
printf("%f ", cislo);
}
else {
printf("%f\n", cislo);
}
i++;
}
fclose (f);
}
// end file 06\23\23.c
// begin file 06\23\C.TXT
1
2
3
4
5
6
7
// end file 06\23\C.TXT
// begin file 06\24\24.c
/*
24. Urobte program, ktorý z existujúceho súboru s reálnymi císelnými hodnotami tieto v
*/
#include <stdio.h>
main()
{
FILE *f;
float cislo;
int i = 0;
f = fopen("C.TXT", "r");
while (1) {
fscanf(f, "%f", &cislo);
if (feof(f))
break;
if (i % 2 == 0) {
printf("%10.6f ", cislo);
}
else {
printf("%10.6f\n", cislo);
}
i++;
}
fclose (f);
}
// end file 06\24\24.c
// begin file 06\24\C.TXT
1.2222222222222
332
3
4
5
6
7
// end file 06\24\C.TXT
// begin file 06\25\25.c
/*
25. Urobte program, ktorý z existujúceho súboru s císelnými hodnotami tieto usporiada
*/
#include <stdio.h>
main()
{
FILE *f;
FILE *f2;
int i;
int pocet = 0;
int max = 0;
int dalsiemax;
f = fopen("C.TXT", "r");
while (1) {
fscanf(f, "%d", &i);
if (feof(f))
break;
pocet++;
if (i > max) {
max = i;
}
}
fclose (f);
f2 = fopen ("C2.TXT", "w");
while (pocet > 0) {
dalsiemax = 0;
f = fopen("C.TXT", "r");
while (1) {
fscanf(f, "%d", &i);
if (feof(f))
break;
if (i == max) {
fprintf(f2, "%d\n", i);
pocet--;
}
if (i > dalsiemax && i < max)
dalsiemax = i;
}
fclose (f);
max = dalsiemax;
}
fclose (f2);
}
// end file 06\25\25.c
// begin file 06\25\C.TXT
1
332
3
4
5
6
7
// end file 06\25\C.TXT
// begin file 06\25\C2.TXT
332
7
6
5
4
3
1
// end file 06\25\C2.TXT
// begin file 06\C.TXT
0.333333
0.333333
// end file 06\C.TXT
// begin file 06\male.txt
eladksjfliftoeiurerkjgldkfgqslkjflskjf// end file 06\male.txt
// begin file 06\OPACNE.txt
1231ELADKSaJFLwIFTOz4EIURERKJGLDKFGQSLKJFLSKJF
// end file 06\OPACNE.txt
// begin file 06\velke.txt
AWZ// end file 06\velke.txt
// begin file 06\ZNAKY.TXT
1231eladksAjflWiftoZ4eiurerkjgldkfgqslkjflskjf
// end file 06\ZNAKY.TXT
// begin file 08\01.c
/*
1. Napí te program na pre?ítanie nieko?kých prvých (zadané N) prirodzených ?ísel a
vypí te správu o výpo?te ich sú?tu; N- zadajte ako symbolickú kon tantu.
*/
#include <stdio.h>
#define N 4
main () {
int i;
int j;
int suma = 0;
for (i = 0; i < N; i++) {
printf("Zadaj %d. cislo:\n", i + 1);
scanf("%d", &j);
suma += j;
}
printf ("Suma vstupov je %d\n", suma);
}
// end file 08\01.c
// begin file 08\02.c
/*
2. Program ?íta znaky z klávesnice a do EOLN, ktorú definujte.
Po na?ítaní znakov vypí te ich po?et, potom niektoré ur?ené písmená
zme?te na malé / ve?ké (pod?a toho, aké sú v danom okamihu).
Vyu ite makrá isdigit(), isalpha(), toupper() z hlavi?kového súboru <ctype.h>.
*/
#include <stdio.h>
#include <ctype.h>
#define EOLN '\n'
main () {
int i = 0;
char c;
while(1) {
printf("Zadaj %d. znak:\n", i + 1);
c = getchar();
if (c == EOLN) {
break;
}
getchar();
if (isalpha(c)) {
if (isupper(c)) {
printf("Napisal si %c, opak je %c\n", c, tolower(c));
}
else {
printf("Napisal si %c, opak je %c\n", c, toupper(c));
}
}
else if (isdigit(c)) {
printf("Napisal si cifru\n");
}
i++;
}
printf ("Celkovo si zadal %d znakov\n", i);
}
// end file 08\02.c
// begin file 08\03.c
/*
3. Definujte makro velke(c) ktoré vráti 0 ak znak NIE je ve?ké písmeno a
vráti 1 ak znak je ve?ké písmeno
*/
#define velke(c) ((c) >= 'A' && (c) <= 'Z' ? 1 : 0)
// stacilo by to dokonca aj takto:
#define velke(c) ((c) >= 'A' && (c) <= 'Z')
// end file 08\03.c
// begin file 08\04.c
/*
4. Napí te makro tr_oc(x) na výpo?et 3 mocniny, odskú ajte na výrazoch:
tr_moc(3), tr_moc(i), tr_moc(2+3), tr_moc(i*j+1).
*/

#include <stdio.h>
#define tr_moc(x) ((x) * (x) * (x))
main() {
int i = 2;
int j = 5;
printf("tr_moc(3) = %d\n", tr_moc(3));
printf("tr_moc(i) = %d\n", tr_moc(i));
printf("tr_moc(2+3) = %d\n", tr_moc(2+3));
printf("tr_moc(i*j+1) = %d\n", tr_moc(i*j+1));
}
// end file 08\04.c
// begin file 08\05.c
/*
5. Urobte makro m_tlac(c) pre zistenie tla?ite?nosti ASCII znakov (ASCII od 32 do 126)
zadaných z klávesnice, urobte preh?adný výpis.
*/

#include <stdio.h>
#define m_tlac(c) ((c) >= 32 && (c) <= 126)
main() {
int i;
for (i = 0; i < 256; i++) {
if (m_tlac(i)) {
printf("Znak %d je tlacitelny: %c\n", i, i);
}
else {
printf("Znak %d nieje tlacitelny\n", i);
}
}
}
// end file 08\05.c
// begin file 08\06.c
/*
6. Urobte akro cit_int(i) (pre int i na?ítavané z klávesnice), ktoré musí by?
pou ité vo výraze if((j=cit_int(k))==0), mo nos? vyu i? operátor ?iarka.
*/

#include <stdio.h>
#define cit_int(i) (scanf("%d", &i))
main() {
int j;
int k;
if ((j=cit_int(k))==0) {
printf("Nezadal si cislo\n");
}
else {
printf("Zadal si cislo %d\n", k);
}
}
// end file 08\06.c
// begin file 08\07\07.c
/*
7. Urobte program pre zabezpe?enie /realizáciu minimálne dvoch ?inností / výpo?tov a
následne tento program modifikujte tak, aby ste tieto ?innosti /výpo?ty rie ili
oddeleným prekladom.
*/
#include <stdio.h>
// zadeklarujem si externu funkciu, ktoru mam napisanu v subore 07_b.c
// jeho "prilepenie" musim prikazat kompilatoru v nastaveni projektu
extern int vypocet_b(int i);
main() {
int i = 12;
int j;
printf("Pouzijem funkciu z druheho suboru:\n");
j = vypocet_b(i);
printf("vypocet_b(%d) = %d\n", i, j);
}
// end file 08\07\07.c
Lª.textp´d `.data@À.bss À.rdata@$@@U å ì äð¸ À ÀÁèÁà Eô EôèèÇEü
Ç$è Eü $ è Eø Eø D$ Eü D$Ç$$èÉà Pouzijem funkciu z druheho suboru:
vypocet_b(%d) = %d
!&4 9D\ a.fileþÿg07.c_main .textg.data.bss.rdata8___main __alloca _printf _vypocet_

int vypocet_b(int i) {
return i * 2;
}
// end file 08\07\07_b.c
L 
. text  `.data@À.bss ÀU å EÀ]Ã .fileþÿg07_b.c .text
.data.bss_vypocet_b// begin file 08\07\Makefile.win
# Project: project_07
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = 07.o 07_b.o $(RES)
LINKOBJ = 07.o 07_b.o $(RES)
LIBS = -L"C:/Dev-Cpp/lib"
INCS = -I"C:/Dev-Cpp/include"
CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/ba
BIN = project_07.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before project_07.exe all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o "project_07.exe" $(LIBS)
07.o: 07.c
$(CC) -c 07.c -o 07.o $(CFLAGS)
07_b.o: 07_b.c
$(CC) -c 07_b.c -o 07_b.o $(CFLAGS)
// end file 08\07\Makefile.win
// begin file 08\07\project_07.dev
[Project]
FileName=project_07.dev
Name=project_07
UnitCount=2
Type=1
Ver=1
ObjFiles=
Includes=
Libs=
PrivateResource=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=
IsCpp=0
Icon=
ExeOutput=
ObjectOutput=
OverrideOutput=0
OverrideOutputName=
HostApplication=
Folders=
CommandLine=
UseCustomMakefile=0
CustomMakefile=
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=
[Unit1]
FileName=07.c
CompileCpp=0
Folder=project_07
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=07_b.c
CompileCpp=0
Folder=project_07
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=
AutoIncBuildNr=0
// end file 08\07\project_07.dev
// begin file 08\08.c
/*
8. Urobte program pre zabezpe?enie /realizáciu minimálne dvoch ?inností /výpo?tov a
následne tento program modifikujte tak, aby ste tieto ?innosti / výpo?ty rie ili
pou itím príkazu #include.
*/
#include <stdio.h>
#include "08_b.c"
main() {
int i = 12;
int j;
printf("Pouzijem funkciu z druheho suboru:\n");
j = vypocet_b(i);
printf("vypocet_b(%d) = %d\n", i, j);
}
// end file 08\08.c
// begin file 08\08_b.c
#define vypocet_b(x) (x*2)
// end file 08\08_b.c
// begin file 08\09.c
/*
9. Urobte program, ktorý bude z klávesnice na?ítava? N celých ?ísel /
zo súboru CIS.TXT na?ítava? N ?ísel / - umo nite výber pod?a elania,
uvá te mo nos? zada? N cez symbolickú kon tantu (nie je nutné).
Pri oboch spôsoboch sa bude na obrazovku vypisova?
pokyn: Zadaj dalsie "i" cislo: ! Spo?ítajte sumu párnych ?ísel.
*/
#include <stdio.h>
// pocet cisel
#define N 5
main() {
int i;
int j;
int e;
int suma = 0;
char c;
FILE *f;
printf("Vstupne cisla z klavesnice? [a/n]\n");
c = getchar();
getchar();
if (c == 'a') {
f = stdin;
}
else {
f = fopen("CIS.TXT", "r");
}
if (f == NULL) {
printf("Nepodarilo sa otvorit subor\n");
}
for (i = 0; i < N; i++) {
printf("Zadaj dalsie \"%d\" cislo\n", i+1);
e = fscanf(f, "%d", &j);
getchar();
printf(" nacital som %d\n", j);
if (e != 1)
break;
if ((j % 2) == 0) {
suma += j;
}
}
fclose(f);
printf("Suma parnych vstupov je %d\n", suma);
}
// end file 08\09.c
// begin file 08\10.c
/*
10. Urobte program na výpo?et a) obvodu kruhu, b) obsahu kruhu pri zadanom polomere
(symbolická kon tanta) tak, e v "hlavnom" (volajúcom) programe zadáte iba polomer a
na základe rozhodnutia: cez príkaz #include zrealizujte mo nosti
IBA a), resp.
IBA b), resp.
a) aj b) s vyu itím podmieneného prekladu U po?as behu volajúceho /hlavného programu.
*/
#include <stdio.h>
#define POLOMER 123
float obsah;
float obvod;
//#include "10_a.c"
//#include "10_b.c"
#include "10_c.c"

main() {
printf("vypocital som obvod: %2.2f\n", obvod);
printf("vypocital som obsah: %2.2f\n", obsah);
}
// end file 08\10.c
// begin file 08\10_a.c
float obvod = POLOMER * 2 * 3.14;
// end file 08\10_a.c
// begin file 08\10_b.c
float obsah = POLOMER * POLOMER * 3.14;
// end file 08\10_b.c
// begin file 08\10_c.c
float obvod = POLOMER * 2 * 3.14;
float obsah = POLOMER * POLOMER * 3.14;
// end file 08\10_c.c
// begin file 08\CIS.TXT
2
3
4
5
16
17
// end file 08\CIS.TXT
// begin file 09\01.c
/*
1. Napí te funkciu (double x, int n ), ktorá vypí e tabu?ku mocnín x od 1 o n,
pou ite rekurzívnu funkciu.
*/
#include <stdio.h>
double mocnina(double x, int n)
{
if (n >= 1) {
return x*mocnina(x, n - 1);
}
return 1;
}
main()
{
int i;
int n;
double x;
printf("Zadaj cislo a hornu mocninu:\n");
scanf("%lf %d", &x, &n);
for (i = 0; i < n; i++) {
printf("%d.-ta mocnina %lf je %lf\n", i + 1, x, mocnina(x, i + 1));
}
}
// end file 09\01.c
// begin file 09\02.c
/*
2. Vypo?ítajte mocniny x od 1 po n zámenou: umoc?ovanie - opakované násobenie,
vytvori? volajúcu/volanú funkciu pre napísanie tabu?ky mocnín aj pre ich výpo?et
(t.j. Urobi? systém volajúcich a volaných funkcií).
*/
#include <stdio.h>
double mocnina(double x, int n)
{
int i;
double vysledok = x;
for (i = 0; i < n - 1; i++)
vysledok *= x;
return vysledok;
}
void tabulka(double x, int n)
{
int i;
for (i = 0; i < n; i++) {
printf("%d.-ta mocnina %lf je %lf\n", i + 1, x, mocnina(x, i + 1));
}
}
main()
{
int i;
int n;
double x;
printf("Zadaj cislo a hornu mocninu:\n");
scanf("%lf %d", &x, &n);
tabulka(x, n);
}
// end file 09\02.c
// begin file 09\03.c
/*
3. Napí te systém volajúce /volané funkcie pre výpo?et a vytvorenie tabu?ky malej náso
*/
#include <stdio.h>
int vynasob(int x, int y)
{
return x * y;
}
tabulka(int n)
{
int i;
int j;
for (i = 0; i < n; i++) {
printf("Mala nasobilka pre %d:\n", i + 1);
for (j = 0; j < n; j++)
printf("%d x %d = %d\n", i+1, j+1, vynasob(i+1, j+1));
}
}
main()
{
int i;
int n;
double x;
tabulka(10);
}
// end file 09\03.c
// begin file 09\04.c
/*
//3. Napí te systém volajúce /volané funkcie pre výpo?et a vytvorenie tabu?ky malej náso
4. Urobte program ako v úlohe ?íslo 3 ale striktne urobte zámenu: násobenie - opakovan
*/
#include <stdio.h>
int vynasob(int x, int y)
{
int i;
int vysledok = 0;
for (i = 0; i < y; i++)
vysledok += x;
return vysledok;
}
tabulka(int n)
{
int i;
int j;
for (i = 0; i < n; i++) {
printf("Mala nasobilka pre %d:\n", i + 1);
for (j = 0; j < n; j++)
printf("%d x %d = %d\n", i+1, j+1, vynasob(i+1, j+1));
}
}
main()
{
int i;
int n;
double x;
tabulka(10);
}
// end file 09\04.c
// begin file 09\05.c
/*
5. Napí te funkciu kresli (char c) s doplnením jej typu pre výstup,
pomocou ktorej sa dá nakresli? jednoduchý obrázok na monitor, napr. *
1. **
2. ***, at?., prípadne iný obrázok,.
*/
#include <stdio.h>
void kresli (char c)
{
int i;
int j;
for (i = 0; i < 4; i++) {
for (j = 0; j < i; j++) {
printf("%c", c);
}
printf("\n");
}
}

main()
{
kresli('*');
kresli('q');
kresli('T');
}
// end file 09\05.c
// begin file 09\06.c
/*
6. Napí te funkciu exist, ktorá vracia 1, ak súbor SUB.TXT existuje,
inak vráti 0, pozor na otvorenie /zatvorenie súboru.
*/
#include <stdio.h>
#include <sys/stat.h>
int exist()
{
struct stat buf;
if (stat("SUB.TXT", &buf) != 0)
return 0;
if (S_ISREG(buf.st_mode))
return 1;
return 0;
}

main()
{
if (exist()) {
printf("subor SUB.TXT existuje\n");
}
else {
printf("subor SUB.TXT neexistuje\n");
}
}
// end file 09\06.c
// begin file 09\07.c
/*
7. Napí te funkciu pocet_vyskytov() s parametrami: prvý je ukazovate? súboru,
druhý char, funkcia vráti po?et výskytov (tohto) zadaného znaku v súbore.
*/
#include <stdio.h>
int pocet_vyskytov(FILE *f, char c)
{
int pocet = 0;
char c2;
while(!feof(f)) {
c2 = fgetc(f);
if (c2 == c)
pocet++;
}
return pocet;
}

main()
{
char c = 'y';
FILE *f = fopen("07.c", "r");
if (f) {
printf("pocet vyskytov znaku '%c' v tomto subore je %d\n", c, pocet_vyskytov(f, c));
fclose (f);
}
}
// end file 09\07.c
// begin file 09\08.c
/*
8. Napí te funkcu void_vypis(FILE*fr), ktorá vypí e na obrazovku obsah súboru,
pozor na neexistujúci súbor a jeho otvorenie(zatvorenie).
*/
#include <stdio.h>
void vypis(FILE *fr)
{
char c;
while(!feof(fr)) {
c = fgetc(fr);
printf("%c", c);
}
}

main()
{
char c = 'y';
FILE *f = fopen("08.c", "r");
if (f) {
printf("Vypisujem obsah tohto suboru:\n");
vypis(f);
fclose (f);
}
}
// end file 09\08.c
// begin file 09\09.c
/*
9. Urobte program ako v úlohe ?íslo 8, ale pri výpise stránkova?
po zaplnení buffera obrazovky.
*/
#include <stdio.h>
void vypis(FILE *fr)
{
char c;
int riadkov = 0;
while(!feof(fr)) {
c = fgetc(fr);
printf("%c", c);
if (c == '\n')
riadkov++;
if (riadkov > 10) {
printf("------ stlac enter ------\n");
getchar();
riadkov = 0;
}
}
}

main()
{
char c = 'y';
FILE *f = fopen("09.c", "r");
if (f) {
printf("Vypisujem obsah tohto suboru:\n");
vypis(f);
fclose (f);
}
}
// end file 09\09.c
// begin file 09\10\fce.c
#include <stdio.h>
void vypis(FILE *fr)
{
char c;
while(!feof(fr)) {
c = fgetc(fr);
printf("%c", c);
}
}
// end file 09\10\fce.c
L".text@´ `.data@À.bss À .rdataô@@U å ì E @
Áè à Àu$ E $ è Eÿ¾Eÿ D$Ç$èëÌÉà %c/
4
.fileþÿgfce.c_vypis .text<.data.bss.rdata_printf _fgetc // begin file 09\10\hlavny.c
/*
10. Urobte program ako v úlohe ?. 8, ale funkciu vypis(), vypis_subor()
ulo i? do FCE.C a funkcu main() do HLAVNY.C.
*/
#include <stdio.h>
extern void vypis(FILE *fr);
main()
{
char c = 'y';
FILE *f = fopen("hlavny.c", "r");
if (f) {
printf("Vypisujem obsah tohto suboru:\n");
vypis(f);
fclose (f);
}
}
// end file 09\10\hlavny.c
L®.textp´T  `.data@À.bss À .rdata0$@@U å ì äð¸ À ÀÁèÁà Eô EôèèÆEÿyÇD$Ç$è Eø }øt"Ç$
è Eø $è Eø $ èÉà rhlavny.cVypisujem obsah tohto suboru:
! &2 9 > N S^i.fileþÿghlavny.c_main .texto .data.bss.rdata+___main __alloca_fc
# Project: Project_10
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = fce.o hlavny.o $(RES)
LINKOBJ = fce.o hlavny.o $(RES)
LIBS = -L"C:/Dev-Cpp/lib"
INCS = -I"C:/Dev-Cpp/include"
CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/ba
BIN = project_10.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before project_10.exe all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o "project_10.exe" $(LIBS)
fce.o: fce.c
$(CC) -c fce.c -o fce.o $(CFLAGS)
hlavny.o: hlavny.c
$(CC) -c hlavny.c -o hlavny.o $(CFLAGS)
// end file 09\10\Makefile.win
// begin file 09\10\project_10.dev
[Project]
FileName=project_10.dev
Name=Project_10
UnitCount=2
Type=1
Ver=1
ObjFiles=
Includes=
Libs=
PrivateResource=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=
IsCpp=0
Icon=
ExeOutput=
ObjectOutput=
OverrideOutput=0
OverrideOutputName=
HostApplication=
Folders=
CommandLine=
UseCustomMakefile=0
CustomMakefile=
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=
[Unit1]
FileName=fce.c
CompileCpp=0
Folder=Project_10
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=hlavny.c
CompileCpp=0
Folder=Project_10
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=
AutoIncBuildNr=0
// end file 09\10\project_10.dev
// begin file 09\11\fc.c
#include <stdio.h>
void vypis(FILE *fr)
{
char c;
while(!feof(fr)) {
c = fgetc(fr);
printf("%c", c);
}
}
// end file 09\11\fc.c
// begin file 09\11\hlavny.c
/*
11. Urobte program ako v úlohe ?íslo 10, ale pomocou #include pripoji?
súbor FC.C k /do súboru HLAVNY.C.
*/
#include <stdio.h>
#include "fc.c"
main()
{
char c = 'y';
FILE *f = fopen("hlavny.c", "r");
if (f) {
printf("Vypisujem obsah tohto suboru:\n");
vypis(f);
fclose (f);
}
}
// end file 09\11\hlavny.c
// begin file 09\12\fce.c
#include <stdio.h>
void vypis(FILE *fr)
{
char c;
while(!feof(fr)) {
c = fgetc(fr);
printf("%c", c);
}
}
// end file 09\12\fce.c
L".text@´ `.data@À.bss À .rdataô@@U å ì E @
Áè à Àu$ E $ è Eÿ¾Eÿ D$Ç$èëÌÉà %c/
4
.fileþÿgfce.c_vypis .text<.data.bss.rdata_printf _fgetc // begin file 09\12\hlavny.c
/*
//10. Urobte program ako v úlohe ?. 8, ale funkciu vypis(), vypis_subor() ulo i? do FCE.C
12. Urobte program ako v úlohe ?íslo 10, ale vyu ite oddelený preklad, bez #includ - zd
*/
#include <stdio.h>
extern void vypis(FILE *fr);
main()
{
char c = 'y';
FILE *f = fopen("hlavny.c", "r");
if (f) {
printf("Vypisujem obsah tohto suboru:\n");
vypis(f);
fclose (f);
}
}
// end file 09\12\hlavny.c
L®.textp´T  `.data@À.bss À .rdata0$@@U å ì äð¸ À ÀÁèÁà Eô EôèèÆEÿyÇD$Ç$è Eø }øt"Ç$
è Eø $è Eø $ èÉà rhlavny.cVypisujem obsah tohto suboru:
! &2 9 > N S^i.fileþÿghlavny.c_main .texto .data.bss.rdata+___main __alloca_fc
# Project: project_12
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = fce.o hlavny.o $(RES)
LINKOBJ = fce.o hlavny.o $(RES)
LIBS = -L"C:/Dev-Cpp/lib"
INCS = -I"C:/Dev-Cpp/include"
CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/ba
BIN = project_12.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before project_12.exe all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o "project_12.exe" $(LIBS)
fce.o: fce.c
$(CC) -c fce.c -o fce.o $(CFLAGS)
hlavny.o: hlavny.c
$(CC) -c hlavny.c -o hlavny.o $(CFLAGS)
// end file 09\12\Makefile.win
// begin file 09\12\project_12.dev
[Project]
FileName=project_12.dev
Name=project_12
UnitCount=2
Type=1
Ver=1
ObjFiles=
Includes=
Libs=
PrivateResource=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=
IsCpp=0
Icon=
ExeOutput=
ObjectOutput=
OverrideOutput=0
OverrideOutputName=
HostApplication=
Folders=
CommandLine=
UseCustomMakefile=0
CustomMakefile=
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=
[Unit1]
FileName=fce.c
CompileCpp=0
Folder=project_12
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=hlavny.c
CompileCpp=0
Folder=project_12
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=
AutoIncBuildNr=0
// end file 09\12\project_12.dev
// begin file 09\13\a.c
/*
13. Vytvorte dva súbory A.C, B.C oba budú zdie?a? premennú iii - táto premenná
iii sa v A.C definuje a nastaví, potom B.C sa vypí e jej hodnota.
Zabezpe?te oddelený preklad A.C, B.C a zostavte príkazom link a,b
(prípadne v prostredí Borland príkazom project).
*/
int iii = 123;
// end file 09\13\a.c
L  . text `.data @À.bss À{.fileþÿga.c.text.data.bss_iii// begin file 09\13\b.c
#include <stdio.h>
extern int iii;
main()
{
printf("iii ma hodnotu %d\n", iii);
}
// end file 09\13\b.c
LV.textP´$ `.data@À.bss À.rdata @@U å ì äð¸ À ÀÁèÁà Eü Eüèè¡ D$Ç$èÉà iii ma h
!&+6 ;.fileþÿgb.c_main .textA.data.bss.rdata___main __alloca_iii_printf // begin file 09
# Project: Project_13
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = a.o b.o $(RES)
LINKOBJ = a.o b.o $(RES)
LIBS = -L"C:/Dev-Cpp/lib" -s
INCS = -I"C:/Dev-Cpp/include"
CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/ba
BIN = Project_13.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before Project_13.exe all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o "Project_13.exe" $(LIBS)
a.o: a.c
$(CC) -c a.c -o a.o $(CFLAGS)
b.o: b.c
$(CC) -c b.c -o b.o $(CFLAGS)
// end file 09\13\Makefile.win
// begin file 09\13\Project_13.dev
[Project]
FileName=Project_13.dev
Name=Project_13
UnitCount=2
Type=1
Ver=1
ObjFiles=
Includes=
Libs=
PrivateResource=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=
IsCpp=0
Icon=
ExeOutput=
ObjectOutput=
OverrideOutput=0
OverrideOutputName=Project_13.exe
HostApplication=
Folders=
CommandLine=
UseCustomMakefile=0
CustomMakefile=
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000000000000000000100
[Unit1]
FileName=a.c
CompileCpp=0
Folder=Project_13
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=b.c
CompileCpp=0
Folder=Project_13
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=
AutoIncBuildNr=0
// end file 09\13\Project_13.dev
// begin file 09\14\a.c
/*
13. Vytvorte dva súbory A.C, B.C oba budú zdie?a? premennú iii - táto premenná
iii sa v A.C definuje a nastaví, potom B.C sa vypí e jej hodnota.
Zabezpe?te oddelený preklad A.C, B.C a zostavte príkazom link a,b
(prípadne v prostredí Borland príkazom project).

14. Urobte program ako v úlohe ?íslo 13, ale zme?te iii na
globálny static a preverte chovanie získaného programu a zdôvodnite.
*/
static int iii = 123;
// end file 09\14\a.c
L  . text `.data @À.bss À{.fileþÿga.c_iii.text.data.bss// begin file 09\14\b.c
#include <stdio.h>
extern int iii;
main()
{
printf("nieje mozne ziskat hodnotu z premennej cudzieho modulu ak je definovana ako st
}
// end file 09\14\b.c
L|.text@´T `.data@À.bss À.rdata`ô@@U å ì äð¸ À ÀÁèÁà Eü EüèèÇ$èÉà nieje mozne ziskat
!&- 2.fileþÿgb.c_main .text8.data.bss.rdata\___main __alloca_printf // begin file 09\14
# Project: Project_13
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES =
OBJ = a.o b.o $(RES)
LINKOBJ = a.o b.o $(RES)
LIBS = -L"C:/Dev-Cpp/lib" -s
INCS = -I"C:/Dev-Cpp/include"
CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/ba
BIN = Project_13.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before Project_13.exe all-after

clean: clean-custom
${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o "Project_13.exe" $(LIBS)
a.o: a.c
$(CC) -c a.c -o a.o $(CFLAGS)
b.o: b.c
$(CC) -c b.c -o b.o $(CFLAGS)
// end file 09\14\Makefile.win
// begin file 09\14\Project_13.dev
[Project]
FileName=Project_13.dev
Name=Project_13
UnitCount=2
Type=1
Ver=1
ObjFiles=
Includes=
Libs=
PrivateResource=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=
IsCpp=0
Icon=
ExeOutput=
ObjectOutput=
OverrideOutput=0
OverrideOutputName=Project_13.exe
HostApplication=
Folders=
CommandLine=
UseCustomMakefile=0
CustomMakefile=
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000000000000000000100
[Unit1]
FileName=a.c
CompileCpp=0
Folder=Project_13
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=b.c
CompileCpp=0
Folder=Project_13
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=
AutoIncBuildNr=0
// end file 09\14\Project_13.dev
// begin file 09\15.c
/*
15. Napí te program, ktorý pre?íta znak z klávesnice. V prípade, e znakom bude
"d", bude program na?ítava? celé ?íslo a potom ho vytla?í, v prípade,
e znakom bude "f", bude program na?ítava? necelé ?íslo a potom ho vytla?í (-float).
Premenné, do ktorých bude ?íslo ulo ené, definujte a v bloku za if alebo else.
a) nech i,j budú globálne int
b) nech i,j budú lokálne register int
v oboch prípadoch pomocou systémového ?asu porovnajte /zmerajte rýchlos? programu/výpo?tu.
*/
#include <stdio.h>
#include <time.h>
main()
{
register int reg_i = time(NULL);
register int reg_j;
char c;
printf("Zadaj format [d/f]\n");
c = getchar();
getchar();
if (c == 'd') {
int cislo;
printf("Zadaj cele cislo\n");
scanf("%d", &cislo);
printf("Zadal si %d\n", cislo);
}
else if (c == 'f') {
float cislo;
printf("Zadaj cele cislo\n");
scanf("%f", &cislo);
printf("Zadal si %f\n", cislo);
}
reg_j = time(NULL);
printf("program bezal %ld sekund. Rozdiel casu pri pouziti (ne)register premennych niej
}
// end file 09\15.c
// begin file 09\16.c
/*
16. Dopí te program (MAX-5000, minimálne):
for(i=0; i<MAX; i++)
for(j=0; j<MAX; j++)
{i=i;j=j;}
*/
#include <stdio.h>
#define MAX 5000
main()
{
int i, j;
for(i=0; i<MAX;i++)
for(j=0;j<MAX;j++) {
i=i;
j=j;
}
}
// end file 09\16.c
// begin file 09\17.c
/*
17. vytvorte program, ktorý pomocou 1. funkcie na?íta z klávesnice minimálne 2
int hodnoty, pomocou 2. funkcie ich s?íta, pomocou 3. funkcie ich vynásobí a
pomocou 4. funkcie vypí e pôvodne na?ítané hodnoty a ich sú?et aj sú?in.
*/
#include <stdio.h>
void fun1(int *c1, int *c2)
{
scanf("%d %d", c1, c2);
getchar();
}
int fun2(int c1, int c2)
{
return c1 + c2;
}
int fun3(int c1, int c2)
{
return c1 * c2;
}
void fun4(int c1, int c2, int c3, int c4)
{
printf("Povodne hodnoty boli %d a %d. Sucet bol %d a sucin bol %d.\n", c1, c2, c3, c4);
}
main()
{
int c1;
int c2;
int sucet;
int sucin;
printf("Zadaj dve celociselne hodnoty:\n");
fun1(&c1, &c2);
sucet = fun2(c1, c2);
sucin = fun3(c1, c2);
fun4(c1, c2, sucet, sucin);
}
// end file 09\17.c
// begin file 10\01.c
/*
1. NapÍ te program, ktorý metódou delenia intervalu na dve polovice zistÍ ve?kos?
*/
#include <stdio.h>
#include <stdlib.h>
main()
{
double i = 0;
double j;
double k;
void *p;
// potrebujeme zistit hornu hranicu rozsahu pamate - zvacsujeme alokovane miesto vz
for (j = 1; ; j *= 2) {
p = malloc(j);
if (p == NULL) {
break;
}
free(p);
}
// hladame v intervale od i po j delenim intervalu - skusime strednu hodnotu a na n
while((j - i) >= 10) {
k = (i + j) / 2;
p = malloc(k);
if (p == NULL) {
// nepodarilo sa alokovat k-bytov pamate a teda skusime alokovat me
j = k;
}
else {
// podarilo sa alokovat k-bytov pamate a teda skusime este viacej -
i = k;
free(p);
}
}
printf("system poskytuje %.0lf bytov pamate\n", i);
}
// end file 10\01.c
// begin file 10\02.c
/*
2.Zistite ve¿kos¿ v¿etkých základných typov (char, int, float, long,...) v Byte.
*/
#include <stdio.h>
main()
{
printf("velkost char je %.0d bytov\n", sizeof(char));
printf("velkost int je %.0d bytov\n", sizeof(int));
printf("velkost float je %.0d bytov\n", sizeof(float));
printf("velkost long je %.0d bytov\n", sizeof(long));
printf("velkost double je %.0d bytov\n", sizeof(double));
}
// end file 10\02.c
// begin file 10\03.c
/*
3.Napí¿te funkciu s 1 vstupným a 1 výstupným parametrom, nech funkcia vracia ko svoju ná
*/
#include <stdio.h>

int funkcia(char c, char *cout)


{
if (c >= 'A' && c <= 'Z')
c = c - 'A' + 'a';
else if (c >= 'a' && c <= 'z')
c = c - 'a' + 'A';
*cout = c;
if (c == 0) {
return 1;
}
else {
return 0;
}
}

/* prakticka - testovacia cast - nieje nutna k rieseniu */


main()
{
char a = '\0';
char b;
int i;
while (a != 'q') {
a = getchar();
getchar();
i = funkcia(a, &b);
printf("i = [a, b] = ['%c', '%c'] = %d\n", a, b, i);
}
}
// end file 10\03.c
// begin file 10\04.c
/*
4.Urobte program pre spracovanie prospechu v triede s dopredu neznámym potom ¿iakov.
*/
#include <stdio.h>

main()
{
double f;
double suma = 0;
double cnt = 0;
while (1) {
printf("Zadaj znamku\n");
scanf("%lf", &f);
if (f == 0) {
break;
}
getchar();
suma += f;
cnt++;
}
if (cnt > 0) {
printf("Priemer %.0lf znamok je %lf\n", cnt, suma/cnt);
}
}
// end file 10\04.c
// begin file 10\05.c
/*
5.Urobte program pre výpo¿et aritmetického priemeru pre dopredu neznámy (ale o¿akávaním
*/
#include <stdio.h>

main()
{
double f;
double suma = 0;
double cnt = 0;
while (1) {
printf("Zadaj cislo\n");
scanf("%lf", &f);
if (f == 0) {
break;
}
getchar();
suma += f;
cnt++;
}
if (cnt > 0) {
printf("Priemer %.0lf znamok je %lf\n", cnt, suma/cnt);
}
}
// end file 10\05.c
// begin file 10\06.c
/*
6.Urobte program na zistenie adries ulo¿ených premenných ur¿itého typu v pamäti a ve¿kos
*/
#include <stdio.h>
main()
{
char c = 0;
int i = 0;
float f = 0;
long l = 0;
double d = 0;
printf("adresa premennej je %p a jej velkost je %.0d bytov\n", &c, sizeof(char));
printf("adresa premennej je %p a jej velkost je %.0d bytov\n", &i, sizeof(int));
printf("adresa premennej je %p a jej velkost je %.0d bytov\n", &f, sizeof(float));
printf("adresa premennej je %p a jej velkost je %.0d bytov\n", &l, sizeof(long));
printf("adresa premennej je %p a jej velkost je %.0d bytov\n", &d, sizeof(double));
}
// end file 10\06.c
// begin file 10\07.c
/*
7. Urobte program na zistenie ve#kosti / rozsahu pamäte, ktoré si nárokuje na ulo#enie p
*/
#include <stdio.h>
long long int volna_pamat()
{
long long int i = 0;
long long int j;
long long int k;
void *p;
// potrebujeme zistit hornu hranicu rozsahu pamate - zvacsujeme alokovane miesto vz
for (j = 1; ; j *= 2) {
p = malloc(j);
if (p == NULL) {
break;
}
free(p);
}
// hladame v intervale od i po j delenim intervalu - skusime strednu hodnotu a na n
while((j - i) >= 2) {
k = (i + j) / 2;
p = malloc(k);
if (p == NULL) {
// nepodarilo sa alokovat k-bytov pamate a teda skusime alokovat me
j = k;
}
else {
// podarilo sa alokovat k-bytov pamate a teda skusime este viacej -
i = k;
free(p);
}
}
return i;
}
main()
{
int i, j;
scanf("%d", &i); // testovany prikaz
printf("\nvolna pamat je %lld (toto cislo odcitaj od cisla ktore vyrata tento progr
}
// end file 10\07.c
// begin file 10\08.c
/*
8. Urobte program ako v úlohe ¿íslo 7, ale pre príkaz: printf(¿%d¿,i);
*/
#include <stdio.h>
long long int volna_pamat()
{
long long int i = 0;
long long int j;
long long int k;
void *p;
// potrebujeme zistit hornu hranicu rozsahu pamate - zvacsujeme alokovane miesto vz
for (j = 1; ; j *= 2) {
p = malloc(j);
if (p == NULL) {
break;
}
free(p);
}
// hladame v intervale od i po j delenim intervalu - skusime strednu hodnotu a na n
while((j - i) >= 2) {
k = (i + j) / 2;
p = malloc(k);
if (p == NULL) {
// nepodarilo sa alokovat k-bytov pamate a teda skusime alokovat me
j = k;
}
else {
// podarilo sa alokovat k-bytov pamate a teda skusime este viacej -
i = k;
free(p);
}
}
return i;
}
main()
{
int i, j;
printf("%d", i); // testovany prikaz
printf("\nvolna pamat je %lld (toto cislo odcitaj od cisla ktore vyrata tento progr
}
// end file 10\08.c
// begin file 10\09.c
/*
9. Urobte program ako v úlohe ¿íslo 7, ale porovnajte náro¿nos¿ na pamä¿ pre:
1. scanf(¿%d%d¿,&i,&j);
2.scanf(¿%d¿,&i);
*/
#include <stdio.h>
long long int volna_pamat()
{
long long int i = 0;
long long int j;
long long int k;
void *p;
// potrebujeme zistit hornu hranicu rozsahu pamate - zvacsujeme alokovane miesto vz
for (j = 1; ; j *= 2) {
p = malloc(j);
if (p == NULL) {
break;
}
free(p);
}
// hladame v intervale od i po j delenim intervalu - skusime strednu hodnotu a na n
while((j - i) >= 2) {
k = (i + j) / 2;
p = malloc(k);
if (p == NULL) {
// nepodarilo sa alokovat k-bytov pamate a teda skusime alokovat me
j = k;
}
else {
// podarilo sa alokovat k-bytov pamate a teda skusime este viacej -
i = k;
free(p);
}
}
return i;
}
main()
{
int i, j;
scanf("%d%d", &i, &j); // testovany prikaz
printf("\nvolna pamat je %lld (toto cislo odcitaj od cisla ktore vyrata tento progr
}
// end file 10\09.c
// begin file 10\10.c
/*
10.Urobte program ako v úlohe ¿íslo 7, ale porovnajte náro¿nos¿ na pamä¿ pre:
1.printf(¿%d%d¿,i,j);
2.printf(¿%d¿,i);
*/
#include <stdio.h>
long long int volna_pamat()
{
long long int i = 0;
long long int j;
long long int k;
void *p;
// potrebujeme zistit hornu hranicu rozsahu pamate - zvacsujeme alokovane miesto vz
for (j = 1; ; j *= 2) {
p = malloc(j);
if (p == NULL) {
break;
}
free(p);
}
// hladame v intervale od i po j delenim intervalu - skusime strednu hodnotu a na n
while((j - i) >= 2) {
k = (i + j) / 2;
p = malloc(k);
if (p == NULL) {
// nepodarilo sa alokovat k-bytov pamate a teda skusime alokovat me
j = k;
}
else {
// podarilo sa alokovat k-bytov pamate a teda skusime este viacej -
i = k;
free(p);
}
}
return i;
}
main()
{
int i, j;
printf("%d%d", i, j); // testovany prikaz
printf("\nvolna pamat je %lld (toto cislo odcitaj od cisla ktore vyrata tento progr
}
// end file 10\10.c
// begin file 10\zadania.txt
1. NapÍ te program, ktorý metódou delenia intervalu na dve polovice zistÍ ve?kos?
2. Zistite ve?kos? v etkých základných typov (char, int, float, long,...) v Byte.
3. NapÍ te funkciu s 1 vstupným a 1 výstupným parametrom, nech funkcia vracia ko
4. Urobte program pre spracovanie prospechu v triede s dopredu neznámym potom  iakov
5. Urobte program pre výpo?et aritmetického priemeru pre dopredu neznámy (ale o?ak
6. Urobte program na zistenie adries ulo ených premenných ur?itého typu v pamäti
7. Urobte program na zistenie ve?kosti / rozsahu pamäte, ktoré si nárokuje na uloÂ
8. Urobte program ako v úlohe ?Íslo 7, ale pre prÍkaz: printf("%d",i);
9. Urobte program ako v úlohe ?Íslo 7, ale porovnajte náro?nos? na pamä? pre:
1. scanf("%d%d",&i,&j);
2.scanf("%d",&i);
10. Urobte program ako v úlohe ?Íslo 7, ale porovnajte náro?nos? na pamä? pre:
1.printf("%d%d",i,j);
2.printf("%d",i);
// end file 10\zadania.txt
// begin file 11\01.c
/*
1.Zistite po¿et jednotlivých písmen v súbore, zistené po¿ty vypí¿te ¿íslom aj pomocou ri
1. A: 5*****
2. B: 3*** ...at¿.
*/
#include <stdio.h>
#include <ctype.h>
main()
{
char pismena[256];
int i;
char c;
FILE *f;
f = fopen("01.c", "r");
if (f == NULL)
return;
for(i = 0; i < 256; i++) {
pismena[i] = 0;
}
while (1) {
c = fgetc(f);
if (feof(f) || c == EOF) {
break;
}
pismena[(int) c]++;
}
fclose(f);
for(i = 0; i < 256; i++) {
if (!isprint(i))
continue;
printf("%c: ", i);
while(pismena[(int) i] > 0) {
printf("*");
pismena[(int) i]--;
}
printf("\n");
}
}
// end file 11\01.c
// begin file 11\02.c
/*
2.Napí¿te funkciu void ahoj(void), ktorá vypí¿e na obrazovku ¿íslo a slovo ahoj, ¿íslo b
*/
#include <stdio.h>
int pocet;
void ahoj(void)
{
printf("%d, ahoj\n", pocet);
}
main()
{
int i;
void (*p_ahoj)(void) = ahoj;
pocet = 0;
for(i = 0; i < 9; i++) {
pocet++;
(*p_ahoj)();
}
}
// end file 11\02.c
// begin file 11\03\hlavny.c
/*
3.V súbore POZDRAVY.C napí¿te nieko¿ko funkcií typu void ahoj(void), ktoré vypí¿u v¿dy j
*/
#include <stdio.h>
#include <ctype.h>
extern int pocet;
void ahoj(void);
void nazdar(void);
void cau(void);
typedef void (*t_pfnc)(void);
main()
{
int i;
char c;
pocet = 0;

t_pfnc p_ahoj[3];
p_ahoj[0] = ahoj;
p_ahoj[1] = nazdar;
p_ahoj[2] = cau;
char pole[3];
pole[0] = 'a';
pole[1] = 'n';
pole[2] = 'c';
while(1) {
c = getchar();
if (c == '\n')
break;
getchar();
for (i = 0; i < 3; i++) {
if (pole[i] == c) {
(*(p_ahoj[i]))();
pocet++;
break;
}
}
}
}
// end file 11\03\hlavny.c
// begin file 11\03\pozdravy.c
#include <stdio.h>
int pocet;
void ahoj(void)
{
printf("%d, ahoj\n", pocet);
}
void nazdar(void)
{
printf("%d, nazdar\n", pocet);
}
void cau(void)
{
printf("%d, cau\n", pocet);
}
// end file 11\03\pozdravy.c
// begin file 11\04.c
/*
4.Napí#te program, ktorý zistí po#et jednotlivých písmen na ka#dom riadku #ítaného súboru.
*/
#include <stdio.h>
main()
{
int pole[20][26];
int i;
int j;
char c;
FILE *f;
f = fopen("04.c", "r");
if (f == NULL)
return;
for (i = 0; i < 20; i++)
for (j = 0; j < 26; j++)
pole[i][j] = 0;
i = 0;
while (1) {
c = fgetc(f);
if (feof(f) || c == EOF)
break;
if (c == '\n') {
i++;
if (i >= 20)
break;
continue;
}
if (c >= 'a' && c <= 'z') {
c = c - 'a' + 'A';
}
if (c >= 'A' && c <= 'Z') {
c -= 'A';
}
pole[i][c]++;
}
fclose(f);
for (i = 0; i < 20; i++) {
printf("%2d: ", i);
for (j = 0; j < 26; j++) {
printf("% 3d ", pole[i][j]);
}
printf("\n");
}
}
// end file 11\04.c
// begin file 11\05.c
/*
5.Napí#te funkciu zorad(int x[], int y[]), ktorá zoradí x vzostupne pod#a ve#kosti, ale do
*/
zorad(int x[], int y[])
{
int i;
int j;
int k;
// skopirujeme
for (i = 0; i < 9; i++) {
y[i] = x[i];
}
// bubble sort
for (i = 0; i < 9; i++) {
for (j = i + 1; j < 9; j++) {
if (y[i] > y[j]) {
k = y[i];
y[i] = y[j];
y[j] = k;
}
}
}
}
// end file 11\05.c
// begin file 11\06.c
/*
6.Napí#te funkciu int parne(int x[], int y [], int pocet), ktorá skopíruje z po#a x[] do po
*/
int parne(int x[], int y[], int pocet)
{
int i;
int j = 0;
for (i = 0; i < pocet; i++) {
if (x[i] % 2 == 0) {
y[j] = x[i];
j++;
}
}
return j;
}
// end file 11\06.c
// begin file 11\07.c
/*
7.Napí#te program /funkciu, ktorá bude chcie# úspe#ne prekopírova# obsah men#ieho pola (s m
*/
kopiruj(int x[5], int y[9])
{
int i;
for (i = 0; i < 5; i++) {
y[i] = x[i];
}
}
// end file 11\07.c
// begin file 11\08.c
/*
8.Napí#te program, ktorý bude chcie# úspe#ne prekopírova# pole s vä##ím po#tom prvkov do me
*/
kopiruj(int x[9], int y[5])
{
int i;
for (i = 0; i < 9; i++) {
y[i] = x[i];
}
}
// end file 11\08.c
// begin file 11\09.c
/*
9.Napí#te program, ktorý vypí#e adresy v#etkých prvkov pola.
*/
#include <stdio.h>
main()
{
int i;
int pole[5];
for (i = 0; i < 5; i++) {
printf("prvok %d ma adresu %p\n", i, &(pole[i]));
}
}
// end file 11\09.c
// begin file 11\10.c
/*
10.Napí#te program, ktorý ulo#í do prvkov pola celý text po písmenkách, text bude na#ítavný
*/
#include <stdio.h>
main()
{
int i;
char pole[100];
char c;
FILE *f;
f = fopen("zadania.txt", "r");
if (f == NULL)
return;
for (i = 0; i < 100; i++) {
c = fgetc(f);
if (feof(f) || c == EOF)
break;
pole[i] = c;
}
fclose(f);
}
// end file 11\10.c
// begin file 11\11.c
/*
11.Napí#te interaktívny výu#bový program, ktorý bude vybera# cez pole funkcií type základn
*/
#include <stdio.h>
float scitaj(float a, float b) { return a + b; }
float odcitaj(float a, float b) { return a - b; }
float vynasob(float a, float b) { return a * b; }
float vydel(float a, float b) { return a / b; }
typedef float (*p_operator)(float, float);
main()
{
int i;
float a;
float b;
char c;
float vysledok;
float odpoved;
int pocet;
int uspesne = 0;

p_operator funkcie[4];
funkcie[0] = scitaj;
funkcie[1] = odcitaj;
funkcie[2] = vynasob;
funkcie[3] = vydel;
for (pocet = 0; pocet < 4; pocet++) {
printf("zadaj prvy operand\n");
scanf("%f", &a);
getchar();
printf("zadaj druhy operand\n");
scanf("%f", &b);
getchar();
printf("zadaj cislo operatora (1 scitanie, 2 odcitanie, 3 sucin, 4 podiel)\
c = getchar();
getchar();
vysledok = funkcie[c - '1'](a, b);
printf("aky je spravny vysledok?\n");
scanf("%f", &odpoved);
if (vysledok == odpoved) {
uspesne++;
}
}
printf("vyratal si %d percent prikladov spravne\n", 100*uspesne/pocet);
}
// end file 11\11.c
// begin file 11\zadania.txt
l.Zistite po#et jednotlivých písmen v súbore, zistené po#ty vypí#te #íslom aj pomocou riadk
1. A: 5*****
2. B: 3*** ...at#.
2.Napí#te funkciu void ahoj(void), ktorá vypí#e na obrazovku #íslo a slovo ahoj, #íslo bude
3.V súbore POZDRAVY.C napí#te nieko#ko funkcií typu void ahoj(void), ktoré vypí#u v#dy jede
4.Napí#te program, ktorý zistí po#et jednotlivých písmen na ka#dom riadku #ítaného súboru.
5.Napí#te funkciu zorad(int x[], int y[]), ktorá zoradí x vzostupne pod#a ve#kosti, ale do
6.Napí#te funkciu int parne(int x[], int y [], int pocet), ktorá skopíruje z po#a x[] do po
7.Napí#te program /funkciu, ktorá bude chcie# úspe#ne prekopírova# obsah men#ieho pola (s m
8.Napí#te program, ktorý bude chcie# úspe#ne prekopírova# pole s vä##ím po#tom prvkov do me
9.Napí#te program, ktorý vypí#e adresy v#etkých prvkov pola.
10.Napí#te program, ktorý ulo#í do prvkov pola celý text po písmenkách, text bude na#ítavný
11.Napí#te interaktívny výu#bový program, ktorý bude vybera# cez pole funkcií type základn
// end file 11\zadania.txt
// begin file 12\01.c
/*
1. Napí te program, ktorý bude cítat z klávesnice retazce, opí e ich zvýraznené /ohran
1. *********
2.*priklad*
3.*********
*/
#include <stdio.h>
main()
{
char s[80];
int i;
int len;
while(1) {
scanf("%80s", s);
len = strlen(s);
printf("*");
for (i = 0; i < len; i++)
printf("*");
printf("*\n");
printf("*%s*\n", s);
printf("*");
for (i = 0; i < len; i++)
printf("*");
printf("*\n");
}
}
// end file 12\01.c
// begin file 12\02.c
/*
2. Definujte s ako retazec znakov dl ky 20 a priradte mu obsah pomocou funkcie strcp
Potom definujte pointer na char, alokujte dynamickú pamät, do ktorej skopírujete retazec s,
*/
#include <stdio.h>
main()
{
char s[20];
char *p;
int i;
int len;
strcpy(s, "ahoj");
len = strlen(s);
p = (char *) malloc(sizeof(char) * len);
for (i = 0; i < len; i++)
p[i] = s[i];
p[len] = 0;
printf("'%s'\n", p);
}
// end file 12\02.c
// begin file 12\03.c
/*
3. Precítajte retazec max 20 dl ky a vytlacte jeho znaky podla abecedy, zároven takto
*/
#include <stdio.h>
main()
{
char s[20];
char t[20];
char *p;
int i;
int j;
int k;
int len;
scanf("%20s", s);
len = strlen(s);
k = 0;
for (i = 1; i < 256; i++) {
for (j = 0; j < len; j++) {
if (s[j] == i) {
t[k] = i;
k++;
printf("%c", i);
}
}
}
t[len] = 0;
}
// end file 12\03.c
// begin file 12\04.c
/*
4. Existujú symetrické slová (radar, anna, mám,..), vytvorte program, ktorý bude gen
*/
#include <stdio.h>
main()
{
char s[20];
int i;
int len;
scanf("%20s", s);
len = strlen(s);
printf("%s", s);
for (i = 0; i < len; i++) {
printf("%c", s[len - i - 1]);
}
}
// end file 12\04.c
// begin file 12\05.c
/*
5. Urobte program na precítanie retazca z klávesnice a v závislosti na poslednom zadan
u(U) velké na malé (upper)
x(X) malé <--> velké (exchange)
*/
#include <stdio.h>
main()
{
char s[20];
char c;
int i;
int len;
scanf("%20s", s);
getchar();
len = strlen(s);
printf("Zadaj konverziu (u/l/x)\n");
c = getchar();
switch (c) {
case 'l':
case 'L':
for (i = 0; i < len; i++) {
if (s[i] >= 'A' && s[i] <= 'Z')
s[i] = s[i] - 'A' + 'a';
}
break;
case 'u':
case 'U':
for (i = 0; i < len; i++) {
if (s[i] >= 'a' && s[i] <= 'z')
s[i] = s[i] - 'a' + 'A';
}
break;
case 'x':
case 'X':
default:
for (i = 0; i < len; i++) {
if (s[i] >= 'a' && s[i] <= 'z')
s[i] = s[i] - 'a' + 'A';
else if (s[i] >= 'A' && s[i] <= 'Z')
s[i] = s[i] - 'A' + 'a';
}
}
printf("%s\n", s);
}
// end file 12\05.c
// begin file 12\06.c
/*
6. Definujte retazcovú kon tantu a zistite od ktorej adresy je ulo ená.
*/
#include <stdio.h>
main()
{
char *s = "ahoj";
printf("adresa konstanty je %p\n", s);
}
// end file 12\06.c
// begin file 12\07.c
/*
7. Napí te program, ktorý precíta riadok znakov z klávesnice a potom precíta jeden zna
Riadok opí te na obrazovku, prítomnost zadaného jedného znaku vo výpise zvýraznite predrade
*/
#include <stdio.h>
main()
{
char s[80];
char c;
char *p;
char *pc;
scanf("%s", s);
getchar();
c = getchar();
p = s;
pc = strchr(p, c);
while (*p != 0) {
if (pc == NULL) {
printf("%s", p);
break;
}
while (p < pc) {
printf("%c", *p);
p++;
}
printf("*");
printf("%c", *p);
p++;
pc = strchr(p, c);
}
}
// end file 12\07.c
// begin file 12\08.c
/*
8. Napí te program, ktorý bude na obrazovku vypisovat obsah súboru. Meno a príponu súb
*/
#include <stdio.h>
main()
{
char s[80];
char ext[4];
FILE *f;
char c;
printf("zadaj meno suboru\n");
scanf("%76s", s);
getchar();
printf("zadaj priponu suboru\n");
scanf("%3s", ext);
strcat(s, ".");
strcat(s, ext);
printf("'%s'\n", s);
f = fopen(s, "r");
if (f == NULL)
return;
while (1) {
c = fgetc(f);
if (feof(f) || c == EOF)
break;
printf("%c", c);
}
fclose(f);
}
// end file 12\08.c
// begin file 12\09.c
/*
9. Cítajte súbor a vypí te iba tie riadky, v ktorých sa bude vyskytovat slovo zadané z
*/
#include <stdio.h>
main()
{
char riadok[80];
char slovo[20];
FILE *f;
printf("zadaj slovo\n");
scanf("%19s", slovo);
getchar();
f = fopen("09.c", "r");
if (f == NULL)
return;
while (1) {
fgets(riadok, 80, f);
if (feof(f))
break;
if (strstr(riadok, slovo) != NULL) {
printf("%s", riadok);
}
}
fclose(f);
}
// end file 12\09.c
// begin file 12\10.c
/*
10. Pomocou funkcie fgets() vypí te pocet znakov v jednotlivých riadkoch súboru, o etri
*/
#include <stdio.h>
main()
{
char riadok[1000];
FILE *f;
int i;
f = fopen("10.c", "r");
if (f == NULL)
return;
i = 0;
while (1) {
fgets(riadok, 1000, f);
if (feof(f))
break;
printf("riadok %d ma %d znakov\n", i + 1, strlen(riadok) - 1);
i++;
}
fclose(f);
}
// end file 12\10.c
// begin file 12\11.c
/*
11. Precítajte z klávesnice riadok, ktorý má slová oddelené medzerou, pomocou funkcie s
*/
#include <stdio.h>
main()
{
char s[1000];
char *p;
char *p2;
gets(s);
p = s;
p2 = strchr(p, ' ');
while (*p != 0) {
if (p2 == NULL) {
printf("%s\n", p);
break;
}
while (p < p2) {
printf("%c", *p);
p++;
}
p++;
p2 = strchr(p, ' ');
printf("\n");
}
}
// end file 12\11.c
// begin file 12\12.c
/*
12. Napí te funkciu strings(char*sl, char*s2,int i); ktorá vlo í do retazca sl od pozíc
*/
strings(char *s1, char *s2, int i)
{
int j;
int len1;
int len2;
len1 = strlen(s1);
len2 = strlen(s2);
for (j = 0; j < len1 - len2; j++) {
s1[len1 + len2 - j - 1] = s1[len1 - j - 1];
}
for (j = 0; j < len2; j++) {
s1[i + j] = s2[j];
}
}
main()
{
char s[100] = "abcdefgh";
printf("%s\n", s);
strings(s, "XYZ", 5);
printf("%s\n", s);
}
// end file 12\12.c
// begin file 12\13.c
/*
13. Napí te funkciu strdel(char*s, int i, int n); ktorá vyma e z retazca s n-znakov od
*/
strdel(char *s, int i, int n)
{
int j;
int len;
len = strlen(s);
i--;
for (j = 0; j < len - i - n; j++) {
s[i + j] = s[i + n + j];
}
}
// end file 12\13.c
// begin file 12\14.c
/*
14. Napí te príkaz tlace císla pi (zadefinujte ako symbolickú kon tantu min. 7 miest),
*/
#include <stdio.h>
main()
{
char pi[] = "3.1415926";
int i;
int a;
printf("zadaj presnost\n");
scanf("%d", &a);
for (i = 0; i < a + 2; i++) {
printf("%c", pi[i]);
}
printf("\n");
}
// end file 12\14.c
// begin file 13\01.c
/*
1. Urobte program, ktorý naplní maticu 10x10 int císlami od 0 a 99 a pomocou pointrov
*/
#include <stdio.h>
main()
{
int i;
int j;
int pole[10][10];
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
pole[i][j] = i*10+j;
}
}
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
printf("%2d ", *(*(pole+i)+j));
}
printf("\n");
}
}
// end file 13\01.c
// begin file 13\02.c
/*
2. Definujte statické pole 5x5 int a vypí te adresu zaciatku podla, nultého a prvého r
*/
#include <stdio.h>
main()
{
int i;
int j;
int pole[5][5];
printf("%p\n", pole);
printf("%p\n", pole[0][0]);
printf("%p\n", pole[0][1]);
printf("%p\n", pole[4][4]);
printf("%d ~ %d\n", sizeof(pole), sizeof(int) * (&(pole[4][4]) - &(pole[0][0]) + 1)
}
// end file 13\02.c
// begin file 13\03\03.c
/*
3. Urobte program, ktorý pomocou pola pointrov na char precíta súbor a ulo í do dynami
*/
#include <stdio.h>
main()
{
int i;
int pocet = 0;
char *pole[1000];
FILE *f;
f = fopen("03.C", "r");
while (1) {
if (feof(f))
break;
pole[pocet] = (char *) malloc(sizeof(char) * 1000);
fgets(pole[pocet], 1000, f);
pocet++;
if (pocet >= 1000)
break;
}
fclose(f);
f = fopen("03.TXT", "w");
while (pocet > 0) {
pocet--;
fprintf(f, "%s", pole[pocet]);
}
fclose(f);
}
// end file 13\03\03.c
// begin file 13\03\03.TXT
35: x34: }
33: fclose(f);
32: }
31: fprintf(f, "%2d: %s", pocet, pole[pocet]);
30: pocet--;
29: while (pocet > 0) {
28: f = fopen("03.TXT", "w");
27:
26: fclose(f);
25: }
24: break;
23: if (pocet >= 1000)
22: pocet++;
21:
20: fgets(pole[pocet], 1000, f);
19: pole[pocet] = (char *) malloc(sizeof(char) * 1000);
18:
17: break;
16: if (feof(f))
15: while (1) {
14:
13: f = fopen("03.C", "r");
12:
11: FILE *f;
10: char *pole[1000];
9: int pocet = 0;
8: int i;
7: {
6: main()
5:
4: #include <stdio.h>
3:
2: */
1: 3. Urobte program, ktorý pomocou pola pointrov na char precíta súbor a ulo í d
0: /*
// end file 13\03\03.TXT
// begin file 13\04\04.c
/*
4. Upravte predchádzajúcu úlohu/program tak, e budäú vynechané riadky, v ktorých bude
*/
#include <stdio.h>
main()
{
int i;
int pocet = 0;
char *pole[1000];
FILE *f;
char s[100];
scanf("%s", s);
f = fopen("04.C", "r");
while (1) {
if (feof(f))
break;
pole[pocet] = (char *) malloc(sizeof(char) * 1000);
fgets(pole[pocet], 1000, f);
pocet++;
if (pocet >= 1000)
break;
}
fclose(f);
f = fopen("04.TXT", "w");
while (pocet > 0) {
pocet--;
if (strstr(pole[pocet], s) != NULL) {
fprintf(f, "%s", pole[pocet]);
}
}
fclose(f);
}
// end file 13\04\04.c
// begin file 13\05\05.c
/*
5. Upravte predchádzajúcu úlohu/program tak, e vytvorí súbor ODKAZ.TXT, kde ku ka dém
*/
#include <stdio.h>
main()
{
int i;
int pocet = 0;
char *pole[1000];
FILE *f;
FILE *f2;
char s[100];
f = fopen("05.C", "r");
while (1) {
if (feof(f))
break;
pole[pocet] = (char *) malloc(sizeof(char) * 1000);
fgets(pole[pocet], 1000, f);
pocet++;
if (pocet >= 1000)
break;
}
fclose(f);
pocet--;
f = fopen("ODKAZ.TXT", "w");
f2 = fopen("SLOVA.DAT", "r");
while (1) {
fgets(s, 100, f2);
if (feof(f2))
break;
s[strlen(s) - 1] = '\0';
for (i = 0; i < pocet; i++) {
if (strstr(pole[i], s) != NULL) {
fprintf(f, "%d ", i);
}
}
fprintf(f, "%s\n", s);
}
fclose(f);
fclose(f2);
}
// end file 13\05\05.c
// begin file 13\05\ODKAZ.TXT
8 9 40 43 int
18 25 35 39 if
15 31 32 fopen
// end file 13\05\ODKAZ.TXT
// begin file 13\05\SLOVA.DAT
int
if
fopen
// end file 13\05\SLOVA.DAT
// begin file 13\06.c
/*
6. Definujte v main() lokálne automatické pole 10x10 prvkov typu int a vytvorte funkci
*/
#include <stdio.h>
napln(int p[10][10])
{
int i;
int j;
for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
p[i][j] = i*10 + j;
}
tlac(int p[10][10])
{
int i;
int j;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
printf("%2d ", p[i][j]);
}
printf("\n");
}
}
main()
{
int pole[10][10];
napln(pole);
tlac(pole);
}
// end file 13\06.c
// begin file 13\07.c
/*
7. Vytvorte program, ktorý vytvorí dynamické pole ako dolnú trojuholníkovú maticu. Tút
*/
#include <stdio.h>
main()
{
int i;
int j;
int **p;
p = (int **) malloc(sizeof(int *) * 10);
for (i = 0; i < 10; i++) {
p[i] = (int *) malloc(sizeof(int) * (i + 1));
for (j = 0; j < i + 1; j++) {
p[i][j] = i*10 + j;
}
}
for (i = 0; i < 10; i++) {
for (j = 0; j < i + 1; j++) {
printf("%2d ", p[i][j]);
}
printf("\n");
free(p[i]);
}
free(p);
}
// end file 13\07.c
// begin file 13\08.c
/*
8. Napí te program, ktorý precíta parametre zo vstupného riadku a vypí te ich velkými
*/
#include <stdio.h>
main(int argc, char **argv)
{
int i;
int j;
int len;
char *s;
for (i = 0; i < argc; i++) {
len = strlen(argv[i]);
s = (char *) malloc(sizeof(char) * len + 1);
s[len] = '\0';
for (j = 0; j < len; j++)
if (isalpha(s[j]))
s[j] = tolower(argv[i][j]);
else
s[j] = argv[i][j];
printf("Parameter %d: %s\n", i, s);
free(s);
}
}
// end file 13\08.c
// begin file 13\09.c
/*
9. Napí te program, ktorý vypí e na obrazovku súbor, aby jeho meno bol 1. parameter pr
*/
#include <stdio.h>
main(int argc, char **argv)
{
char meno[100];
char s[1000];
FILE *f;
FILE *f2;
if (argc == 1) {
printf("Tento program sa pouziva s jednym parametrom na citanie a s nepovin
return;
}
strcpy(meno, argv[1]);
if (argc == 3)
f2 = fopen(argv[2], "w");
else
f2 = stdout;
f = fopen(meno, "r");
if (f == NULL)
return;
while (1) {
fgets(s, 1000, f);
if (feof(f))
break;
fputs(s, f2);
}
fclose(f);
fclose(f2);
}
// end file 13\09.c
// begin file 13\10.c
/*
10. Upravte predchádzajúcu úlohu,... návod sa vypí e, ak bude 1. parameter h (alebo hel
*/
#include <stdio.h>
main(int argc, char **argv)
{
char meno[100];
char s[1000];
FILE *f;
FILE *f2;
if (argc >= 2 && (strcmp(argv[1], "h") == 0 || strcmp(argv[1], "help") == 0)) {
printf("Tento program sa pouziva s jednym nepovinnym parametrom na citanie
return;
}
if (argc == 1)
scanf("%s", meno);
else
strcpy(meno, argv[1]);
if (argc == 3)
f2 = fopen(argv[2], "w");
else
f2 = stdout;
f = fopen(meno, "r");
if (f == NULL)
return;
while (1) {
fgets(s, 1000, f);
if (feof(f))
break;
fputs(s, f2);
}
fclose(f);
fclose(f2);
}
// end file 13\10.c
// begin file 14\01.c
/*
1. Definujte truktúru s 3 prvkai (v poradí: float, char, int) a union s tými
*/
#include <stdio.h>
main()
{
union {
float f;
char c;
int i;
} u;
struct {
float f;
char c;
int i;
} st;
printf("%p %p %p %p\n", &u, &u.f, &u.c, &u.i);
printf("%p %p %p %p\n", &st, &st.f, &st.c, &st.i);
}
// end file 14\01.c
// begin file 14\02.c
/*
2. Definujte truktúru s polo kami meno, vek. Napí te funkciu napln(), ktorá túto tru
*/
#include <stdio.h>
#include <string.h>
struct t_info {
char meno[20];
int vek;
};
napln(struct t_info *st)
{
strcpy(st->meno, "Anicka Dusicka");
st->vek = 16;
}
main()
{
struct t_info st1;
struct t_info *st2;
st2 = (struct t_info *) malloc(sizeof(struct t_info));
napln(&st1);
napln(st2);
printf("1. %s, %d\n", st1.meno, st1.vek);
printf("2. %s, %d\n", st2->meno, st2->vek);
}
// end file 14\02.c
// begin file 14\03\03.c
/*
3. Upravte predchádzajúce zadanie, aby meno a vek boli cítané zo súboru (oba údaje na
*/
#include <stdio.h>
#include <string.h>
struct t_info {
char meno[20];
int vek;
};
main()
{
struct t_info pole[1000];
int i;
int suma = 0;
int pocet = 0;
int vek;
char meno[20];
float priemer;
FILE *f;
f = fopen("MENA.TXT", "r");
while (1) {
fscanf(f, "%d %s", &vek, meno);
if (feof(f))
break;
pole[pocet].vek = vek;
strcpy(pole[pocet].meno, meno);
suma += vek;
pocet++;
}
fclose(f);
priemer = (float) suma / (float) pocet;
printf("Priemerny vek je %f\n", priemer);
for (i = 0; i < pocet; i++) {
if (pole[i].vek >= (priemer - 1) && pole[i].vek <= (priemer + 1)) {
printf("%d. %d %s\n", i + 1, pole[i].vek, pole[i].meno);
}
}
}
// end file 14\03\03.c
// begin file 14\03\MENA.TXT
18 Janko
28 Dedo
16 Turcin
1 Palculiatko
15 Anicka
// end file 14\03\MENA.TXT
// begin file 14\04\04.c
/*
4. Predchádzajúci program upravte, e miesto do pola truktúr sa budä nacítané údaje u
*/
#include <stdio.h>
#include <string.h>
struct t_info {
char meno[20];
int vek;
struct t_info *next;
};
main()
{
struct t_info *pole = NULL;
struct t_info *prvok;
struct t_info *posledny;
int i;
int suma = 0;
int pocet = 0;
int vek;
char meno[20];
float priemer;
FILE *f;
f = fopen("MENA.TXT", "r");
while (1) {
fscanf(f, "%d %s", &vek, meno);
if (feof(f))
break;
prvok = (struct t_info *) malloc(sizeof(struct t_info));
prvok->vek = vek;
strcpy(prvok->meno, meno);
prvok->next = NULL;
suma += vek;
pocet++;
if (pole == NULL) {
pole = prvok;
posledny = prvok;
}
else {
posledny->next = prvok;
posledny = prvok;
}
}
fclose(f);
priemer = (float) suma / (float) pocet;
printf("Priemerny vek je %f\n", priemer);
prvok = pole;
for (i = 0; i < pocet; i++) {
if (prvok->vek >= (priemer - 1) && prvok->vek <= (priemer + 1)) {
printf("%d. %d %s\n", i + 1, prvok->vek, prvok->meno);
}
prvok = prvok->next;
}
while (pole != NULL) {
prvok = pole->next;
free(pole);
pole = prvok;
}
}
// end file 14\04\04.c
// begin file 14\04\MENA.TXT
18 Janko
28 Dedo
16 Turcin
1 Palculiatko
15 Anicka
// end file 14\04\MENA.TXT
// begin file 14\05.c
/*
5. Vytvorte program, ktorý pomocou funkcie
fgets() precítaj súbor a ulo í ho do pamäte
po riadkoch pomocou jednosmerného zretazeného
zoznamu truktúr. Polo kami truktúr musia
byt tie retazec max dl ky 80 a aktuálna
dl ka riadku. Vytlacte najdlh í riadok súboru.
*/
#include <stdio.h>
#include <string.h>
struct t_info {
char retazec[80];
int len;
struct t_info *next;
};
main()
{
FILE *f;
struct t_info *pole = NULL;
struct t_info *posledny = NULL;
struct t_info *r = NULL;
struct t_info *maxr = NULL;
char s[80];
f = fopen("05.C", "r");
while (1) {
fgets(s, 80, f);
if (feof(f))
break;
r = (struct t_info *) malloc(sizeof(struct t_info));
r->len = strlen(s);
strcpy(r->retazec, s);
r->next = NULL;
if (pole == NULL) {
pole = r;
}
else {
posledny->next = r;
}
posledny = r;
if ((maxr == NULL) || (r->len > maxr->len)) {
maxr = r;
}
}
fclose(f);
printf("najdlshi riadok je:\n%s", maxr->retazec);
while (pole != NULL) {
r = pole->next;
free(pole);
pole = r;
}
}
// end file 14\05.c
// begin file 14\06.c
/*
6. Upravte predchádzajúci program, aby polo kami truktúry bol pointer na retazec a dl
*/
#include <stdio.h>
#include <string.h>
struct t_info {
char *retazec;
int len;
struct t_info *next;
};
main()
{
FILE *f;
struct t_info *pole = NULL;
struct t_info *posledny = NULL;
struct t_info *r = NULL;
char s[80];
int suma = 0;
int pocet = 0;
f = fopen("06.C", "r");
while (1) {
fgets(s, 80, f);
s[79] = '\0';
if (feof(f))
break;
r = (struct t_info *) malloc(sizeof(struct t_info));
r->len = strlen(s);
// r->retazec = (char *) malloc(sizeof(char) * r->len); // toto mrzne v Dev
r->retazec = (char *) malloc(sizeof(char) * 80);
strcpy(r->retazec, s);
r->next = NULL;
if (pole == NULL) {
pole = r;
}
else {
posledny->next = r;
}
posledny = r;
suma += r->len;
pocet++;
}
fclose(f);
printf("priemerna dlzka je %f\n", (float) suma/pocet);
r = pole;
while (r != NULL) {
if (r->len > (float) suma/pocet) {
printf("%s", r->retazec);
}
r = r->next;
}
while (pole != NULL) {
r = pole->next;
free(pole->retazec);
free(pole);
pole = r;
}
}
// end file 14\06.c
// begin file 14\07.c
/*
7. Napí te program, ktorý precíta súbor max 1000 riadkov
a do pola truktúr ulo í dl ku riadku. Do prvkov vhniezdenej/
vnorenej truktúry pocet ulo í jednak pocet písmen a na
tomto riadku a následne aj pocet v etkých rôznych znakov,
zistite celkový pocet znakov v súbore.
*/
#include <stdio.h>
#include <string.h>
struct t_info {
int dlzka;
struct {
int pismen;
int ostatnych;
} pocet;
};
main()
{
FILE *f;
struct t_info pole[1000];
int pocet = 0;
char s[80];
int suma = 0;
int i;
f = fopen("07.C", "r");
while (1) {
fgets(s, 80, f);
if (feof(f))
break;
pole[pocet].dlzka = strlen(s);
for (i = 0; i < pole[pocet].dlzka; i++) {
if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')) {
pole[pocet].pocet.pismen++;
}
else {
pole[pocet].pocet.ostatnych++;
}
}
pocet++;
}
fclose(f);
for (i = 0; i < pocet; i++) {
suma += pole[i].dlzka;
}
printf("celkovy pocet znakov je %d\n", suma);
}
// end file 14\07.c
// begin file 14\08.c
/*
8.Urobte program, ktorý bude zis¿ova¿, ¿i sa súbor (jeho meno bude zadané z klávesn
*/
#include <stdio.h>
enum BOOLEAN {ANO, NIE };
enum BOOLEAN tu_je(char *meno)
{
FILE *f;
f = fopen(meno, "r");
if (f == NULL)
return NIE;
fclose(f);
return ANO;
}
main()
{
char s[80];
scanf("%s", s);
if (tu_je(s) == ANO) {
printf("Subor existuje\n");
}
else {
printf("Subor neexistuje\n");
}
}
// end file 14\08.c
// begin file 14\09.c
/*
9.Definujte zoznam AUTOMOBILY a vytla¿te názvy aj hodnoty jednotlivých polo¿iek, ná
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct AUTOMOBILY {
char nazov[20];
int typ;
}
main()
{
struct AUTOMOBILY pole[4];
int i;
int pocet = 0;
strcpy(pole[pocet].nazov, "volkswagen");
pole[pocet].typ = 1;
pocet++;
strcpy(pole[pocet].nazov, "skoda");
pole[pocet].typ = 2;
pocet++;
strcpy(pole[pocet].nazov, "opel");
pole[pocet].typ = 1;
pocet++;
strcpy(pole[pocet].nazov, "fiat");
pole[pocet].typ = 3;
pocet++;
for (i = 0; i < pocet; i++) {
printf("%d. nazov:%s typ:%d\n", i+1, pole[i].nazov, pole[i].typ);
}
}
// end file 14\09.c
// begin file 14\10.c
/*
10.Predchádzajúci zoznam skúste iniacilizova¿, ¿alej pokra¿ujte v zmysle zadania.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct AUTOMOBILY {
char nazov[20];
int typ;
}
main()
{
struct AUTOMOBILY pole[4] = {
{"volkswagen", 1},
{"skoda", 2},
{"opel", 1},
{"fiat", 3}
};
int i;
int pocet = 4;
for (i = 0; i < pocet; i++) {
printf("%d. nazov:%s typ:%d\n", i+1, pole[i].nazov, pole[i].typ);
}
}
// end file 14\10.c

You might also like