Нет, т.к. у разных типов переменных разный диапазон значений. Например: У типа byte значения в диапазоне 0..255, а у типа integer -32768..32767. Если надо выполнить операцию 1000 раз, а параметр типа byte, то параметр не сможет дальше изменять своего значения, т.к. его предел 255. Наверно так.
Railyan
14.11.2021
Основа взята на сайте progmatem.ru. К сожалению, автор статьи там не был указан.
begin SetWindowSize(w,h); // поле для графика в окне var xLeft:=50; var yLeft:=50; var xRight:=w-xLeft; var yRight:=h-yLeft; // интервалы по осям var ax:=-12.0; var bx:=12.0; var hx:=1.0; var ay:=-6.5; // минимум f(x) с запасом var by:=6.5; var hy:=0.5; // масштабы по осям var mx:=(xRight-xLeft)/(bx-ax); var my:=(yRight-yLeft)/(by-ay); // точка начала координат графика var x0:=xLeft+Trunc(abs(ax)*mx); var y0:=yRight-Trunc(abs(ay)*my); // рисование координатных осей Line(xLeft,y0,xRight+10,y0); Line(x0,yLeft-10,x0,yRight); SetFontSize(12); SetFontColor(clBlue); TextOut(xRight+15,y0-10,'X'); TextOut(x0-4,yLeft-30,'Y'); SetFontSize(8); SetFontColor(clGreen); // рисование засечек var s:string; for var i:=1 to Round((bx-ax)/hx)+1 do begin var num:=ax+(i-1)*hx; var x:=xLeft+Trunc(mx*(num-ax)); Line(x,y0-3,x,y0+3); Str(num,s); if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s) end; for var i:=1 to Round((by-ay)/hy)+1 do begin var num:=ay+(i-1)*hy; var y:=yRight-Trunc(my*(num-ay)); Line(x0-3,y,x0+3,y); Str(num,s); if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s) end; TextOut(x0-10,y0+10,'0'); // собственно график var xi:=ax; while xi<=bx do begin var yi:=f(xi); var x:=x0+Round(xi*mx); var y:=y0-Round(yi*my); if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed); xi+=1e-3 end end.
begin SetWindowSize(w,h); // поле для графика в окне var xLeft:=50; var yLeft:=50; var xRight:=w-xLeft; var yRight:=h-yLeft; // интервалы по осям var ax:=-15.0; var bx:=15.0; var hx:=1.0; var ay:=-6.5; // минимум f(x) с запасом var by:=6.5; var hy:=0.5; // масштабы по осям var mx:=(xRight-xLeft)/(bx-ax); var my:=(yRight-yLeft)/(by-ay); // точка начала координат графика var x0:=xLeft+Trunc(abs(ax)*mx); var y0:=yRight-Trunc(abs(ay)*my); // рисование координатных осей Line(xLeft,y0,xRight+10,y0); Line(x0,yLeft-10,x0,yRight); SetFontSize(12); SetFontColor(clBlue); TextOut(xRight+15,y0-10,'X'); TextOut(x0-4,yLeft-30,'Y'); SetFontSize(8); SetFontColor(clGreen); // рисование засечек var s:string; for var i:=1 to Round((bx-ax)/hx)+1 do begin var num:=ax+(i-1)*hx; var x:=xLeft+Trunc(mx*(num-ax)); Line(x,y0-3,x,y0+3); Str(num,s); if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s) end; for var i:=1 to Round((by-ay)/hy)+1 do begin var num:=ay+(i-1)*hy; var y:=yRight-Trunc(my*(num-ay)); Line(x0-3,y,x0+3,y); Str(num,s); if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s) end; TextOut(x0-10,y0+10,'0'); // собственно график var xi:=ax; while xi<=bx do begin var yi:=f(xi); var x:=x0+Round(xi*mx); var y:=y0-Round(yi*my); if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed); xi+=1e-3 end end.
myatadinamo
14.11.2021
Самый простой это с операций целочисленного деления разбить общее число секунд на часы, минуты, секунды. Далее собрать нужную строку из получившихся значений, преобразовывая в строки. Учитывая длины получившихся подстрок где надо добавляем 0 слева от начала подстроки.
n = int(input('Число секунд с начала суток: ')) h = n // 3600 n = n % 3600 m = n // 60 s = n % 60 sh = str(h) sm = str(m) if len(sm)<2: sm = "0"+sm ss = str(s) if len(ss)<2: ss = "0"+ss print(sh,':',sm,':',ss)
Тест №1 Число секунд с начала суток: 7200 2 : 00 : 00
Тест №2 Число секунд с начала суток: 75201 20 : 53 : 21
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Могут ли параметр цикла, его начальное и конечное значения в цикле с параметром в языке паскаль быть разных типов. обоснуйте ответ
Например:
У типа byte значения в диапазоне 0..255, а у типа integer -32768..32767.
Если надо выполнить операцию 1000 раз, а параметр типа byte, то параметр не сможет дальше изменять своего значения, т.к. его предел 255.
Наверно так.