Объясните что за что отвечает в этом коде, а то ничего не понятно :( Uses graphABC,ABCObjects;
var
i,xhead,yhead,z,appleX,appleY:integer;
head:CircleABC;
snake:array[1..4] of CircleABC;
apple:circleABC;
score:TextABC;
procedure keyDown(key:integer);
begin
if(key = vk_Right) then z := 1;
if(key = vk_Left) then z := 2;
if(key = vk_Up) then z := 3;
if(key = vk_Down) then z := 4;
end;
begin
for i:=0 to 6 do
begin
line(0,i*80,windowWidth,i*80);
end;
for i:=0 to 8 do
begin
line(i*80,0,i*80,windowHeight);
end;
xhead := 3*80 - 40;
yhead := 2*80 - 40;
appleX := 6*80 - 40;
appleY := 3*80 - 40;
apple := CircleABC.Create(appleX,appleY,40,clRed);
head := CircleABC.Create(xhead,yhead,40,clBlue);
for i:=1 to 4 do
begin
snake[i] := CircleABC.Create(xhead,yhead+80*i,40,clBlue);
end;
score := TextABC.Create(5,0,80,'0',clGreen);
while(true) do
begin
onKeyDown := keyDown;
if(z <> 0) then
begin
for i:=4 downto 2 do
begin
snake[i].MoveTo(snake[i-1].Position.X,snake[i-1].Position.Y);
end;
snake[1].MoveTo(xhead-40,yhead-40);
end;
if(z = 1) then xhead := xhead + 80
else if (z = 2) then xhead := xhead - 80
else if (z = 3) then yhead := yhead - 80
else if (z = 4) then yhead := yhead + 80;
if(xhead > windowWidth) then xhead := 40;
if(xhead < 0) then xhead := windowWidth - 40;
if(yhead > windowHeight) then yhead := 40;
if(yhead < 0) then yhead := windowHeight - 40;
if((xHead = appleX) and (yHead = appleY)) then
begin
appleX := random(1,8)*80 - 40;
appleY := random(1,6)*80 - 40;
apple.MoveTo(appleX-40,appleY - 40);
score.Text := ((score.Text).ToInteger + 1).ToString();
end;
head.MoveTo(xhead-40,yhead - 40);
sleep(200);
end;
end.
Объяснение:
выписываешь все уникальные(?) символы, которые есть в предложении.
Аисх = {С, Т, О, И, П, Н, А, К, Е, Л, пробел, запятая};
считаешь их общее количество.
Mисх = 12;
смотрим формулу.
М = (это та же формула N = , просто буковки другие, да)
подставляем число 12 под М, но т.к. тут такая непонятная штука со степенью, то подставляем наименьшее целое i, удовлетворяющее следующему неравенству: M <
теперь подставим известное значение мощности исходного алфавита:
12 < , следовательно i = 4(бит). тройка быть не может, т.к. = 8, а 8 < 12.
теперь каждому символу самостоятельно присваиваешь уникальную кодовую комбинацию. удобнее всего это сделать в виде таблицы. например:
С Т О
0010 1111 0100 и т.д.
теперь пишешь в строчечку все эти комбинации.
001011110100........ не забудь про пробелы и запятые.
чтобы рассчитать объем полученного текстового файла, тебе нужно общее количество символов предложения (34) умножить на 4 бита. это и будем объемом полученного файла.
*если что, то в строчку нужно писать комбинации символов всего предложения, а не только этих 12.
надеюсь, все правильно и понятно.
#include <cmath>
using namespace std;
void main()
{
int n,sum=0;
float y,k=0;
cin >> n;
int *mass = new int[n];
for (int i = 0;i < n;++i)
{
cin >> mass[i];
}
for (int i = 0;i < n;++i)
{
if (mass[i] >0 )
{
k++;
y=pow(mass[i],2);
cout<<y;
sum+=mas[i]
}
}
system("pause");
}
2)#include <iostream>
#include <cmath>
using namespace std;
void main()
{
int s,p,r,day=0;
cin >> s>>p>>r;
float km=s;
while(r>km)
{
km+=km*p/100;
day++;
}
cout << " km = " << km << " day = " << day << endl;
system ("pause");
}