2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: прошу помогите начинающему програмисту
Сообщение20.10.2009, 18:40 
Заслуженный участник


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

 Профиль  
                  
 
 Re: прошу помогите начинающему програмисту
Сообщение20.10.2009, 19:34 
Заслуженный участник


27/04/09
28128
PapaKarlo в сообщении #253380 писал(а):
учиться ему и учиться
Уж я-то знаю, что в школе отступам, комментариям и красивому понятному оформлению кода не учат... 8-)

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

 Профиль  
                  
 
 Re: прошу помогите начинающему програмисту
Сообщение26.10.2009, 08:55 


19/10/09
6
напишите решение етой задачи .Из данного натурального числа удалить все цифры А.(через циклы)

 Профиль  
                  
 
 Re: прошу помогите начинающему програмисту
Сообщение06.11.2009, 20:36 
Аватара пользователя


06/11/09
5
Минск
Вообще по моему удобнее через строки, т.е. изначально прочитать строку и прочитать символ. Потом с помощью процедур delete и pos в цикле удалять хоть что, ну в нашем случае цифру.
И можно вообще не напрягаться :)

 Профиль  
                  
 
 Re: прошу помогите начинающему програмисту
Сообщение06.11.2009, 20:39 
Заслуженный участник


27/04/09
28128
Ага, с нииизенькой эффективностью. Нет, в числовом виде намного быстрее и понятнее (!) будет.

 Профиль  
                  
 
 Re: прошу помогите начинающему програмисту
Сообщение07.11.2009, 16:17 
Заслуженный участник


26/07/09
1559
Алматы
2arseniiv
Цитата:
Нет, в числовом виде намного быстрее

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

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

 Профиль  
                  
 
 Re: прошу помогите начинающему програмисту
Сообщение07.11.2009, 19:25 
Заслуженный участник


27/04/09
28128
Считывая строку, можно считать что угодно - а, проверяя её на "численность", мы всё равно цикл составим... :roll: Программа должна отвечать спецификации :wink:

 Профиль  
                  
 
 Re: прошу помогите начинающему програмисту
Сообщение07.11.2009, 19:52 
Заслуженный участник


11/05/08
32166
Warlock164 в сообщении #255069 писал(а):
напишите решение етой задачи .Из данного натурального числа удалить все цифры А.(через циклы)

Пишу.

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

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

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

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

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

Кодируйте.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: mihaild


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group