Serijski vezani otpornici¶
Autor zadatka: Rade Radišić <radisic.rade@uns.ac.rs>
Dat je niz realnih brojeva od maksimalno 20 elemenata.
Učitati n
pozitivnih elemenata, gde svaka vrednost u nizu predstavlja otpornost jednog otpornika izraženu u omima.
Otpornosti mogu biti isključivo pozitivne, realne vrednosti.
Uneti putem standardnog ulaza vrednost struje I
, koja predstavlja realnu vrednost.
Otpornici su serijski povezani i predstavljaju električno kolo kroz koje protiče struja I
.
Za serijski vezane otpornosti iz niza izračunati i ispisati:
Ukupnu vrednost napona nad električnim kolom.
Procentualni udeo napona nad najvećim potrošačem u odnosu na ukupan napon u kolu.
Formirati novi niz u odnosu na ulazni, gde su pojedinačni elementi snage otpornika.
Ispise vrednosti zaokružiti na dve decimale.
Za ulazni niz otpornosti [1, 20, 15, 10, 6, 2.5]
i vrednost struje od 0.5
ampera, očekivani ispis na standardnom izlazu je:
Unesite broj clanova niza: 6
R[0] = 1
R[1] = 20
R[2] = 15
R[3] = 10
R[4] = 6
R[5] = 2.5
Unesite jacinu struje u amperima: 0.5
Ukupan napon: 27.25V
Procentualni udeo napona: 36.70%
[0.25W, 5.00W, 3.75W, 2.50W, 1.50W, 0.62W]
Korisne matematičke formule
Ukupna otpornost serijski vezanih otpornika:
Omov zakon:
Džulov zakon:
Primer rešenja¶
1#include <stdio.h>
2#include <math.h>
3
4#define MAX_SIZE 20
5
6int main() {
7 double R[MAX_SIZE];
8 int i, n;
9
10 do {
11 printf("Unesite broj clanova niza: ");
12 scanf("%d", &n);
13 } while(n <= 0 || n > MAX_SIZE);
14
15 for(i = 0;i < n;i++) {
16 do {
17 printf("R[%d] = ", i);
18 scanf("%lf", &R[i]);
19 } while(R[i] <= 0);
20 }
21
22 double I;
23
24 printf("Unesite jacinu struje u amperima: ");
25 scanf("%lf", &I);
26 printf("\n");
27
28 double ukupna_otpornost = 0, ukupan_napon;
29
30 for(i = 0;i < n;i++) {
31 ukupna_otpornost += R[i];
32 }
33
34 ukupan_napon = ukupna_otpornost * I;
35 printf("Ukupan napon: %.2lfV\n", ukupan_napon);
36
37 double max = R[0], max_napon, procenat;
38
39 for(i = 1;i < n;i++) {
40 if(max < R[i]) {
41 max = R[i];
42 }
43 }
44
45 max_napon = max * I;
46 procenat = max_napon / ukupan_napon * 100;
47
48 printf("Procentualni udeo napona: %.2lf%%\n", procenat);
49
50 double P[MAX_SIZE];
51
52 for(i = 0;i < n;i++) {
53 P[i] = R[i] * pow(I, 2);
54 }
55
56 printf("[");
57 for(i = 0;i < n;i++) {
58 if(i > 0) {
59 printf(", ");
60 }
61 printf("%.2lfW", P[i]);
62 }
63 printf("]\n");
64
65 return 0;
66}
67