2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: прошу помогите начинающему програмисту
Сообщение20.10.2009, 18:40 
Ну налетели на человека... :lol: Хотя стараться - учиться ему и учиться.
Warlock164 в сообщении #252936 писал(а):
1.Из данного натурального числа удалить все цифры А.(через циклы)
Подсказка: остаток от целочисленного деления на 10 (или под A подразумевалась шестнадцатиричная цифра? - тогда на 16) даст младшую цифру натурального числа. Как "удалить" цифру из числа - сообразите сами. Лучше всего взять бумагу, карандаш, написать исходное число, число с удаленной цифрой и подумать, как математически первое преобразовать ко второму.

 
 
 
 Re: прошу помогите начинающему програмисту
Сообщение20.10.2009, 19:34 
PapaKarlo в сообщении #253380 писал(а):
учиться ему и учиться
Уж я-то знаю, что в школе отступам, комментариям и красивому понятному оформлению кода не учат... 8-)

PapaKarlo в сообщении #253380 писал(а):
Лучше всего взять бумагу, карандаш
Кстати, это вообще надо почаще делать. Это ведь помощь самому себе, очень дешёвая. Почему люди так не делают вовремя? :?

 
 
 
 Re: прошу помогите начинающему програмисту
Сообщение26.10.2009, 08:55 
напишите решение етой задачи .Из данного натурального числа удалить все цифры А.(через циклы)

 
 
 
 Re: прошу помогите начинающему програмисту
Сообщение06.11.2009, 20:36 
Аватара пользователя
Вообще по моему удобнее через строки, т.е. изначально прочитать строку и прочитать символ. Потом с помощью процедур delete и pos в цикле удалять хоть что, ну в нашем случае цифру.
И можно вообще не напрягаться :)

 
 
 
 Re: прошу помогите начинающему програмисту
Сообщение06.11.2009, 20:39 
Ага, с нииизенькой эффективностью. Нет, в числовом виде намного быстрее и понятнее (!) будет.

 
 
 
 Re: прошу помогите начинающему програмисту
Сообщение07.11.2009, 16:17 
2arseniiv
Цитата:
Нет, в числовом виде намного быстрее

Почему быстрее-то? Ведь подразумевалось, что в строке "цифры" уже в готовом виде лежат и их не надо экстрагировать из числа, в этом случае просмотр строки явно быстрее разложения числа по степеням десятки.

Хотя в условии подразумевалась работа именно с нативными числами, а не с их строковым представлением.

 
 
 
 Re: прошу помогите начинающему програмисту
Сообщение07.11.2009, 19:25 
Считывая строку, можно считать что угодно - а, проверяя её на "численность", мы всё равно цикл составим... :roll: Программа должна отвечать спецификации :wink:

 
 
 
 Re: прошу помогите начинающему програмисту
Сообщение07.11.2009, 19:52 
Warlock164 в сообщении #255069 писал(а):
напишите решение етой задачи .Из данного натурального числа удалить все цифры А.(через циклы)

Пишу.

Цикл -- в любом случае "while".

Вариант 1 (числа представлены строками).

Рабочая переменная:
* текущий индекс в строке (вначале 1).
Пока этот индекс в пределах строки:
если соотв. символ -- "А" (или "а"), то удаляем его из строки;
иначе -- увеличиваем индекс на 1.
Если на выходе строка получилась пустой, то заменяем её на '0'.

Вариант 2 (числа представлены обычным двоичным кодом).

Рабочие переменные:
* текущее значение выходного числа (вначале 0);
* текущая "маска" шестнадцатиричного разряда (вначале 1).
Пока входное число больше нуля:
- извлекаем очередную шестнадцатиричную "цифру" -- остаток от деления текущего значения входного числа на 16;
- делим (целочисленно) входное число на 16;
если очередная "цифра" не равна 10, то:
- прибавляем к значению выходного числа "маску", умноженную на "цифру";
- умножаем "маску" на 16.

Кодируйте.

 
 
 [ Сообщений: 23 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group