Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 58
1

Определить, какая цифра в числе встречается чаще всего

28.11.2012, 19:36. Показов 6168. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составьте программу, определяющую, какая цифра в числе встречается чаще всего. Если таких цифр несколько выводить их все.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2012, 19:36
Ответы с готовыми решениями:

Определить какая цифра встречается чаще всего
Дана строка, которая состоит из чисел разделенных одним или несколькими пропусками. Определить...

Определите, какая цифра в числе встречается чаще других
Дано натуральное число P. Определите, какая цифра в этом числе встречается чаще других.

Определите, какая цифра в числе встречается чаще других
Условие: дано натуральное число P. Определите, какая цифра в этом числе встречается чаще других....

Определить, в каком из чисел чаще всего встречается цифра 5
Помогите пожалуйсто ! Три задачи ? 1). Знайти суму цілих додатних непарних чисел менше 50 2)....

5
259 / 94 / 24
Регистрация: 18.04.2011
Сообщений: 719
Записей в блоге: 1
29.11.2012, 16:39 2
Это будет выглядеть примерно так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Uses CRT;
Var
 Num:integer;
 Ch: byte;
 Arr: Array [0..10] of byte;
 I: integer;
Begin
ClrScr;
Write('Введите число: ');
ReadLn(Num);
If Num<0 then Num:=-Num;
For Ch:=0 to 10 do Begin
Arr[Ch]:=0;
End;
Repeat
i := Num mod 10;
Arr[i]:=Arr[i]+1;
Num := Num div 10;
Until Num=0;
Arr[10]:=Arr[0];
for Ch:= 1 to 9 do begin
if Arr[10]<Arr[Ch] then Arr[10]:=Arr[Ch];
end;
For Ch:=0 to 9 do begin
If arr[ch]=arr[10] then writeLn('Цифра ',ch,' встречается ',arr[ch],' раз');
end;
readkey;
clrscr;
End.
Стоит посмотреть на поведение программы повнимательнее - быть может где-то допустил ошибку.
1
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 58
29.11.2012, 18:05  [ТС] 3
Не могли бы вы по пунктам объяснить мне, что тут происходит, последовательно?
0
522 / 398 / 213
Регистрация: 28.07.2011
Сообщений: 2,207
29.11.2012, 18:30 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Uses CRT;
Var //думаю вар обьяснять не надо
 Num:integer;
 Ch: byte;
 Arr: Array [0..10] of byte;
 I: integer;
Begin
ClrScr;
Write('Введите число: ');
ReadLn(Num);//считываем число
If Num<0 then Num:=-Num;//если число меньше нуля, делаем его больше нуля
For Ch:=0 to 10 do Begin //заполняем массив возможных цифр в числе(0-9 нулями)
Arr[Ch]:=0;
End;
Repeat 
i := Num mod 10;//записываем в переменную i последнюю цифру
Arr[i]:=Arr[i]+1;//увеличиваем массив для этой цифры
Num := Num div 10;//удаляем последнюю цифру из начального числа
Until Num=0;//все это делаем пока число не кончилось
Arr[10]:=Arr[0];
for Ch:= 1 to 9 do begin // наибольшее кол-во цифр записываем в A[10]
if Arr[10]<Arr[Ch] then Arr[10]:=Arr[Ch];
end;
For Ch:=0 to 9 do begin// пишем ищем это наибольшее и выводим какая это цифра
If arr[ch]=arr[10] then writeLn('Цифра ',ch,' встречается ',arr[ch],' раз');
end;
readkey;//остановка программы до нажатия клавиши
clrscr;//чистим экран
End.
что-то такое
1
259 / 94 / 24
Регистрация: 18.04.2011
Сообщений: 719
Записей в блоге: 1
29.11.2012, 18:55 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от ника1 Посмотреть сообщение
Не могли бы вы по пунктам объяснить мне, что тут происходит, последовательно?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Uses CRT;
{В разделе Var описываем переменные, которые будем использовать}
Var
 Num:integer;{Здесь будет число, которое введет пользователь}
 Ch: byte; {Используется как счетчик цикла}
 Arr: Array [0..10] of byte;{Массив}
 I: integer;
{Начало программы}
Begin
ClrScr;{Очистка экрана куда будут выводиться результаты}
Write('Введите число: ');
ReadLn(Num);{Сохраняем в переменную введеное пользователем число}
If Num<0 then Num:=-Num;{Если введено отрицательное число, то делаем его положительным}
{Обнуляем массив Arr из 11 элементов}
For Ch:=0 to 10 do Begin
Arr[Ch]:=0;
End;
{Закончили обнулять массив}
{Делаем интересную штуку - расчленяем число от пользователя на отдельные цифры:
Делим число на 10. Остаток от деления - и есть интересующая нас цифра.
Цикл делается до тех пор, пока целая часть не равна нулю (цифр в числе больше не осталось)
Пока число расчленяется, цифры считаются в массиве.
Делается следующее: смотрится какая цифра в числе и ячейка в массиве под этим номером увеличивает свое значение на 1 (то есть, если у нас в числе цифра 5, то 5-я ячейка увеличивает свое значение)}
Repeat
i := Num mod 10;
Arr[i]:=Arr[i]+1;
Num := Num div 10;
Until Num=0;
{Цикл закончился. Теперь у нас в массиве записано какое число сколько раз встречается в числе.
То есть, если в 3-ей ячейке стоит цифра 7, то это значит, что тройка встречается в числе 7 раз.}
Arr[10]:=Arr[0];{В последнюю ячейку массива мы записываем минимальное значение, которое находим}
{Теперь в цикле пробегаем по всем ячейкам массива, кроме последней (в ней находится максимальное число раз, которое повторяется одна из цифр).
Если число в ячейке массива больше, чем в последней ячейке, то в последнюю ячейку сохраняется новое число.}
for Ch:= 1 to 9 do begin
if Arr[10]<Arr[Ch] then Arr[10]:=Arr[Ch];{именно здесь идет проверка и, если нужно, замена значения}
end;
{Теперь опять пробегаем по циклу и сравниваем числа в ячейках с числом в последней ячейке. Если они одинаковы, то выводим это число на экран}
For Ch:=0 to 9 do begin
If arr[ch]=arr[10] then writeLn('Цифра ',ch,' встречается ',arr[ch],' раз');
end;
{Все. Дальше наводим красоту}
readkey;{Ждем нажатия любой клавиши на клавиатуре, после чего программа закрывается}
clrscr;{Очищаем экран и уходим}
End.
Вроде все описал.
1
0 / 0 / 0
Регистрация: 07.11.2012
Сообщений: 58
29.11.2012, 19:05  [ТС] 6
Спасибо большое!
0
29.11.2012, 19:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2012, 19:05
Помогаю со студенческими работами здесь

Определить, какая буква чаще всего встречается в заданном тексте
К сожалению я ничего не могу понять в файлах и работе с текстом. Необходима помощь с заданием. Кому...

Определить, какой из символов чаще всего встречается в строке
Определить, какой из символов чаще всего встречается в данной строке! заранее спасибо !!!!!

Определить, какая русская буква встречается чаще
Помогите пожалуйста с работой в паскале.Программа написана и работает, но только в АВС из-за Chr. ...

Определить, какая из двух букв чаще встречается в предложении
Ввод предложения определить сколько букв е или о встречаются чаще Выручайте!!!


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru