Найдите периметр и площадь
прямоугольника.
Вход. Каждая
строка представляет собой отдельный тест и содержит длину n и ширину m (1 ≤ n, m ≤ 1000)
прямоугольника.
Выход. Для
каждого теста выведите в одной строке периметр и площадь прямоугольника.
Пример
входа |
Пример
выхода |
3 1 5 3 10 7 |
8 3 16 15 34 70 |
простые
вычисления
Анализ алгоритма
Для вычисления
периметра и площади прямоугольника воспользуемся формулами:
P = (n + m) * 2;
S = n * m
Реализация алгоритма
Для каждого
теста читаем входные данные. Вычисляем и выводим ответ.
while (scanf("%d %d",
&n, &m) == 2)
{
p = 2 * (n + m);
s = n * m;
printf("%d
%d\n", p, s);
}
Реализация алгоритма – структуры
#include <stdio.h>
struct rectangle
{
int x, y;
} a;
int GetPerimeter(struct rectangle p)
{
return 2 * (p.x + p.y);
}
int GetArea(struct rectangle p)
{
return p.x * p.y;
}
int main(void)
{
while (scanf("%d
%d", &a.x,
&a.y) == 2)
printf("%d %d\n", GetPerimeter(a), GetArea(a));
return 0;
}
Реализация алгоритма – классы
#include <stdio.h>
int n, m;
class Rectangle
{
public:
int x,
y;
Rectangle(int x, int y) :
x(x), y(y) {}
int
Perimeter()
{
return (x + y) * 2;
}
int
Area()
{
return x * y;
}
};
int main(void)
{
while
(scanf("%d %d", &n, &m) == 2)
{
Rectangle r(n,
m);
printf("%d
%d\n", r.Perimeter(), r.Area());
}
return 0;
}
Java реализация – абстрактный
класс
import java.util.*;
abstract class Rect
{
int a, b;
abstract int Perimeter();
abstract int Area();
}
class Rectangle extends Rect
{
Rectangle(int a, int b)
{
this.a = a;
this.b = b;
}
public int Perimeter()
{
return 2 * (a + b);
}
public int Area()
{
return a * b;
}
}
public class Main
{
public static void main(String[] args)
{
Scanner con = new
Scanner(System.in);
while(con.hasNextInt())
{
int a = con.nextInt();
int b = con.nextInt();
Rectangle r = new Rectangle(a,b);
System.out.println(r.Perimeter() + " " + r.Area());
}
con.close();
}
}
Java реализация – интерфейс
import java.util.*;
interface Rect
{
int Perimeter();
int Area();
}
class Rectangle implements Rect
{
int a, b;
Rectangle(int a, int b)
{
this.a = a;
this.b = b;
}
public int Perimeter()
{
return (a + b) * 2;
}
public int Area()
{
return a * b;
}
}
public class Main
{
public static void main(String[] args)
{
Scanner con = new
Scanner(System.in);
while(con.hasNextInt())
{
int a = con.nextInt();
int b = con.nextInt();
Rectangle r = new Rectangle(a,b);
System.out.println(r.Perimeter() + " " + r.Area());
}
con.close();
}
}