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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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