Задача: Создать компьютерную программу, которая сможет вычислить реальную зависимость напряжения от тока (Вольт-Амперную характеристику) для обычного резистора.
Обычно на уроках в школе предполагается, что резисторы подчиняются закону Ома
и ток зависит линейно от напряжения. Однако резистору во время долгой работы
свойственно нагреваться, а значит его сопротивление изменяется. Для большинства
проводников при не слишком больших температурах их удельное сопротивление зависит от температуры следующим образом:
ρ(T) = ρ0(1 + α(T − T0))
где ρ0 — удельное сопротивление при температуре T0, а α =
1\273 К−1 — температурная
постоянная, одинаковая для очень большого количества проводников. Процесс установления температуры можно в первом приближении считать достаточно быстрым, а
потери тепла — подчиняющихся закону Ньютона-Рихмана
Pпот. = β∆T.
Задание:
Постройте график зависимости сопротивления от протекающего тока
Мой код:
import math
import numpy as np
import matplotlib.pyplot as plt
for i in range (1, 50):
for t in 300, 400, 500, 600:
T0 = 200
T = T0 + t
if t == 300:
c = 443.6
if t == 400:
c = 484.1
if t == 500:
c = 524
if t == 600:
c = 591
pl = 8902
l = 10
s = 0.01
a = 14.01
q = a*(T-T0)
Q = c*s*l*pl*(T - T0) + q
α = 1/273
ρ0 = 8.700 * 10 - 8
p = ρ0*(1 + α*(T - T0))
R = p * l / s
t = Q / i**2 * R
i = math.sqrt(Q/R)
round(R, 1)
round(i, 1)
i = np.arange(0, 10.5, 0.5)
R= np.arange(0, 10.5, 0.5)
plt.scatter(i, R)
plt.show()
Что не так?
Begin
write('Введите 3 числа: ');
readln (a,b,c);
if c = sqrt(a*a + b*b) then writeln('Число ',c,' является гипотенузой прямоугольного треугольника со сторонами ',a,' ',b,' ',c)
else if a = sqrt(c*c + b*b) then writeln('Число ',a,' является гипотенузой прямоугольного треугольника со сторонами ',a,' ',b,' ',c)
else if b = sqrt(a*a + c*c) then writeln('Число ',b,' является гипотенузой прямоугольного треугольника со сторонами ',a,' ',b,' ',c)
else writeln('Эти числа не являются сторонами прямоугольного треугольника')
End.
var a,b,s:integer;
begin
Readln(a,b);
s:=0;
if (a<0)and(b<0) then
begin a:=-a; b:=-b; end;
if a<0 then for var i:=1 to b do s+=a
else for var i:=1 to a do s+=b;
WriteLn(s);
end.
Пример:
-7 15
-105
2)
var n,s:integer;
begin
Readln(n);
s:=0;
for var i:=1 to n do s+=i;
WriteLn(s);
end.
Пример:
100
5050
3)
var a,b,s:integer;
begin
Readln(a,b);
s:=0;
for var i:=a to b do s:=s+i*i;
writeLn(s);
end.
Пример:
2 5
54
4)
var a,b,n:integer;
begin
Readln(a,b,n);
for var i:=1 to n do write(random(b-a+1)+a,' ');
end.
Пример:
10 20 5
11 12 14 14 18