0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 31
|
|
1 | |
Напишите пожалуйста программу на паскале25.11.2013, 14:02. Показов 1206. Ответов 11
Метки нет Все метки)
(
Подсчитать количество различных (значащих) цифр в десятичной записи натурального числа n и напечатать в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа n.
0
|
|
25.11.2013, 14:02 | |
Ответы с готовыми решениями:
11
НАПИШИТЕ ПОЖАЛУЙСТА ПРОГРАММЫ НА ПАСКАЛЕ .ЧЕРЕЗ ФУНКЦИЮ ИЛИ ПРОЦЕДУРУ!
|
Модератор
![]() ![]() |
|||||||||||
25.11.2013, 14:54 | 2 | ||||||||||
Или с множествами:
0
|
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 31
|
|
25.11.2013, 14:59 [ТС] | 3 |
bormant, можишь объяснить как писал программу
0
|
Модератор
![]() ![]() |
|
25.11.2013, 15:58 | 4 |
Исходя из задания требуется:
1) получить натуральное число, 2) разобрать его на десятичные цифры, 3) определить, какие цифры встретились, 4) посчитать количество цифр без учёта повторов, 5) зная, что десятичных цифр всего 10 -- от 0 до 9, вывести оставшиеся. Начинаем разбираться. 1) получить десятичное число: -- завести переменную: var n: longint; -- получить значение с клавиатуры: ReadLn(n); 2) получить последовательно цифры числа несложно, достаточно брать последовательно остатки от деления на основание системы счисления (для 10-чной это 10), затем делить на основание системы счисления само число: while n > 0 do begin цифра := n mod 10; n := n div 10; end; 3) нужно посчитать только те цифры, которые раньше не встречались. Значит где-то нужно хранить признак, встречалось ли число раньше. Для этого подходят множество или массив: множество: digits: set of 0..9; массив: digits: array [0..9] of integer; изначально мы не видели никаких цифр, поэтому в начале множество или массив должны быть пусты: множество: digits := []; массив: for i := 0 to 9 do digits[i] := 0; 4) получать цифру мы умеем, проверять наличие цифры умеем (присутствие в множестве или ненулевое количество встреченных цифр в массиве): not (цифра in digits) digits[цифра] = 0 заведём отдельный аккумулятор, и, если цифра ранее не встречалась, будем его увеличивать var c: integer; inc(c); или c := c + 1; после проверки будем отмечать факт получения цифры включением в множество или увеличением соответствующего цифре элемента массива: Include(digits, цифра); inc(digits[цифра]); или digits[цифра] := digits[цифра] + 1; 5) пройдём все цифры от 0 до 9 и, если цифра не встречалась в записи числа (отсутствует в множестве digits или элемент массива digits для этой цифры равен 0), выведем её. А теперь, собрав сё вмете, получим то, что получили. Влад12345, что-то осталось непонятно?
0
|
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 31
|
|
25.11.2013, 16:06 [ТС] | 5 |
можешь написать пожалуйста блок-схему
0
|
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 31
|
|
25.11.2013, 16:16 [ТС] | 7 |
пожалуйста умоляю
0
|
1 / 1 / 1
Регистрация: 25.11.2013
Сообщений: 5
|
|
25.11.2013, 16:59 | 8 |
Кое-кто выбрал не тот факультет
![]()
0
|
25.11.2013, 17:08 | 9 |
Нет, люди, ну имейте хоть калю совести...
Вам уже тут люди уже и программы, как "бесплатные" автоматы "шлепают", а вы не можете элементарно нарисовать какую-то блок-схему?? -Пробегаете глазками по программе, смотрите, какие операции и операторы присутствуют (присваивания,условия,ввода/вывода,циклы и т.п.) и просто рисуете соответствующую "картинку". Если вы этого не можете сделать, то не мучайте себя и не портите себе жизнь, переводитесь с этого факультета!
1
|
Модератор
![]() ![]() |
|
25.11.2013, 17:33 | 10 |
Что-то вроде: http://img801.imageshack.us/img801/8233/svdb.png
0
|
Модератор
![]() ![]() |
|
25.11.2013, 23:14 | 12 |
Ок, свое будущее мы делаем сами, и, пожалуй, оно уже здесь с нами
![]()
0
|
25.11.2013, 23:14 | |
Помогаю со студенческими работами здесь
12
напишите программу пожалуйста
Напишите пожалуйста программу по теме работа с файлами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |