Даны вещественные векторы х и у размером 10. вывести на печать тот вектор длина которого больше
Ответы на вопрос:
мне понравилась , как мне кажется, наиболее изящное решение через рекурсивную функцию
пусть а(размер) - массив, в котором хранится исходная цепочка. тогда основная процедура будет иметь вид
//*******************************************
процедура сформировать() тхт=""+а(1); для ц=2 по размер цикл след=следующий(а(ц-1)+а(ц)); тхт=тхт+"; "+след; конеццикла; сообщить(тхт); конецпроцедуры
вот и всё! осталось написать процедуру-функцию следующий
у меня она рекурсивная
//**********************************************
функция следующий(тч)если тч< 10 тогда возврат(тч); иначе д=цел(тч/10); е=тч-д*10; возврат(следующий(д+е)); конецесли; конецфункции
вот теперь совсем всё.
при подстановке цепочки 1; 7; 5; 2; 6 программа выдала 1; 8; 3; 7; 8 то есть чаще встречается 8.
замечание1 можешь написать и не рекурсивную, это просто, но рекурсия красивей(как мне кажется), да и просто делать дальнейшие модификации (например для исходных многозначных чисел).
замечание2 я, по сути дела, "вручную" находил десятки и единицы, если в языке, которым ты владеешь, есть функции типа, "остаток от деления", можешь их использовать
замечание3 программа абсолютно рабочая, чуть-чуть изменена для детского восприятия, написана на 1с77. перевести на свой язык, думаю, сумеешь.
успехов!
кстати, вот что у меня получилось(не адаптированный текст), если исходная цепочка может содержать любые неотрицательные целые числа, а на выходе - сумма цифр первого, ну и сумма цифр предыдущего с текущим. как видишь, практически тот же текст, но более общий.
функция следующий(тч) если тч< 10 тогда возврат(тч); иначе стч=строка(тч); чч=0; для цц=1 по стрдлина(стч) цикл чч=чч+число(сред(стч,цц,1)); конеццикла; возврат(следующий(чч)); конецесли; конецфункции
//*******************************************процедура сформировать() тхт=""+следующий(цепь.получитьзначение(1)); для ц=2 по цепь.размерсписка() цикл след=следующий(цепь.получитьзначение(ц-1)+цепь.получитьзначение(ц)); тхт=тхт+"; "+след; конеццикла; сообщить(тхт); конецпроцедуры
Популярно: Информатика
-
maximkomaxs37307.11.2022 03:57
-
shybite14.07.2021 03:16
-
Екатерина261005.04.2021 13:31
-
ImperialDragonYT13.07.2022 09:30
-
maslyuk0531.07.2022 23:28
-
lizochkascherb08.06.2023 00:13
-
xcp416.10.2021 12:26
-
tolkov0529.06.2022 08:14
-
Lubov08030111.07.2022 02:46
-
romabryuxachev02.06.2022 21:06