"Использование растровых изображений. Построение графиков и диаграмм"
1. Составить программу, которая загружает из файлов и выводит на экран портреты ученых.
Program m;
uses GraphABC;
var pic:integer;
begin
SetWindowSize (1000, 1000);
pic:=LoadPicture ('Leonardo.jpg');
DrawPicture (pic, 270, 5, 200, 250);
pic:=LoadPicture ('Newton.jpg');
DrawPicture (pic, 470, 250, 200, 250);
pic:=LoadPicture ('Einstein.jpg');
DrawPicture (pic, 270, 500, 200, 250);
pic:=LoadPicture ('Galileo.jpg');
DrawPicture (pic, 670, 450, 200, 250);
pic:=LoadPicture ('bohr.jpg');
DrawPicture (pic, 670, 50, 200, 250);
end.
1. Составить программу, которая загружает из файла и выводит на экран изображение одной из планет Солнечной системы на фоне звёздного неба.
program n;
uses GraphABC;
var nebo, zem, luna, x0, y0, R, x, y, u:integer;
begin
SetWindowSize(600,400);
x0:=300; y0:=200;
R:=160;
nebo:=LoadPicture('sky.gif');
zem:=LoadPicture('earth.gif');
luna:=LoadPicture('luna3.gif');
DrawPicture(nebo, 0,0,600,400);
DrawPicture(zem,200,120,200,200);
end.
Program m;
uses GraphABC;
var pic:integer;
begin
SetWindowSize (1000, 1000);
pic:=LoadPicture ('Leonardo.jpg');
DrawPicture (pic, 270, 5, 200, 250);
pic:=LoadPicture ('Newton.jpg');
DrawPicture (pic, 470, 250, 200, 250);
pic:=LoadPicture ('Einstein.jpg');
DrawPicture (pic, 270, 500, 200, 250);
pic:=LoadPicture ('Galileo.jpg');
DrawPicture (pic, 670, 450, 200, 250);
pic:=LoadPicture ('bohr.jpg');
DrawPicture (pic, 670, 50, 200, 250);
end.
"Выполнение задач по учебным предметам"
Астрономия
program n;
uses GraphABC;
var nebo, zem, luna, x0, y0, R, x, y, u:integer;
begin
SetWindowSize(600,400);
x0:=300; y0:=200;
R:=160;
nebo:=LoadPicture('sky.gif');
zem:=LoadPicture('earth.gif');
luna:=LoadPicture('luna3.gif');
DrawPicture(nebo, 0,0,600,400);
DrawPicture(zem,200,120,200,200);
end.
2. Составьте программу, которая демонстрирует:
а) прямолинейное движение спутника на фоне звездного неба и Земли;
program jjgg;
uses crt,GraphABC;
var nebo,zemlya,sputnik,x:integer;
begin
SetWindowSize(500,500);
nebo:=LoadPicture('Sky.jpg');
zemlya:=LoadPicture('earth.gif');
SetPictureTransparent (zemlya, true);
sputnik:=LoadPicture('sputnik.jpg');
SetPictureTransparent (sputnik, true);
x:=0;
while x<400 do
begin
ClearWindow;
DrawPicture(nebo,0,0);
SetPictureTransparent (zemlya, true);
DrawPicture(zemlya,200,150,250,250);
DrawPicture(sputnik,x,40,50,40);
x:=x+1;
sleep(20);
Redraw;
end;
end.
uses crt,GraphABC;
var nebo,zemlya,sputnik,x:integer;
begin
SetWindowSize(500,500);
nebo:=LoadPicture('Sky.jpg');
zemlya:=LoadPicture('earth.gif');
SetPictureTransparent (zemlya, true);
sputnik:=LoadPicture('sputnik.jpg');
SetPictureTransparent (sputnik, true);
x:=0;
while x<400 do
begin
ClearWindow;
DrawPicture(nebo,0,0);
SetPictureTransparent (zemlya, true);
DrawPicture(zemlya,200,150,250,250);
DrawPicture(sputnik,x,40,50,40);
x:=x+1;
sleep(20);
Redraw;
end;
end.
б) движение планет вокруг Солнца по круговым орбитам.
Program mvchxf;
uses crt, GraphABC;
Var fon,a,b,c,x0,y0,x,y,u,R:integer;
Begin
SetWindowSize(170,150);
fon:=LoadPicture('sky.gif');
a:=LoadPicture('sun4.jpg');
b:=LoadPicture('earth.gif');
c:=LoadPicture('mars.jpg');
x0:=75; y0:=55;
R:=50; u:=1;
while u<=360 do
begin
ClearWindow;
DrawPicture(fon,0,0);
DrawPicture(a,70,60,30,30);
x:=round(x0+R*cos(pi*u/180));
y:=round(y0-R*sin(pi*u/180));
DrawPicture(b,x,y,10,10);
x:=round(x0+R*0.8*cos(pi*u/180));
y:=round(y0-R*0.8*sin(pi*u/180));
DrawPicture(c,y,x,10,10);
U:=u+1;
sleep(30);
Redraw;
end;
End.
География
1. Вывести карту Беларуси и построить таблицу с данными о площади и глубине озёр, столбчатую и линейную диаграмму этих данных.
Program qwerty;
Uses GraphAbc;
Var karta, A : integer;
Begin
setWindowSize(520,480);
karta := LoadPicture('belarus.gif'); DrawPicture(karta,10,10);
setBrushColor(clBlue);
rectangle(60,320,75,335);
rectangle(190,130,205,145);
rectangle(210,50,225,65);
rectangle(250,370,265,385);
rectangle(270,140,285,155);
rectangle(360,395,375,410);
End.
б) Вывести карту Беларуси, построить таблицу с данными о площади и глубине озер, столбчатую, линейчатую диаграмму (столбчатая и линейная диаграммы в разных программах).
program jyflkufl;
uses crt,GraphABC;
const A: array[1..10] of real=(79.6,52.8,40.3,37.71,36.1,26.0,24.6,22.3,22.0,16.2);
B:array[1..10] of real=(24.8,7.5,2.9,11.5,12.0,2.3,8.1,8.7,16.5,24.6);
C:array[1..10] of string
('Нарочь','Освейское','Червоное','Лукомльское','Дривяты','Выгонощанское','Нещердо','Свирь','Снуды','Мядель');
var karta,i,S:integer;
begin
SetWindowSize(600,600);
writeln('Площадь и глубина озер Беларуси:');
karta:=LoadPicture('karta.gif');
DrawPicture(karta,340,0,250,200);
writeln('Озеро':15,'Площадь':13,'Глубина':9);
for i:=1 to 10 do
writeln(i,C[i]:15,' ',A[i]:7:2,' км.кв',B[i]:7:2,'м');
writeln;writeln;
writeln('Выберите вариант диаграммы:1-столбчатая,2-линейная');
read(S);
writeln;
SetPenWidth(5);
case S of
1:begin writeln('Столбчатая диаграмма');
for i:=1 to 10 do
begin
write(' ',i);
SetPenColor(clRed);
Line(5+25*i,420-round(2*A[i]),5+25*i,420);
SetPenColor(clGreen);
Line(10+25*i,420-round(2*B[i]),10+25*i,420);
end;
end;
2:begin writeln('Линейчатая диаграмма');
for i:=1 to 10 do
begin
writeln(C[i]:15,' ');
SetPenColor(clBlue);
Line(160,250+15*i,160+round(5*A[i]),250+15*i);
SetPenColor(clPurple);
Line(160,255+15*i,160+round(5*B[i]),255+15*i);
end;
end;
end;
end.
в) выводит карту Европы и помечает страны (столицы 7 государств) символами, размеры которых пропорциональны численности населения.
program juyflk;
uses crt,GraphABC;
const A: array[1..7] of real=(37.7,22.0,21.1,17.7,16.2,11.6,7.4);
B:array[1..7] of string=('Берлин','Варшава','Париж','Минск','Стокгольм','Хельсинки','Амстердам');
var karta,i,R:integer;beginSetWindowSize(700,700);
writeln('численность населения столиц государств');
karta:=LoadPicture('karta.gif');
DrawPicture(karta,0,200,700,500);
writeln('Столица':15,'Численность населения':13);
for i:=1 to 7 dowriteln(i,B[i]:15,' ',A[i]:7:1,' тыс.чел');
SetBrushColor(clBlue);
R:=round(sqrt(A[1]/pi));
circle(405,470,R);
R:=round(sqrt(A[2]/pi));
circle(510,465,R);
R:=round(sqrt(A[3]/pi));
circle(250,520,R);
R:=round(sqrt(A[4]/pi));
circle(580,440,R);
R:=round(sqrt(A[5]/pi));
circle(455,373,R);
R:=round(sqrt(A[6]/pi));
circle(530,350,R);
R:=round(sqrt(A[7]/pi));
circle(290,475,R);
end.
uses crt,GraphABC;
const A: array[1..7] of real=(37.7,22.0,21.1,17.7,16.2,11.6,7.4);
B:array[1..7] of string=('Берлин','Варшава','Париж','Минск','Стокгольм','Хельсинки','Амстердам');
var karta,i,R:integer;beginSetWindowSize(700,700);
writeln('численность населения столиц государств');
karta:=LoadPicture('karta.gif');
DrawPicture(karta,0,200,700,500);
writeln('Столица':15,'Численность населения':13);
for i:=1 to 7 dowriteln(i,B[i]:15,' ',A[i]:7:1,' тыс.чел');
SetBrushColor(clBlue);
R:=round(sqrt(A[1]/pi));
circle(405,470,R);
R:=round(sqrt(A[2]/pi));
circle(510,465,R);
R:=round(sqrt(A[3]/pi));
circle(250,520,R);
R:=round(sqrt(A[4]/pi));
circle(580,440,R);
R:=round(sqrt(A[5]/pi));
circle(455,373,R);
R:=round(sqrt(A[6]/pi));
circle(530,350,R);
R:=round(sqrt(A[7]/pi));
circle(290,475,R);
end.
Биология
1. а) Через сколько дней уровень загрязнения воды уменьшится в N раз, если каждый день он уменьшается на P % (значения N и P вводятся с клавиатуры).
program kjbh;
var N,P,i,t,u0:integer;
u:real;
u:real;
begin
write('Введите уровень загрязнения воды');
readln(u0);
write('Введите значение уменьшения загрязнения воды');
readln(P);
readln(P);
write ('Введите коэффициент уменьшения загрязнения воды');
readln(N);
readln(N);
write('Через',t,'дней');
t:=0; u:=u0;
while u>=u0 div N do
begin
t:=t+1;
u:=u-u*p/100;
end;
б) Через сколько дней количество атомов радиоактивного изотопа Иод-131 уменьшится в 100 раз, если период полураспада составляет 8,14 дня.
program mhfv;
var k0:integer; k,t:real;
begin
write('Введите количество атомов радиоактивного изотопа Иод-131');
readln(k0);
t:=0; k:=k0;
while k>=k0 div 100 do
begin
k:=k/2;t:=t+8.14;
end;
write('Через',t,'дней');
end.
var k0:integer; k,t:real;
begin
write('Введите количество атомов радиоактивного изотопа Иод-131');
readln(k0);
t:=0; k:=k0;
while k>=k0 div 100 do
begin
k:=k/2;t:=t+8.14;
end;
write('Через',t,'дней');
end.
в) Через сколько дней выздоровеет больной, т.е. через сколько дней концентрация болезнетворных бактерий в крови уменьшится с 50 до 12 единиц. В результате применения лекарства концентрация бактерий ежедневно уменьшается на 20% по сравнению с предыдущим днем.
program poiu;
var t:integer; k:real;
begin
t:=0; k:=50;
while k>=12 do
begin
k:=k-k*20/100;
t:=t+1;
end;
write('Через',t,'дней');
end.
var t:integer; k:real;
begin
t:=0; k:=50;
while k>=12 do
begin
k:=k-k*20/100;
t:=t+1;
end;
write('Через',t,'дней');
end.
Физика
Составьте программу, которая:
а) строит изображения предмета в плоском зеркале (расстояние от предмета до зеркала вводится с клавиатуры):
program fgyiut;
uses crt, GraphABC;
var pic,R:integer;
begin
SetWindowSize (600,500);
write('Ââåäèòå óãîë ïàäåíèÿ ëó÷à (5-100):');
readln(R);
pic:=LoadPicture('robot.jpg');
SetPenColor(clYellow);
SetPenWidth(2);
line(320,50,320,400);
line(50,400,590,400);
DrawPicture(pic,320+R,100,200,290);
DrawPicture(pic,320-R,100,-200,290);
SetPenColor(clblue);
SetPenWidth(2);
line(trunc(120+R/2),100,trunc(520-R/2),100);
end.
б) демонстрирует отражение и преломление света на плоской поверхности (угол падения вводится с клавиатуры):
program hjkfgu;
uses crt, GraphABC;
var u,x,y:integer;
begin
SetWindowSize (400,400);
write('ââåäèòå óãîë ïàäåíèÿ ëó÷à(0-90):');
readln(u);
SetPenColor(clBrown);
SetPenWidth(4);
line(150,50,150,350);
SetPenColor(clblue);
line(0,200,300,200);
FloodFill(50,250,clwhite);
SetPenColor(clGreen);
x:=abs(round(150*sin(pi/180*(180-u))));
y:=abs(round(150*cos(pi/180*(180-u))));
line(150,200,150-x,200-y);
x:=round(150*sin(pi/180*u));
y:=round( 150*cos(pi/180*u));
line(150,200,150+x,200-y);
SetPenColor(clpurple);
x:=abs(round(150*sin(pi/180*(270+u))));
y:=abs(round(150*cos(pi/180*(270+u))));
line(150,200,150+ x,200+y);
end.
Комментариев нет:
Отправить комментарий