9. Pretvaranje ugla - rešenje

U ovom zadatku potrebno je pretvoriti ugao dat u decimalnim stepenima u stepeni i minute. Takva konverzija je korisna jer se uglovi često izražavaju u formatu stepeni-minuti-sekundi u navigaciji, geodeziji, astronomiji i drugim srodnim oblastima. Na primer, ugao od 60.25 stepeni treba predstaviti kao 60 stepeni i 15 minuta.

Rešenje u programskom jeziku C

​#include <stdio.h>
/*
Dat je ugao u stepenima na dve decimale.Napisati program kojim se dati ugao izražava
 u stepenima i minutima. Na primer 60.25 predstaviti kao 60 stepeni i 15 minuta.
*/
int main()
{
double ugao;
int stepeni,minuta,ostatak;
    printf("Unesi ugao u stepenima\n");
    scanf("%lf", &ugao);  //60.25

  /*sporedni efekat kastovanja, tj. pretvaranje promenljive ugao u tip int,
    doveće do zaokruživanja na prvi manji ceo broj, odnosno odbaciće se decimalni deo
    */
    stepeni=(int)ugao;  //stepeni = 60
    ostatak=(ugao-stepeni)*100;    //ostatak = 25

  /*ostatak : 100 = minuta : 60, jer 1 stepen = 60 minuta, a ne 100*/
    minuta=ostatak*60/100;   //minuta=15

    printf("%2d stepeni i %2d minuta", stepeni,minuta);

return 0;
}

Objašnjenje rešenja u jeziku C

Program koristi jednostavne matematičke operacije za konverziju decimalnog ugla u stepeni i minute:
  1. Izračunavanje stepeni: Početni broj stepeni je jednostavno ceo deo unetog decimalnog broja. To se postiže pretvaranjem broja u tip int, što odbacuje decimalni deo.
  2. Izračunavanje minuta: Decimalni deo (koji predstavlja deo stepena) se mora pretvoriti u minute. Prvo se decimalni deo množi sa 100 da bi se dobio ostatak. Zatim se taj ostatak pretvara u minute množenjem sa 60 (jer je 1 stepen = 60 minuta) i deljenjem sa 100 (da bi se uzela u obzir početna množenja sa 100).

Rešenje u programskom jeziku JAVA

import java.util.Scanner;

public class PretvaranjeUgla {
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Unesi ugao u stepenima");
double ugao = scanner.nextDouble();  // Na primer, ugao = 60.25

// Izračunavanje stepeni
int stepeni = (int) ugao;  // stepeni = 60
int ostatak = (int)((ugao - stepeni) * 100);  // ostatak = 25

// Pretvaranje ostatka u minute
int minuta = ostatak * 60 / 100;  // minuta = 15

        System.out.printf("%d stepeni i %d minuta%n", stepeni, minuta);
    }
}

Objašnjenje rešenja u Javi

Rešenje u Javi je analogno rešenju u C jeziku:
  1. Koristi se Scanner klasa za unos ugla sa tastature.
  2. Stepeni se dobijaju pretvaranjem unetog ugla u tip int, što uklanja decimalni deo.
  3. Preostali decimalni deo se koristi za izračunavanje minuta, na isti način kao u C kodu.
  4. Konačni rezultat se ispisuje koristeći System.out.printf sa odgovarajućim formatiranjem za prikaz stepeni i minuta.
Ova metoda osigurava tačnu konverziju decimalnog ugla u odgovarajući broj stepeni i minuta.