Подгонка под требования исходного кода С++...

tran
XBOCTATOE:

Только вот в 12345 мм никак не 12 метров и 345 сантиметров

Вот спасибо, что-то протупил, не заметил😁

XBOCTATOE

Как же любят все усложнять в институтах. Все делается одной строчкой:

[root@newsip dia]# cat dddd.php
#!/usr/bin/php
<?php
echo "В ".$argv[1]." миллиментрах ".(int)($argv[1]/1000)." метров ".(int)(($argv[1]%1000)/10)." сантиметров ".(int)($argv[1]%10)." миллиметров\n";
?>

Результат:

[root@newsip dia]# ./dddd.php 123456
В 123456 миллиментрах 123 метров 45 сантиметров 6 миллиметров
[root@newsip dia]# ./dddd.php 123412
В 123412 миллиментрах 123 метров 41 сантиметров 2 миллиметров

Если бы мыли англоговорящими, то нас бы все устроило, но мы же живем в России и язык у нас русский, поэтому:

[root@newsip dia]# cat dddd1.php
#!/usr/bin/php
<?php
global $Ne0, $Ne1, $Ne2, $Ne4;
$Ne0 = array(1 => 'метр',2 => 'метра',5 => 'метров');
$Ne1 = array(1 =>'сантиметр',2 => 'сантиметра',5 => 'сантиметров');
$Ne3 = array(1 =>'миллиметр',2 => 'миллиметра',5 => 'миллиметров');
$Ne4 = array(1 =>'миллиметре', 2 => 'миллиметрах', 5 => 'миллиметрах');
function num_125($n) {
  $n100 = $n % 100;
  $n10 = $n % 10;
  if( ($n100 > 10) && ($n100 < 20) ) {
    return 5;
  }
  elseif( $n10 == 1) {
    return 1;
  }
  elseif( ($n10 >= 2) && ($n10 <= 4) ) {
    return 2;
  }
  else {
    return 5;
  }

}
function metr($n) {
  global $Ne0;
  return $Ne0[num_125($n)];
}
function santimetr($n) {
  global $Ne1;
  return $Ne1[num_125($n)];
}
function millimetr($n) {
  global $Ne3;
  return $Ne3[num_125($n)];
}
function _millimetr($n) {
  global $Ne4;
  return $Ne4[num_125($n)];
}


echo "В ".$argv[1]." "._millimetr($argv[1])." ".(int)($argv[1]/1000)." ".metr($argv[1]/1000)." ".(int)(($argv[1]%1000)/10)." ".santimetr($argv[1]%1000/10)." ".(int)($argv[1]%10)." ".millimetr($argv[1]%10)."\n";
?>

и результат:

[root@newsip dia]# ./dddd1.php 15721
В 15721 миллиметре 15 метров 72 сантиметра 1 миллиметр
[root@newsip dia]# ./dddd1.php 1312
В 1312 миллиметрах 1 метр 31 сантиметр 2 миллиметра
ADF

Для пхп веб-сервер навостреный нужен (если по роду деятельности уебом не занимается - его под рукой может не быть 😃)
Поэтому таки лучше на яваскрипте. На js можно быдлокодить на любом девайсе, на котором есть тупо бравузер 😃 Ну и редактор текстовый. Т.е. фактически никакого спец софта вообще не требуется!

XBOCTATOE

Ну пхп в данном контексте не актуально, просто я с ним больше вожусь. Я к тому, что можно добавить несколько функций в программу топикстартера, для придания ей юзабельности что-ли. Если бы я был преподавателем, то мне понравилась бы такая вариация на свободную тему. Потом сделал бы свою библиотеку и инклюдил в проекты - они бы разговаривали по русски. А проектов будет много. 😃 Вообще не важно на каком языке программировать, главное понимать сам процесс. А так - справочник по синтаксису и вперед. Я в свое время так скрипт на tcl писал для кошки 5350 на обработку воип звонков.

ADF
XBOCTATOE:

Если бы я был преподавателем, то мне понравилась бы такая вариация на

А если не секрет, есть опыт преподавания? 😃

Ты удивишься, но даже среди группы технарей (первый курс) нынче такой тупняк собирается, что для них с = a+b оказывается непомерной задачей при том, что все на лекции с живыми ноутами сидят! Тупо не могут даже откомпилировать и запустить 😃 Конечно, всегда есть пара нормальных человек в потоке, им от зевоты рот разрывает. С остальными же можно му9охатся весь семестр и едва дойти до циклов 😵

XBOCTATOE:

Вообще не важно на каком языке програ…

Это для тех, кто уже вник и-или работает. Т.е. для программистов.
А для студентов и школьников - для них тоже неважно, на каком языке пытаться программировать: одинаково криво и неуверенно получается на любом 😃

XBOCTATOE

Не, опыта преподавания у меня нет. 😃 А вот по работе частенько приходится что-то набросать на баше/пхп/перле. Сейчас вот ардуино мучаю, въезжаю в AVR GCC.

ADF

Не надо ардуину, плохой выбор! В силу кучи готовых решений, слишком тупо и для школоты 😃 Сейчас перспективно осваивать семейство STM-32. Для программиста ничего сложного нет.

XBOCTATOE

Ардуину выбрал по причине того, что получается готовая отладочная плата. Разобраться в схемотехнике, понять основы. А вообще ардуино - это же только бутлоадер в атмеге, так что всегда есть возможность перешить контроллер. Вообще это все игрушки, но браться сразу за серьезный микроконтроллер - думаю что не осилю. 😃

ADF

Открываю страшный секрет: готовые отладочно-эволюционные платы есть на базе ЛЮБЫХ микроконтроллеров 😃 И бут-лоадеры, и бортовые юсб - тоже уже стали стандартом современных контроллеров.

tran

Снова обращаюсь к вашей помощи!😃 Делаю ту же программу… Дело в том что при вводе правильного значения, приходится вводить число два раза(сделал отсечку на неправильные значения и буквы)

// derevo.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <clocale>
int _tmain(int argc, _TCHAR* argv[])
{
 setlocale(LC_ALL, "Russian");
 setlocale(LC_ALL, "rus");
 int x = 0, y = 0, z = 0;

   printf("Введите длину в миллиметрах:\n");
   for(;;)
  {printf ("Пожалуйста! Вводите только цифровые значения не менее 1000 мм!\n");
	scanf ("%d", &x);
	if ((scanf("%d", &x) && (x>=1000)))
	{

	break;
	}

	fflush(stdin);
  }
	y = x / 1000;
z = (x % 1000) / 10;
printf("В %d миллиметрах %d метров и %d сантиметров\n", x, y, z);



    getch();
	return 0;
}

Alexm12

Нафига

if ((scanf(“%d”, &x) && (x>=1000)))

уже ж ввели x один раз? Или уберите первый scanf…