0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 31
1

Напишите пожалуйста программу на паскале

25.11.2013, 14:02. Показов 1206. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подсчитать количество различных (значащих) цифр в десятичной записи натурального числа n и напечатать в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа n.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2013, 14:02
Ответы с готовыми решениями:

Напишите,пожалуйста, программу на паскале
Найти min и max

НАПИШИТЕ ПОЖАЛУЙСТА ПРОГРАММЫ НА ПАСКАЛЕ .ЧЕРЕЗ ФУНКЦИЮ ИЛИ ПРОЦЕДУРУ!
РЕШИТЕ ПОЖАЛУЙСТА !!!!!!!!!! ЗАВТРА КОНТРОЛЬНАЯ ПО ЭТИМ ЗАДАЧАМ!!!!!!!! ПРОШУ СИЛЬНО!!!!!!! ХОТЯ...

Напишите программу на паскале
Помогите пожалуйста написать программу, котроая находит и выводит на печать все трёхзначные числа,...

Напишите программу на паскале массивы
Напишите программу формирования массива размером 5*5 с помощью дaтчикa случайных чисел. Замените в...

11
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7534 / 4394 / 2785
Регистрация: 22.11.2013
Сообщений: 12,588
Записей в блоге: 1
25.11.2013, 14:54 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  digits: array [0..9] of integer;
  i, c: integer;
  n: longint;
begin
  for i := 0 to 9 do digits[i] := 0;
  c := 0;
  Write('Введите число: '); ReadLn(n);
  while n > 0 do begin
    i := n mod 10;
    if digits[i] = 0 then inc(c);
    inc(digits[i]);
    n := n div 10;
  end;
  Write('Различных значащих цифр ', c, ', отсутствуют цифры: ');
  for i := 0 to 9 do
    if digits[i] = 0 then Write(i:2);
  WriteLn('.');
end.
Добавлено через 10 минут
Или с множествами:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  digits: set of 0..9;
  i, c: integer;
  n: longint;
begin
  digits := []; c := 0;
  Write('Введите число: '); ReadLn(n);
  while n > 0 do begin
    i := n mod 10;
    if not (i in digits) then inc(c);
    Include(digits, i);
    n := n div 10;
  end;
  Write('Различных значащих цифр ', c, ', отсутствуют цифры: ');
  for i := 0 to 9 do
    if not (i in digits) then Write(i:2);
  WriteLn('.');
end.
0
0 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 31
25.11.2013, 14:59  [ТС] 3
bormant, можишь объяснить как писал программу
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7534 / 4394 / 2785
Регистрация: 22.11.2013
Сообщений: 12,588
Записей в блоге: 1
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
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7534 / 4394 / 2785
Регистрация: 22.11.2013
Сообщений: 12,588
Записей в блоге: 1
25.11.2013, 16:12 6
Влад12345, раз всё понятно, нарисовать блок-схему труда не составит.
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
60 / 67 / 37
Регистрация: 29.01.2013
Сообщений: 374
Записей в блоге: 1
25.11.2013, 17:08 9
Цитата Сообщение от Влад12345 Посмотреть сообщение
пожалуйста умоляю
Нет, люди, ну имейте хоть калю совести...
Вам уже тут люди уже и программы, как "бесплатные" автоматы "шлепают", а вы не можете элементарно нарисовать какую-то блок-схему??
-Пробегаете глазками по программе, смотрите, какие операции и операторы присутствуют (присваивания,условия,ввода/вывода,циклы и т.п.) и просто рисуете соответствующую "картинку".
Если вы этого не можете сделать, то не мучайте себя и не портите себе жизнь, переводитесь с этого факультета!
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7534 / 4394 / 2785
Регистрация: 22.11.2013
Сообщений: 12,588
Записей в блоге: 1
25.11.2013, 17:33 10
Что-то вроде: http://img801.imageshack.us/img801/8233/svdb.png
0
Супер-модератор
6140 / 2882 / 1299
Регистрация: 04.03.2013
Сообщений: 5,747
Записей в блоге: 1
25.11.2013, 17:55 11
Цитата Сообщение от bormant Посмотреть сообщение
Что-то вроде
Рисунки на хостингах не держим, прикладываем во вложении. На будущее
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7534 / 4394 / 2785
Регистрация: 22.11.2013
Сообщений: 12,588
Записей в блоге: 1
25.11.2013, 23:14 12
Ок, свое будущее мы делаем сами, и, пожалуй, оно уже здесь с нами .
Миниатюры
Напишите пожалуйста программу на паскале  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2013, 23:14
Помогаю со студенческими работами здесь

напишите программу на паскале котрая будет рисовать картинку
надо написать программу которая будет рисовать рисунок

напишите программу пожалуйста
Заполните файл последовательного доступа f целыми числами,полученными с помощью генератора...

Напишите пожалуйста программу с разветвляющимся алгоритмом
пожалуйста решите, спасибо

Напишите пожалуйста программу по теме работа с файлами
Создать файл произвольных символов (символы вводятся с клавиатуры). Вывести в один файл цифры в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru