-
Алгоритъм определение - Описание на краен брой елементарни действия, които обработват входни данни с цел търсене на решения
-
Свойства на алгоритмите:
- Кратност - Всички алгоритми имат начало и край
- Дискретност - действията в алгоритъма се извършват едно по едно
- Масовост
- Резултатност - След приключване на алгоритъма, трябва да има някакъв отговор.
-
Видове алгоритми
- Линейни – логаритми при, които последователността на действия, не зависи от входните данни и междинните резултати
- Разклонени - логаритми, при които последователността от действия зависи от входните данни и междинните резултати
- Циклични – определени действия се повтарят многократно краен брой пъти, докато определено условие е вярно
flowchart TD
A([Начало]) --> B[/вх. A, B, C/] --> C{A > B ?}
C -- Yes --> D[ A + B + C]
C -- No --> G[/изх.A > C ?/]
D --> Z([Край])
G --> Z
- Да се състави блок-схема на алгоритъм, който въвежда три произволни числа А, В, С и ги подрежда по нарастване на стойностите (в А записва най-малкото от трите числа, в В по- голямото, а в С най-голямото).
flowchart TD
A([Start]) --> B[/вх. A, B, C/]
B --> C{A > B ?}
C -- Yes --> D[ temp = A ]
D --> E[ A = B ]
E --> F[ B = temp ]
F --> G
C -- No --> G{A > C ?}
G -- Yes --> H[ temp = A ]
H --> I[ A = C ]
I --> J[ C = temp ]
J --> K
G -- No --> K{B > C ?}
K -- Yes --> L[ temp = B ]
L --> M[ B = C ]
M --> N[ C = temp ]
N --> P[/изх. A, B, C/] --> Z([End])
K -- No --> P
- Да се състави блок-схема на алгоритъм за намиране и извеждане на сумата S=X-2^2+3X^3-4X^4+... като изчисленията се преустановят при стойност на сумата по-голяма от 1000. Стойността на променливата Х се въвежда и трябва да е в интервал 2 - 7.
flowchart TD
A([Start]) --> B[/вх. X/]
B --> C{2 ≤ X ≤ 7?}
C -- No --> Z1[/изх. Invalid input /] --> Z([End])
C -- Yes --> D[i = 1]
D --> E[S = 0]
E --> F{S ≤ 1000?}
F -- Yes --> G{i % 2 = 0}
G -- Yes --> H[temp = i * X^i]
G -- No --> I[temp = - i * X^i]
H --> J[S = S + temp]
I --> J
J --> K[i = i + 1]
K --> F
F -- No --> L[/изх. S/] --> Z([End])
- Да се състави блок-схема на алгоритъм, в който се въвеждат стойности на едномерен масив А с n елемента като n е между 3 и 25 Да се намери и отпечата броя на елементите с четни стойности.
flowchart TD
A([Start]) --> B[/вх. n/]
B --> C{3 ≤ n ≤ 25?}
C -- No --> Z1[/изх. Невалидно n/] --> Z([End])
C -- Yes --> D[ i = 0 ]
D --> E[ count = 0 ]
E --> F{ i < n ? }
F -- Yes --> G[/вх. A#91; i #93;/]
G --> H{ A#91; i #93; % 2 = 0 }
H -- Yes --> I[ count = count + 1 ]
H -- No --> K
I --> K[ i = i + 1 ]
K --> F
F -- No --> L[/изх. count/] --> Z([End])
#include <stdio.h>
#define MAX_SIZE 25
int main() {
int n;
int A[MAX_SIZE];
int count = 0;
int i;
// 1. Input n and validation (3 <= n <= 25)
printf("Enter the number of elements (n, 3 <= n <= 25): ");
if (n < 3 || n > MAX_SIZE) {
printf("Invalid n. Number must be between 3 and %d.\n", MAX_SIZE);
return 1;
}
// 2. Input array elements
printf("Enter %d int elements for the array:\n", n);
for (i = 0; i < n; i++) {
printf("A[%d]: ", i);
}
// 3. Count elements with even values
for (i = 0; i < n; i++) {
if (A[i] % 2 == 0) {
count++;
}
}
// 4. Output the result
printf("The number of elements with even values is: %d\n", count);
return 0;
}