Задача была под linux.
знаете что, я лучше сам программу напишу, чем буду понимать ваши инструкции))
/*
* Конвертер земного возраста в юпитерианский
* для Arduino Uno / Nano / Mega
*/
// Определяем константы
const float EARTH_DAYS_IN_YEAR = 365.25; // Земной год с учётом високосных
const float JUPITER_YEAR_IN_EARTH_DAYS = 4333; // Юпитерианский год в земных днях
const float JUPITER_TO_EARTH_RATIO = JUPITER_YEAR_IN_EARTH_DAYS / EARTH_DAYS_IN_YEAR; // ≈ 11.86
// Пины для подключения (опционально)
const int BUTTON_PIN = 2; // Кнопка для расчёта
const int LED_PIN = 13; // Встроенный светодиод
// Переменные для хранения возраста
float earthAge = 0; // Возраст на Земле
float jupiterAge = 0; // Возраст на Юпитере
bool dataEntered = false; // Флаг ввода данных
void setup() {
// Инициализация последовательного порта
Serial.begin(9600);
// Настройка пинов
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
// Приветственное сообщение
printWelcome();
}
void loop() {
// Если не ввели данные - запрашиваем
if (!dataEntered) {
requestAge();
dataEntered = true;
}
// Проверяем, не нажата ли кнопка для нового расчёта
if (digitalRead(BUTTON_PIN) == LOW) {
delay(300); // Защита от дребезга
dataEntered = false;
digitalWrite(LED_PIN, !digitalRead(LED_PIN)); // Мигаем светодиодом
Serial.println("\n--- Новый расчёт ---");
}
// Проверяем, есть ли данные в Serial
if (Serial.available() > 0 && !dataEntered) {
readSerialAge();
}
}
// Функция приветствия
void printWelcome() {
Serial.println("=================================");
Serial.println(" КОНВЕРТЕР ВОЗРАСТА: ЗЕМЛЯ → ЮПИТЕР");
Serial.println("=================================");
Serial.println("Юпитерианский год = 4333 земных дня");
Serial.print("Это составляет ");
Serial.print(JUPITER_TO_EARTH_RATIO);
Serial.println(" земных лет\n");
}
// Функция запроса возраста
void requestAge() {
Serial.println("Введите ваш возраст в земных годах:");
Serial.println("(например: 25.5 или 30)");
digitalWrite(LED_PIN, HIGH); // Включаем светодиод - ждём ввод
}
// Функция чтения возраста из Serial
void readSerialAge() {
String input = Serial.readStringUntil('\n');
input.trim(); // Убираем пробелы и переводы строк
if (input.length() > 0) {
// Пробуем преобразовать в число
earthAge = input.toFloat();
if (earthAge > 0 && earthAge < 150) { // Проверка на разумный возраст
calculateAndPrint();
} else {
Serial.println("Ошибка: введите число от 0 до 150");
dataEntered = false;
}
}
digitalWrite(LED_PIN, LOW); // Выключаем светодиод
}
// Функция расчёта и вывода результатов
void calculateAndPrint() {
// Расчёт юпитерианского возраста
jupiterAge = earthAge / JUPITER_TO_EARTH_RATIO;
// Расчёт в днях (для любознательных)
float earthDays = earthAge * EARTH_DAYS_IN_YEAR;
float jupiterYearsInDays = jupiterAge * JUPITER_YEAR_IN_EARTH_DAYS;
// Вывод результатов
Serial.println("\n--- РЕЗУЛЬТАТ ---");
Serial.print("🌍 На Земле вам: ");
Serial.print(earthAge, 2);
Serial.println(" лет");
Serial.print("🪐 На Юпитере вам: ");
Serial.print(jupiterAge, 2);
Serial.println(" юпитерианских лет");
// Добавляем визуальную шкалу
drawScale();
// Бонусная информация
Serial.println("\n📊 Интересные факты:");
Serial.print("• Вы прожили ");
Serial.print(earthDays, 0);
Serial.println(" земных дней");
// Количество юпитерианских дней рождения
float jupiterBirthdays = earthAge / JUPITER_TO_EARTH_RATIO;
Serial.print("• У вас было/будет ");
Serial.print(jupiterBirthdays, 1);
Serial.println(" юпитерианских дней рождения");
// Если возраст позволяет - покажем следующий день рождения
float nextJupiterBirthday = (floor(jupiterBirthdays) + 1) * JUPITER_TO_EARTH_RATIO;
if (nextJupiterBirthday > earthAge) {
float yearsToNext = nextJupiterBirthday - earthAge;
Serial.print("• Следующий юпитерианский день рождения через ");
Serial.print(yearsToNext, 1);
Serial.println(" земных лет");
}
Serial.println("------------------------\n");
Serial.println("Нажмите кнопку для нового расчёта");
}
// Функция для рисования визуальной шкалы
void drawScale() {
Serial.println("\nВизуальное сравнение:");
Serial.print("Земные годы: |");
int earthBars = int(earthAge / 2); // 1 символ = 2 года
if (earthBars > 30) earthBars = 30; // Ограничим длину
for (int i = 0; i < earthBars; i++) {
Serial.print("=");
}
Serial.println("|");
Serial.print("Юпитер годы: |");
int jupiterBars = int(jupiterAge * 2); // Для масштаба
if (jupiterBars > 30) jupiterBars = 30;
for (int i = 0; i < jupiterBars; i++) {
Serial.print("=");
}
Serial.println("|");
}
а то код не даете, а потом еще и выяснится что вы учили писать код на несуществующем языке…
может это кому то и правда проще, но не мне)))
или вот так
/*
* Конвертер возраста Земля → Юпитер
* Автоматический режим - просто вводите возраст
*/
const float JUPITER_YEAR = 11.86; // 1 год на Юпитере = 11.86 земных лет
String inputString = ""; // Строка для хранения ввода
bool stringComplete = false; // Флаг завершения ввода
void setup() {
Serial.begin(9600);
Serial.println("╔════════════════════════════════╗");
Serial.println("║ КОНВЕРТЕР ВОЗРАСТА НА ЮПИТЕРЕ ║");
Serial.println("╚════════════════════════════════╝");
Serial.println("\n📌 Просто введите любой возраст и нажмите Enter");
Serial.println("👉 Например: 25, 33.5, 100\n");
Serial.print("➡️ Ваш возраст на Земле: ");
}
void loop() {
// Если получена полная строка (до Enter)
if (stringComplete) {
convertAge();
stringComplete = false;
inputString = "";
Serial.print("\n➡️ Следующий возраст: ");
}
}
// Функция конвертации возраста
void convertAge() {
float earthAge = inputString.toFloat();
// Проверка на корректность
if (earthAge <= 0 || earthAge > 150) {
Serial.println("\n❌ Пожалуйста, введите возраст от 1 до 150 лет");
return;
}
float jupiterAge = earthAge / JUPITER_YEAR;
// Красивый вывод
Serial.println("\n┌─────────────────────────────────┐");
Serial.println("│ РЕЗУЛЬТАТ │");
Serial.println("├─────────────────────────────────┤");
// Вывод с выравниванием
char buffer[50];
sprintf(buffer, "│ 🌍 Земля: %6.2f лет │", earthAge);
Serial.println(buffer);
sprintf(buffer, "│ 🪐 Юпитер: %5.2f лет │", jupiterAge);
Serial.println(buffer);
// Визуализация соотношения
Serial.println("├─────────────────────────────────┤");
Serial.print("│ Земля ");
int earthBars = int(earthAge / 3);
if (earthBars > 15) earthBars = 15;
for (int i = 0; i < earthBars; i++) Serial.print("█");
for (int i = earthBars; i < 15; i++) Serial.print("░");
Serial.println(" │");
Serial.print("│ Юпитер");
int jupiterBars = int(jupiterAge * 1.5);
if (jupiterBars > 15) jupiterBars = 15;
for (int i = 0; i < jupiterBars; i++) Serial.print("█");
for (int i = jupiterBars; i < 15; i++) Serial.print("░");
Serial.println(" │");
// Интересные факты для конкретного возраста
Serial.println("├─────────────────────────────────┤");
float earthDays = earthAge * 365.25;
float jupiterDays = jupiterAge * 4333;
sprintf(buffer, "│ Дней на Земле: %8.0f │", earthDays);
Serial.println(buffer);
float jupiterBirthdays = earthDays / 4333;
sprintf(buffer, "│ Дней рожд. на Юпитере: %4.1f │", jupiterBirthdays);
Serial.println(buffer);
Serial.println("└─────────────────────────────────┘");
}
// Функция, вызываемая при поступлении данных в Serial
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
// Если нажат Enter - завершаем ввод
if (inChar == '\n') {
stringComplete = true;
} else {
// Добавляем символ в строку
inputString += inChar;
}
}
}
главное это точно не фейковый язык, м можно объяснить простой запуск)))
Ну ссылку что-ли приложить?
Не открывает.
https//: - тут ошибка.
А так?
В свое время мне рассказали историю, как сажали картошку.
В те воемена сажали практически все и как правило народу было в поле много. Каждый сажал на своём участке, а участки были рядом. Один мужик не знал как сажать её, но знал как сажают деревья. Поэтому он посадил ее на глубину 20см. У всех потом картошка взошла, а у него нет. Ну народ то с юмором и начал подтрунивать - Выкопай и посади, как положено.
Так точно работает: _vk.com/clip-224508715_456244351
Так работает. Оптический обман был.
я писал пятнашки так! на гтк! без генератора. по f4, да. mc - наше все
Блин, мужики! У меня еще 4 вечера, даже Шаббат еще не начался, а вы уже тут все “фгаффно”! Нельзя так! Бухать нужно вдумчиво и с удовольствием. А вы блин, как в последний раз! Не одобряю…
О! Трезвый попался!
Так все писали в эпоху “до” визивиг. И страницы так верстали. Но ведь йожегу понятно, что это очень и очень неудобно. Можно, но неудобно. Можно от Москвы до Сочи дойти пешком? Конечно можно, но затрахаешься ![]()
Сам знаешь, что основному составу, так сказать, на твоё одобрение пофиг ))
Я так постоянно пишу.
Вот такую систему напиши:
_vk.com/clip-224508715_456244320
Тут главное что? VBA или Linux?
сын мой вообще постоянно vim пользует. Поскольку он девопс и куча задач у него в контейнерах, в котором даже mc не установлен. Но по мне - так это мазохизм какой-то!
Я просто ненавижу все эти “хот ки” и прочие извращения. Хотя всю жизнь на Линуксе. Если нет Иксов, то хотя б nano, но не vim!
А мне тоже mc нравилось, на far похожа. А с ним я уже очень много лет ))
mc или far годятся как простенькие ide :).
но топ все-таки Visual Slick Edit. IDE с большой буквы. Образец. Но чтобы его распробовать - нужно время :))))
mc, far, dosnavigator, nortoncommander. Интересно, Нортон запатентовал свой двцхокошечный интерфейс?
Не знаю. Мне нравится. Конечно же сейчас много всяких IDE, а я к FAR’у прикипел когда начинал кодить на php. Потом на эклипс перешли (типа расширились и в ширь и в глубь
). Но фар хорошо работает, почему к нему какие-то странные отношения?
Хорош тот инструмент, который ты хорошо знаешь.
Тут где-то год-два назад нужно было «вычистить гадость» из php-скриптов. Так в фаре это всего лишь Alt+F7 и всё - оно всё на ладони. ![]()
