Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
GAGAn
3 / 3 / 0
Регистрация: 20.09.2012
Сообщений: 37
#1

Отобразить широту в десятичном формате - C++

12.10.2012, 18:24. Просмотров 1587. Ответов 6
Метки нет (Все метки)

Задание из книги Пратта.
3. Напишите программу, которая запрашивает широту в градусах, минутах и
секундах, после чего отображает широту в десятичном формате. В одной минуте
60 угловых секунд, а в одном градусе 60 угловых минут; представьте эти
значения с помощью символических констант
. Для каждого вводимого значения
должна использоваться отдельная переменная. Результат выполнения
программы должен выглядеть следующим образом:
Enter a latitude in degrees, minutes, and seconds:
First, enter the degrees: 37
Next, enter the minutes of arc: 51
Finally, enter the seconds of arc: 19
37 degrees, 51 minutes, 19 seconds = 37.8553 degrees
Собственно выделены слова я не очень то понял(
Вот что я написал, а как дальше хз.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
int main()
    
{
    setlocale(LC_ALL, "Russian") ;
 
    using namespace std ;
        cout << "Введите широту в градусах, минутах и секундах\n" ;
        
    int  gradysi ;
    int minyti ;
    int sekyndi ;
        cout << "Введите градусы: " ;
    cin >> gradysi;
        cout <<  "Введите минуты:  " ;
    cin >> minyti;
        cout << "Введите секунды:  " ;
    cin >> sekyndi ;
    gradysi + (minyti / 60)                             // начал писать выражение но затупил( 
 
    cin.get();
    cin.get();
 
    return 0;
}
Добавлено через 51 минуту
C++
1
    double x = (gradysi + (minyti / 60)) + ((double)minyti / 60) +((double)sekyndi / 60) ;
Вот так я додумал но все равно немножко не сходится результат(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 18:24     Отобразить широту в десятичном формате
Посмотрите здесь:
C++ Найти сумму цифр в десятичном числе k
Найти количество цифр в десятичном числе k C++
Как найти количество цифр в десятичном числе? C++
Переставить соседние цифры в десятичном представлении четырехзначного числа C++
C++ Как реализовать хранение знака в целом десятичном числе
C++ Проверить наличие в десятичном представлении числа заданной цифры
C++ Вывести ASCII–код символа в десятичном, восьмеричном и шестнадцатеричном виде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
12.10.2012, 18:47     Отобразить широту в десятичном формате #2
в 1 градусе 60 минут, в минуте 60 секунд, поэтому секунды нужно делить на 3600.
И еще не понятно, зачем 2 раза минуты прибавляете.
JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
12.10.2012, 19:11     Отобразить широту в десятичном формате #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <conio.h>
 
using namespace std;
 
/* ГЌГ*ГЇГЁГёГЁГІГҐ ïðîãðГ*ììó, êîòîðГ*Гї Г§Г*ГЇГ°Г*ГёГЁГўГ*ГҐГІ øèðîòó Гў ГЈГ°Г*äóñГ*Гµ, ìèГ*ГіГІГ*Гµ ГЁ
Г±ГҐГЄГіГ*Г¤Г*Гµ, ïîñëå Г·ГҐГЈГ® îòîáðГ*Г¦Г*ГҐГІ øèðîòó Гў äåñÿòè÷Г*îì ôîðìГ*ГІГҐ. Г‚ îäГ*îé ìèГ*ГіГІГҐ
60 óãëîâûõ Г±ГҐГЄГіГ*Г¤, Г* Гў îäГ*îì ГЈГ°Г*äóñå 60 óãëîâûõ ìèГ*ГіГІ; ïðåäñòГ*ГўГјГІГҐ ГЅГІГЁ
Г§Г*Г*Г·ГҐГ*ГЁГї Г± ïîìîùüþ ñèìâîëè÷åñêèõ ГЄГ®Г*Г±ГІГ*Г*ГІ. Äëÿ ГЄГ*æäîãî ââîäèìîãî Г§Г*Г*Г·ГҐГ*ГЁГї
äîëæГ*Г* èñïîëüçîâГ*ГІГјГ±Гї îòäåëüГ*Г*Гї ïåðåìåГ*Г*Г*Гї. ÐåçóëüòГ*ГІ âûïîëГ*ГҐГ*ГЁГї
ïðîãðГ*ììû äîëæåГ* âûãëÿäåòü ñëåäóþùèì îáðГ*çîì:
Enter a latitude in degrees, minutes, and seconds:
First, enter the degrees: 37
Next, enter the minutes of arc: 51
Finally, enter the seconds of arc: 19
37 degrees, 51 minutes, 19 seconds = 37.8553 degrees  */
int main(){
    setlocale(LC_ALL, "Russian") ;
        float  deg, min, sec;
    cout << "Ââåäèòå øèðîòó Гў ГЈГ°Г*äóñГ*Гµ, ìèГ*ГіГІГ*Гµ ГЁ Г±ГҐГЄГіГ*Г¤Г*Гµ\n" ;
    cout << "Ââåäèòå ГЈГ°Г*äóñû: " ;
    cin >> deg;
    cout <<  "Ââåäèòå ìèГ*ГіГІГ»:  " ; //1 deg = 60 min = 3600 sec
    cin >> min;
    cout << "Ââåäèòå Г±ГҐГЄГіГ*äû:  " ;
    cin >> sec;
    float h = (deg + min/60 + sec/3600);
    cout << deg << " degrees, " << min << " minutes, " << sec << " seconds = " << h; 
    
    getch();
    return 0;
}
Grandy
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 29
29.01.2014, 21:41     Отобразить широту в десятичном формате #4
А в таком варианте решение задачи пойдёт?
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
using namespace std;
 
int main()
{
    const float lm1 = 60;
    const float ms1 = 60;
 
    cout << "Enter a latitude in degrees, minutes and seconds:" << endl;
    cout << "First, enter the degrees: __\b\b"; 
    unsigned short ld1;
    cin >> ld1;
    cout << "Next, enter the minutes of arc: __\b\b";
    unsigned short moa1;
    cin >> moa1;
    cout << "Finally, enter the seconds of arc: __\b\b";
    unsigned short soa1;
    cin >> soa1;
 
    float m1, d1, df1;
    m1 = soa1 / ms1;
    d1 = moa1 / lm1;
    df1 = ld1 + d1;
 
    cout << ld1 << " degrees, " << moa1 << " minutes, " << soa1 << " seconds = " << df1; 
 
    cin.get();
    cin.get();
 
    return 0;
}
andreypplk
1 / 1 / 0
Регистрация: 08.02.2014
Сообщений: 27
09.02.2014, 17:37     Отобразить широту в десятичном формате #5
Вот мою проверьте может и коряво но результат при 37г 51м и 19с результат как в учебнике 37.8553
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// SeaNavig.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <Windows.h>
 
const int c_ug_sec = 60;
const int c_ug_minutes = 60;
 
int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int en_degree = 0, en_minutes = 0, en_seconds = 0;
    double res_latitude = 0.0, tmp_min = 0.0;
    cout << "Введите широту в градусах минутах и секундах" << endl;
    cout << "Первое, введите градусы:___\b\b\b";
    cin >> en_degree;
    cout << "Второе, введите минуты:___\b\b\b";
    cin >> en_minutes;
    cout << "Третие, введите секунды:___\b\b\b";
    cin >> en_seconds;
    tmp_min = double(en_minutes) + double(en_seconds) / c_ug_sec;
    res_latitude = en_degree + tmp_min / c_ug_minutes;
    cout << "Результат: " << en_degree << " Градусов, " << en_minutes << " Минут, "
         << en_seconds << " Секунд. = " << res_latitude;
    cin.get();
    cin.get();
 
    return 0;
}
gr0mazeka
5 / 2 / 1
Регистрация: 28.05.2014
Сообщений: 6
02.11.2015, 12:00     Отобразить широту в десятичном формате #6
Как то так:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*------------------------------------
Stephen Prata
Язык программирования С++.
Лекции и уражнения 6-е издание.
--------------------------------------*/
 
//--- 3.3 ---
 
#include<iostream>
 
int main()
{
    using namespace std;
    const int Arcsec = 60; //Секунд в минуте
    const int Arcmin = 60; //Угловых минут в градусе
    cout << "Enter a latitude in degrees, minutes, and seconds:" << endl;
    cout << "First, enter the degrees: ";
    int degree;
    cin >> degree;
    cout << "Next, enter the minutes of arc: ";
    int minute;
    cin >> minute;
    cout << "Finally, enter the seconds of arc: ";
    int second;
    cin >> second;
    double arcm = (double)minute/Arcsec;          //переводим минуты в десятичные доли градуса
    double arcs = (double)second/(Arcsec*Arcmin); // переводим секунды в десятичные доли градуса
    double latitude = degree+arcs+arcm;           //результат
    cout << degree << " degrees, " << minute << " minutes, " << second << " seconds = " << latitude << " degrees." << endl;
 
    cin.get();
    cin.get();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2016, 20:27     Отобразить широту в десятичном формате
Еще ссылки по теме:
Как получить число в текстовом десятичном виде (!) в кодировке ASCII? C++
C++ Ввод чисел с клавиатуры и вывод на экран в шестнадцатеричном и десятичном виде
Напишите программу, которая бы читала дерево в формате (а) и затем печатала бы это дерево в формате (б). C++
C++ Найти порядковый номер наибольшего по значению числа, являющегося палиндромом в десятичном представлении
C++ Найти порядковый номер наибольшего по значению числа, являющегося симметричным в десятичном представлении

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
IpHuman
13 / 13 / 1
Регистрация: 28.01.2015
Сообщений: 26
23.01.2016, 20:27     Отобразить широту в десятичном формате #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main()
{
    using namespace std;
    const int Sec_per_min = 60; // 1 min = 60 sec
    const int Min_per_degree = 60; // 1 degree = 60 min
 
    cout << "Enter a latitude in degrees, minutes and seconds: " << endl;
    int degree, minute, second;
    cout << "First, enter the degrees: ";
    cin >> degree;
    cout << "Next, enter the minutes of arcs: ";
    cin >> minute;
    cout << "Finally, enter the seconds of arcs: ";
    cin >> second;
 
    double degree_final = (double(second) / Sec_per_min + double(minute)) / Min_per_degree + degree;
    cout << degree << " degrees, " << minute << " minutes, ";
    cout << second << " seconds = " << degree_final << " degrees." << endl;
    return 0;
}
Вот мой вариант, результат сходиться 37.8553
Yandex
Объявления
23.01.2016, 20:27     Отобразить широту в десятичном формате
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru