Trikotnik
Napišite razred Trikotnik z metodami, ki iz velikosti stranic izračunajo zanimive podatke o trikotniku:
public static boolean jeTrikotnik(double a, double b, double c);
public static double obseg(double a, double b, double c);
public static double ploscina(double a, double b, double c);
public static boolean jePravokotni(double a, double b, double c);
Namig
- Tri dolžine predstavljajo dolžine stranic trikotnika, če je vsota katerih koli dveh večja od tretje.
- Obseg je vsota vseh stranic trikotnika.
- Ploščino ($S$) izračunamo s Heronovim obrazcem: $s = \frac{a+b+c}{2}$, $S = \sqrt{s(s-a)(s-b)(s-c)}$.
- Pravokotnost preverimo s Pitagorovim izrekom: kvadrat najdaljše stranice je enak vsoti kvadratov preostalih dveh stranic.
Rešitev (Java)
import javax.swing.JOptionPane;
public class Trikotnik2 {
public static void main(String[] args) {
//vhodni podatki
String stranica = JOptionPane.showInputDialog("1. stranica trikotnika je dolga:");
double a = Double.parseDouble(stranica);
stranica = JOptionPane.showInputDialog("2. stranica trikotnika je dolga:");
double b = Double.parseDouble(stranica);
stranica = JOptionPane.showInputDialog("3. stranica trikotnika je dolga:");
double c = Double.parseDouble(stranica);
//uporabimo metode in izpisemo rezultate, ce tak trikotnik obstaja
if (jeTrikotnik(a,b,c)) {
System.out.println("Obseg danega trikotnika je " + obseg(a,b,c) + ".");
System.out.println("Ploscina danega trikotnika je " + ploscina(a,b,c) + ".");
if (jePravokotni(a,b,c)) System.out.println("Trikotnik je pravokoten.");
else System.out.println("Trikotnik ni pravokoten.");
} else System.out.println("Tak trikotnik ne obstaja.");
}
public static boolean jeTrikotnik(double a, double b, double c) {
if ( (a+b > c) && (b+c > a) && (a+c > b) )
return true;
return false;
}
public static double obseg(double a, double b, double c) {
return a+b+c;
}
public static double ploscina(double a, double b, double c) {
double s = (a + b + c) / 2;
double ploscina = Math.sqrt((s - a) * (s - b) * (s - c) * s);
return ploscina;
}
public static boolean jePravokotni(double a, double b, double c) {
if ( (a*a == b*b + c*c) || (b*b == a*a + c*c) || (c*c == b*b + a*a) ) {
return true;
}
return false;
}
}
Rešitev (C#)
using System;
using System.Collections.Generic;
using System.Text;
namespace Trikotnik2 {
class Trikotnik2 {
static void Main(string[] args) {
//vhodni podatki
Console.Write("1. stranica trikotnika je dolga: ");
double a = Double.Parse(Console.ReadLine());
Console.Write("2. stranica trikotnika je dolga: ");
double b = Double.Parse(Console.ReadLine());
Console.Write("3. stranica trikotnika je dolga: ");
double c = Double.Parse(Console.ReadLine());
//uporabimo metode in izpisemo rezultate, ce tak trikotnik obstaja
if (jeTrikotnik(a, b, c)) {
Console.WriteLine("Obseg danega trikotnika je " + obseg(a, b, c) + ".");
Console.WriteLine("Ploscina danega trikotnika je " + ploscina(a, b, c) + ".");
if (jePravokotni(a, b, c)) Console.WriteLine("Trikotnik je pravokoten.");
else Console.WriteLine("Trikotnik ni pravokoten.");
} else Console.WriteLine("Tak trikotnik ne obstaja.");
Console.ReadKey();
}
public static Boolean jeTrikotnik(double a, double b, double c) {
if ((a + b > c) && (b + c > a) && (a + c > b))
return true;
return false;
}
public static double obseg(double a, double b, double c) {
return a + b + c;
}
public static double ploscina(double a, double b, double c) {
double s = (a + b + c) / 2;
double ploscina = Math.Sqrt((s - a) * (s - b) * (s - c) * s);
return ploscina;
}
public static Boolean jePravokotni(double a, double b, double c) {
if ((a * a == b * b + c * c) || (b * b == a * a + c * c) || (c * c == b * b + a * a)) {
return true;
}
return false;
}
}
}
Rešitev (Python)
#!C:/Python30/python
#-*-encoding: utf-8 -*-
# -*- coding: latin-1 -*-
'''
Created on 29.6.2009
@author: fajdigap
'''
from math import *
def jeTrikotnik(a, b, c):
if (a+b > c) and (b+c > a) and (a+c > b):
return True
return False
def obseg(a, b, c):
return a+b+c
def ploscina(a, b, c):
s = (a + b + c) / 2
ploscina = sqrt((s - a) * (s - b) * (s - c) * s)
return ploscina
def jePravokotni(a, b, c):
if (a*a == b*b + c*c) or (b*b == a*a + c*c) or (c*c == b*b + a*a):
return True
return False
#vhodni podatki
a = float(input("1. stranica trikotnika je dolga:"))
b = float(input("2. stranica trikotnika je dolga:"))
c = float(input("3. stranica trikotnika je dolga:"))
#uporabimo metode in izpisemo rezultate, ce tak trikotnik obstaja
if jeTrikotnik(a,b,c):
print ("Obseg danega trikotnika je",obseg(a,b,c),".")
print ("Ploscina danega trikotnika je",ploscina(a,b,c),".")
if jePravokotni(a,b,c):
print ("Trikotnik je pravokoten.")
else:
print ("Trikotnik ni pravokoten.")
else:
print ("Tak trikotnik ne obstaja.")