Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 21.05.2017
Сообщений: 1

Перевод кода с Си

21.05.2017, 17:33. Показов 1649. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вечер добрый. Имеется задача и её решение. Только нужно перевести решение на Java. Условие: На вход программы подается 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2008 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Требуется написать программу, которая будет выводить на экран информацию о месяце (месяцах), среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.
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
int main(void)
{
float stem[12]={0,0,0,0,0,0,0,0,0,0,0,0};//Средняя температура
int month[12]={31,29,31,30,31,30,31,31,30,31,30,31};
float styear=0.0; //Средняя температура за год
info arr[N]; 
for(int i=0; i<N; i++){
   scanf("%d.%d %f", &arr[i].date,&arr[i].month,&arr[i].tem);
   styear+=arr[i].tem; //Сумма температур за год
   stem[arr[i].month]+=arr[i].tem; //Сумма температур за месяц
}
float motklon=FLT_MAX; 
float otklonen; //среднемесячное отклонение
styear/=N; //Средняя температура за год
 
for(int j=0;j<12;j++)
{
    stem[j]/=month[j]; //записали ср.темп
   otklonen=styear-stem[j]; //Отклонение 
   if(otklonen<0)      // По модулю
      otklonen=-otklonen; 
   if(motklon>otklonen) // Ищем минимум
      motklon=otklonen;
}
printf("%f\n",styear); //Ср годовая т.
for(int z=0;z<12;z++)
{
   if(stem[z]<=motklon) //Пишем минимум
      printf("%d %f\n", z+1, stem[z]);
}
int g;
scanf("%d", &g);
}
Заранее, спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2017, 17:33
Ответы с готовыми решениями:

Перевод кода с Паскаля (перевод в метры)
var a,b,d:integer; c,e:real; begin writeln('1-дециметр 2-километр'); writeln('3-метр 4-миллиметр'); ...

перевод кода с C# на C++
помогите перевести код с си-шаспа на си++ using System; public class Test { public static int Fact( int n ) { ...

Перевод кода с Си
Помогите перевести #include ”stdafx.h” #include ”iostream” #include “locale” using namespace std; int _tmain(int argc,...

4
2 / 2 / 4
Регистрация: 18.05.2017
Сообщений: 9
22.05.2017, 05:39
Java
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.company;
 
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Main {
 
    public static class Info {
        public int date;
        public int month;
        public float tem;
    }
 
    public static void main(String[] args) throws IOException {
 
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
 
        final int N = 12;
 
        float[] stem={0,0,0,0,0,0,0,0,0,0,0,0};//Средняя температура
        int[] month={31,29,31,30,31,30,31,31,30,31,30,31};
        float styear=0.0F; //Средняя температура за год
        Info[] arr = new Info[N];
 
        for(int i=0; i<N; i++){
            ///scanf("%d.%d %f", &arr[i].date,&arr[i].month,&arr[i].tem); ->>
            String tmpStr = reader.readLine();
            try {
                arr[i] = new Info();
                arr[i].date = Integer.parseInt((tmpStr.split(" ")[0]).split("\\.")[0]);
                arr[i].month = Integer.parseInt((tmpStr.split(" ")[0]).split("\\.")[1]);
                arr[i].tem = Float.parseFloat(tmpStr.split(" ")[1]);
            } catch (Exception e) {
                System.out.println("Ошибка ввода!");
                continue;
            }
            ///<-- scanf("%d.%d %f", &arr[i].date,&arr[i].month,&arr[i].tem);
            styear+=arr[i].tem; //Сумма температур за год
            stem[arr[i].month]+=arr[i].tem; //Сумма температур за месяц
        }
        float motklon=Float.MAX_VALUE;
        float otklonen; //среднемесячное отклонение
        styear/=N; //Средняя температура за год
 
        for(int j=0;j<12;j++)
        {
            stem[j]/=month[j]; //записали ср.темп
            otklonen=styear-stem[j]; //Отклонение
            if(otklonen<0)      // По модулю
                otklonen=-otklonen;
            if(motklon>otklonen) // Ищем минимум
                motklon=otklonen;
        }
 
        System.out.printf("%f\n",styear); //Ср годовая т.
        for(int z=0;z<12;z++)
        {
            if(stem[z]<=motklon) //Пишем минимум
                System.out.printf("%d %f\n", z+1, stem[z]);
        }
        int g;
        g = Integer.parseInt(reader.readLine());
 
    }
}
0
 Аватар для we2seek
84 / 84 / 42
Регистрация: 25.01.2010
Сообщений: 386
23.05.2017, 23:53
Давайте начнем с того, что в решении, которое вы принимаете за правильное, не правильно интерпретируются входные данные.
На вход подается строка вида:
"23.05 +12.1 +14.2 +15.0 +15.6 +16.0 +16.1 +16.3 +16.8 +18.2 +18.5 +19.4 +20.1"
И таких строк 365 (Хотя скажите тому, кто давал задание, должно быть 366).
Я в упор не вижу работу с такой строкой
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
24.05.2017, 10:23
Цитата Сообщение от we2seek Посмотреть сообщение
И таких строк 365 (Хотя скажите тому, кто давал задание, должно быть 366).
Цитата Сообщение от frm778 Посмотреть сообщение
Условие: На вход программы подается 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2008 года.
Я немного не понял, откуда ты взял 365.
0
 Аватар для we2seek
84 / 84 / 42
Регистрация: 25.01.2010
Сообщений: 386
24.05.2017, 19:15
Цитата Сообщение от korvin_ Посмотреть сообщение
Я немного не понял, откуда ты взял 365.
Ошибся, наверное.... Ночь и все дела
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2017, 19:15
Помогаю со студенческими работами здесь

Перевод кода с С++
помогите перевести программу с С++ в паскаль вот она: #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using...

Перевод кода из С++ в С#
Добрый вечер,очень нужна помощь в переводе кода из С++ на С# Вот условие самой задачи:Структура &quot;Студент&quot;: - фамилия, имя,...

Перевод кода с TP
program 2; uses graph,crt; const xs0=50; xp1=1.75; xs1=610; xp0=-1.75; ys0=440;yp1=1; ys1=40; yp0=-1; {granici...

Перевод кода с JS в C#
Есть код: var errors = { 0: 'Error_1', 1: 'Error_2', 2: 'Error_3', 3:...

Перевод кода из C++ в C#
Понимаю, что прошу сложную задачу, но я начал изучать C# буквально пару дней назад, а уже сейчас нужно перевести код из C++ в C#. ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru