1. Структура на програма

Потсетување: изворниот код на програмскиот јазик C е организиран во функции

int main() {
  deklaracija na promenlivi;
  programski_naredbi;
}

2. Функции во C

  • main

  • Функциите може да примаат влезни аргументи во делот ()

  • Типот на резултатот кој го враќа функцијата стои пред името на функцијата (int – функцијата враќа цел број)

  • Телото на функцијата започнува со {, а завршува со }

  • Сите наредби се одделуваат меѓусебно со ;

3. Употреба на коментари

За дополнително до објаснување или документирање на изворниот код се користат коментари. Постојат два вида коментари:

  • коментари во еден ред

// komentar vo eden red
  • коментари во повеќе редови

/*
komentar vo
povekje redovi
*/

3.1. Основна програма во C

Пример 1
#include <stdio.h>

// glavna funkcija
int main() {
    /*
    pechatenje poraka na ekran
    */
    printf("Dobredojdovte na FINKI!\n");
    return 0;
}
  • #include - директива за вклучување на надворешни библиотеки

  • stdio.h - библиотека со функции за работа со стандардни влезно/излезни текови (тастатура, екран)

  • printf - функција за печатње на стандарден излез

3.2. Основна програма во C++

Пример 1
#include <iostream>
using namespace std;

// glavna funkcija
int main() {
    /*
    pechatenje poraka na ekran
    */
    cout << "Dobredojdovte na FINKI!" << endl;
    return 0;
}
  • #include - директива за вклучување на надворешни библиотеки

  • <iostream> - библиотека за работа со стандардни влезно/излезни текови (тастатура, екран)

  • cout - глобален објект за работа со излезен тек (екран)

  • << со оператор за печатење на излезен тек (екран)

3.3. Програма за собирање два броја

Пример 2
#include <stdio.h>

int main() {
    int a = 5;
    int b = 10;
    int c = a + b;
    return 0;
}

4. Променливи (variables)

  • Променливите се симболички имиња за места во меморијата во кои се чуваат некакви вредности.

  • Сите променливи пред да се користат треба да се декларираат.

  • Со секое ново сместување на вредност во променливата, старата вредност се брише

4.1. Начин на декларација на променливи

тип_на_променлива име_на_променлива = почетна_вредност;
Пример
int a = 5;
float x = 2.3;
char c = 'a';

4.2. Типови на променливи во C

Цели броеви Знаковни Децимални

int

char

float

short

double

long

4.3. Дефинирање на имиња на променливи

При именувањето на променливите може да се користат:

  • мали букви од a до z;

  • големи букви од A до Z;

  • цифри од 0 до 9 (не смее да започнува со цифра);

Избирјте имиња на променливи кои јасно го означуваат она што се чува во неа.
С ги разликува малите и големите букви!

5. Именувани константи

Именуваните константи се креираат со користење на клучниот збор const

Пример 3
#include <stdio.h>

int main() {
    const long double PI = 3.141592653590L;
    const int DENOVI_VO_NEDELA = 7;
    const NEDELA = 0; // po default int
    DENOVI_VO_NEDELA = 7; // greshka
    return 0;
}

Именуваните константи може да се креираат и со користење на претпроцесорот и за нив по правило се користат големи букви

Користење на #define

#define tekst_za_baranje tekst_za_zamena

Пример 4
#include <stdio.h>
#define PI 3.141592653590L
#define DENOVI_VO_NEDELA 7
#define NEDELA 0

int main() {
    long broj = PI;
    int den = NEDELA;
    return 0;
}

6. Печатење на стандарден излез

За печатење на стандарден излез (екран) во C се користи готова функција printf од бибилиотеката stdio.h (Standard Input Otput)

#include <stdio.h>

Функцијата која се употребува е:

int printf(kontrolna_niza, lista_na_argumenti)

Контролната низа содржи било каков текст, ознаки за форматот на печатење на аргументите предводени со % или специјални знаци кои започнуваат со \.

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

6.1. Најчесто користени ознаки за форматот на печатењето

Ознака Објаснување

%d

за цели броеви (int)

%i

за цели броеви (int)

%f

за децимални броеви (float, double)

%c

за знаци (char)

%s

за низа од знаци (стринг, char[], char*)

%%

за знакот %

6.2. Пример на користење на функцијата printf

Да се отпечати на екран во следниов редослед:

Prva recenica.
Vtora recenica.
Treta recenica.
Пример 5
#include <stdio.h>

int main() {
    printf("Prva rechenica.\n");
    printf("Vtora rechenica.\nTreta rechenica.");
    return 0;
}
Пример 5 (C++)
#include <iostream>
using namespace std;

int main() {
    cout << "Prva rechenica.\n";
    cout << "Vtora rechenica.\nTreta rechenica.";
    return 0;
}
Пример 6
#include <stdio.h>

int main() {
    printf(" e zbor dolg %d bukvi.\n", printf("Makedonija"));
    return 0;
}

7. Оператори

7.1. Аритметички оператори

Се применуваат на броеви (цели или децимални)

Оператор Операција

+

Собирање

-

Одземање

*

Множење

/

Делење

%

Делење по модул (остаток при делењето)

8. Задачи

8.1. Задача 1

Да се напише програма која ќе ја пресметува вредноста на математичкиот израз: x = 3/2 + (5 – 46*5/12)

Решение 1
#include <stdio.h>

int main() {
    float x = 3.0 / 2 + (5 - 46 * 5.0 / 12);
    printf("x = %.2f\n", x);
    return 0;
}

8.2. Задача 2

Да се напише програма која за зададена вредност на х (при декларација на променливата) ќе го пресмета и отпечати на екран х2.

Решение 2
#include <stdio.h>

int main() {
    int x = 7;
    printf("Brojot %d na kvadrat e %d\n", x, x * x);
    return 0;
}
Решение 2 (C++)
#include <iostream>
using namespace std;

int main() {
    int x = 7;
    cout << "Brojot " << x << " na kvadrat e " << x * x << endl;
    return 0;
}

8.3. Задача 3

Да се напише програма која за дадени страни на еден разностран триаголник ќе ги отпечати на екран периметарот и квадратот од плоштината (нека се работи со a = 5, b = 7.5, c = 10.2).

Решение 3
#include <stdio.h>

int main() {
    float a = 5.0;
    float b = 7.5;
    float c = 10.2;
    float L = a + b + c;
    float s = L / 2;
    float P = s * (s - a) * (s - b) * (s - c);
    printf("Perimetarot e: %.2f\n", L);
    printf("Kvadratot na ploshtinata e: %.2f\n", P);
    return 0;
}
Решение 3 (C++)
#include <iostream>
using namespace std;

int main() {
    float a = 5.0;
    float b = 7.5;
    float c = 10.2;
    float L = a + b + c;
    float s = L / 2;
    float P = s * (s - a) * (s - b) * (s - c);
    cout << "Perimetarot e: " << L << endl;
    cout << "Kvadratot na ploshtinata e: " << P << endl;
    return 0;
}

8.4. Задача 4

Да се напише програма за пресметување на аритметичката средина на броевите 3, 5 и 12.

Решение 4
#include <stdio.h>

int main() {
    int a = 3;
    int b = 5;
    int c = 12;
    float as = (a + b + c) / 3.0;
    printf("Aritmetichkata sredina e %2.f\n", as);
    return 0;
}

8.5. Задача 5

Да се напише програма која ќе ги отпечати на екран остатоците при делењето на бројот 19 со 2, 3, 5 и 8.

Решение 5
#include <stdio.h>

int main() {
    int a = 19;
    printf("Ostatokot pri delenje so 2 e: %d\n", a % 2);
    printf("Ostatokot pri delenje so 3 e: %d\n", a % 3);
    printf("Ostatokot pri delenje so 5 e: %d\n", a % 5);
    printf("Ostatokot pri delenje so 8 e: %d\n", a % 8);
    return 0;
}

8.6. Задача 6

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

Решение 6
#include <stdio.h>
#define PI 3.14

int main() {
    float radius;
    scanf("%f", &radius);

    float perimetar = 2 * radius * PI ;
    float plostina = radius * radius * PI;
    printf("L = %f\n", perimetar);
    printf("P = %f\n", plostina);
    return 0;
}

8.7. Задача 7

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

Решение 7
#include <stdio.h>

int main() {
    int x, y;
    scanf("%d %d", &x, &y);

    printf("%d + %d = %d\n", x, y, x + y);
    printf("%d - %d = %d\n", x, y, x - y);
    printf("%d * %d = %d\n", x, y, x * y);
    printf("%d %% %d = %d\n", x, y, x % y);
    return 0;
}

8.8. Задача 8

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

Секој знак се претставува со ASCII број.
пример
A = 65, a = 97
Решение 8
#include <stdio.h>

int main() {
    char c;
    printf("Vnesete golema bukva: ");
    scanf("%c", &c);
    printf("%c malo se pishuva: '%c'\n", c, c + ('a' - 'A'));
    return 0;
}

9. Изворен код од примери и задачи