mariabrin27
03.04.2021 05:46

Составить графический алгоритм по коду:
unit unit1;
interface
uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs, extctrls;
type
tform1 = class(tform)
timer1: ttimer;
image1: timage;
procedure timer1timer(sender: tobject);
procedure formcreate(sender: tobject);
private
{ private declarations }
public
{ public declarations }
cnt, oblakopos: integer;
raina: array [0..9] of integer; // массив дляд ождя
procedure drawsky(canvas: tcanvas; width, height, x, y: integer);
procedure drawrain(canvas: tcanvas; width, height, w, h, x, y: integer);
end;
var
form1: tform1;
implementation
{$r *.dfm}
procedure tform1.drawsky(canvas: tcanvas; width, height, x, y: integer);
begin
// рисуем небо
canvas.brush.color : = rgb( 0, 224, 255); //clblue;
canvas.rectangle(0, 0, width, height*3 div 5);
//рисуем землю
canvas.brush.color : = clgreen;
canvas.rectangle(0, height*3 div 5, width, height);
//рисуемо блако
canvas.pen.color : = clwhite;
canvas.brush.color : = clwhite;
canvas.ellipse(x , y-15, x+50, y+15);
canvas.ellipse(x-25, y-35, x+25, y+ 5);
canvas.ellipse(x-50, y-25, x, y+ 5);
end;
procedure tform1.drawrain(canvas: tcanvas; width, height, w, h, x, y: integer);
var
i: integer;
begin
for i : = low(raina) to high(raina) do begin
if raina[i] > 0 then begin // если больше 0 то рисуем каплю дождя
// в массиве содержится текущая высота капли. она смещается на x и y
canvas.moveto(x + i*w, y + h - raina[i]);
canvas.lineto(x + i*w, y + h - raina[i] + 20);
raina[i] : = raina[i] - 5;
end else begin // если 0, то случайным образом присваиваем высоту
if random(1000) < 100 then
raina[i] : = h;
end;
end;
end;
procedure tform1.timer1timer(sender: tobject);
begin
if (cnt < 300) or (cnt > 600) then
oblakopos : = oblakopos + 1;
drawsky(image1.canvas, image1.width , image1.height, oblakopos, 100);
if (cnt > 300) and (cnt < 600) then
drawrain(image1.canvas, image1.width , image1.height, 10, 200, oblakopos-50, 100);
cnt : = cnt + 1;
if cnt > 950 then //timer1.enabled : = false;
begin
cnt : = 0;
oblakopos : = cnt; // либо повтор цикла
end;
end;

procedure tform1.formcreate(sender: tobject);
begin
randomize;
cnt : = 0;
oblakopos : = cnt;
timer1.interval : = 20;
image1.width : = 660;
image1.height : = 500;
image1.picture.bitmap.width : = 640;
image1.picture.bitmap.height : = 480;
clientwidth : = 660;
clientheight : = 500;
fillchar(raina, sizeof(integer)*(high(raina)-low(raina)+1), 0);
form1.doublebuffered : = true;
end;
end.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Krisrus2010
11.09.2021 15:22
Var a,b,c,n:integer;
begin
for a:=1 to 7 do
  for b:=a+1 to 8 do
    for c:=b+1 to 9 do
      begin
      n:=a*100+b*10+c;
      write(n:4)
      end;
end.

var
  i,j,n:integer;
  a:array[1..4,1..5]of real;
begin
for i:=1 to 4 do
  begin
  for j:=1 to 5 do
    begin
    a[i,j]:=random*2-1;
    write(a[i,j]:20:15);
    if a[i,j]>=0 then n:=n+1;
    end;
  writeln;
  end;
writeln('Количество неотрицательных: ',n);
end.

var
  i,j,sum:integer;
  a:array[1..3,1..4]of integer;
begin
for i:=1 to 3 do
  for j:=1 to 4 do
    readln(a[i,j]);
writeln('Массив:');
for i:=1 to 3 do
  begin
  for j:=1 to 4 do
    begin
    sum:=sum+a[i,j];
    write(a[i,j]:4);
    end;
  writeln('sum=':8,sum);
  sum:=0;
  end;
end.
0,0(0 оценок)
Ответ:
aminka0095
29.07.2022 09:25
Var a: array of integer; var i: byte; var b: boolean; begin b: =true; setlength(a,8); var n: =0; writeln('введите число: '); readln(i); var d: =i; while i< > 0 do begin a[n]: =i mod 2; i: =i div 2; inc(n); end; setlength(a,n); for   i: =0 to n-1 do begin if n=0 then begin write(0); break; end; swap(a[i],a[n-1]); write(a[i]); end; for i: =1 to n-1 do begin if n=0 then break; if a[i-1]< > a[i] then begin b: =false; break; end; end; if (b=false) then write(' = ',d,' это не палиндром') else  write(' = ',d,' это палиндром'); end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота