S
Svetlankaya
извините, начали изучение с++ буквально вчера...но уже дали прогу написать...только вот не оч выходит..
Программа решает след задачу:Находит количество точек с целочисленными координатами в кольце, образованном двумя радиусами...вот такая прога на Паскале=>
Попыталась перевести на с++...но не получается...помогите плиз ошибки исправить((
Программа решает след задачу:Находит количество точек с целочисленными координатами в кольце, образованном двумя радиусами...вот такая прога на Паскале=>
Код:
uses Crt;
var x0,y0,r1,r2,r,c:real;
y1,y2,x1,x2,n,i,ii:integer;
begin
ClrScr;
write('Vvedite r1: ');
readln(r1);
write('Vvedite r2: ');
readln(r2);
write('Vvedite x0: ');
readln(x0);
write('Vvedite y0: ');
readln(y0);
if r2>r1 then
begin
c:=r1;
r1:=r2;
r2:=c;
end;
x1:=trunc(x0-r1)-1;
y1:=trunc(y0+r1)+1;
x2:=trunc(x0+r1)+1;
y2:=trunc(y0-r1)-1;
for i:=x1 to x2 do
begin
for ii:=y1 downto y2 do
begin
r:=sqrt(sqr(i-x0)+sqr(ii-y0));
if (r>r2) and (r<r1) then
n:=n+1;
end;
end;
writeln('rezult = ',n);
readln;
end.
Код:
#include<stdio.h>;
void Main()
{float r1,r2,x0,y0;
printf("Vvedite r1,r2,x0,y0 \n");
scanf("%f%f%f%f",&r1,&r2,&x0,&y0);
if (r1>r2)
{float c=r1;
r1=r2;
r2=c;}
x1=int(x0-r1)-1;
y1=int(y0+r1)+1;
x2=int(x0+r1)+1;
y2=int(y0-r1)-1;
for i=y1 downto y2 do
{
r=sqrt(sqr(i-x0)+sqr(ii-y0));
if ((r>r2) && (r<r1))
n:=n+1;
}}print f("Rezultat= ",n);scan f;
}