Как найти количество цифр в числе паскаль

4 / 4 / 0

Регистрация: 08.11.2012

Сообщений: 106

1

Подсчитать количество цифр в числе

14.11.2012, 23:59. Показов 88857. Ответов 1


Студворк — интернет-сервис помощи студентам

Всем привет …
Будьте добры , Практическая =)

3.С клавиатуры вводится натуральное число N . Программе подсчитать количество цифр в числе .

Буду очень благодарен …
P.S.S. тему плохо понял =)



0



Pahanuch

328 / 163 / 89

Регистрация: 03.11.2010

Сообщений: 920

15.11.2012, 00:19

2

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата
Сообщение от Стельмашук
Посмотреть сообщение

3.С клавиатуры вводится натуральное число N . Программе подсчитать количество цифр в числе .

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
uses crt;
Var n,m,p,k:integer;
Begin
write('n=');read(n);
m:=n;k:=0;
while m<>0 do begin
p:=m mod 10;
K:=K+1;
m:=m div 10;
end;
writeln('k=',k);
end.



0



Нахождение количества цифр в числе (WHILE)

Исходник программы, которая находит количество цифр в числе, введённого пользователем с клавиатуры. Исходник основан на цикле WHILE. Есть пояснительные комментарии к каждой строке. Увидеть

исходный код

и скачать скомпилированный исходник вы можете ниже.

Исходный код программы для нахождения кол-ва цифр в числе:

Program kolcifr; //Название программы
var a, kol: integer; //Описание переменных
Begin //Начало программы
Writeln (‘Введите число’); //Диалог с пользователем
Readln (a); //Считывание числа
while a<>0 do begin //Вход в цикл while, пока а не равно 0
a:=a div 10; //Целочисленное деление на 10, отрезаем последнюю цифру
kol:=kol+1; //Считаем кол-во цифр
end; //Конец цикла
Writeln (‘Кол-во цифр: ‘,kol);//Вывод результата
end. //Конец программы

Скомпилированный исходник рекомендовано открывать программами PascalABC и PascalABC.Net.

Скачать исходник:

kolcifr.pas

Дата: 2012-03-11 08:59:25   Просмотров: 38899

Теги: Паскаль Pascal циклы WHILE исходник


Вычисляем сколько цифр в числе и суммируем их.

Вновь задачка и решение.

Задача звучит примерно так:

Составить программу, которая при вводе числа определит сумму (произведение, разность..) ее цифр (т.е. для суммы 123 => 1+2+3=6)

Для примера была данна задачка с использованием case of, где идут интервалы 1..9,10..99… — возможное кол-во цифр в числе. Занимает очень много места и мне она просто не понравилась.

В этот раз не искал возможных решений в интернете, а просто стал придумывать алгоритм.

Взял за основу возможность деления нацело (mod и div). Т.е. отсекаю каждый раз по цифре и проверяю ее. Заканчиваю вводную и представляю код.

Код ( опять без форматирования :( ):

uses crt;

var

x:longint;

i,n:integer;

begin

clrscr;

write(‘x: ‘);

readln(x);

i:=0; n:=0;

while x<>0 do begin

i:=i+(x mod 10);

x:=x div 10;

n:=n+1;

end;

writeln(‘Cумма : ‘,i);

write(‘Кол-во цифр : ‘,n);

readln;

end.

Теперь через процедуру и немного изменим условия.

Надо посчитать все цифры в числе, кот-ые кратны 3.

Код:

uses crt;

var

x:longint;

procedure nums(x:longint);

var sum,count:integer;

begin

sum:=0; count:=0;

// начинаем цикл с проверкой числа, если число законичилось,т.е. = 0, то закончить

repeat

// здесь проверяем кратность цифры

if x mod 10 <>0 then if (a mod 10) mod 3 = 0

// подсчитываем кол-во цифр

then count:= count +1;

// далее от числа убираем цифру, которую проверяли выше

x:=x div 10;

until x=0;

writeln(‘Сумма : ‘,sum);

write(‘Кол-во цифр : ‘,count);

end;

begin

clrscr;

write(‘Введите число : ‘);

read(x);

nums(x);

readln;

end.

Посчитать общее количество определенных цифр в числах

Просмотров 13.7к. Обновлено 15 октября 2021

Посчитать, сколько раз встречается определенная цифра в введенной последовательности чисел. Количество вводимых чисел и цифра, которую необходимо посчитать, задаются вводом с клавиатуры.

  1. Запросить у пользователя количество вводимых чисел (n) и цифру для подсчета (d).
  2. Присвоить счетчику цифр значение 0.
  3. Выполнить n раз цикл, в теле которого
    1. запрашивать очередное число,
    2. пока это число не сократиться до нуля
      1. извлекать последнюю его цифру и сравнивать с цифрой, которую надо посчитать,
      2. увеличивать значение счетчика цифр на 1, если сравниваемые цифры совпадают,
      3. избавляться от последней цифры числа.
  4. В конце программы вывести количество посчитанных цифр на экран.

Pascal

количество цифр в числе паскаль


var
m: word;
n,d,i, count: byte;
begin
write('Количество чисел: ');
readln(n);
write('Цифра: ');
readln(d);
count := 0;
for i:=1 to n do begin
readln(m);
while m > 0 do begin
if m mod 10 = d then
count := count + 1;
m := m div 10;
end;
end;
writeln('Количество цифр: ', count);
end.



Количество чисел: 6
Цифра: 5
301
8952
155
306
200
541
Количество цифр: 4

Язык Си


#include

main () {
int n,d,m,count,i;
printf("Количество чисел: ");
scanf("%d", &n);
printf("Цифра: ");
scanf("%d", &d);
count = 0;
for(i=0;i< n;i++) {
scanf("%d", &m);
while (m>0) {
if (m%10 == d) count += 1;
m = m / 10;
}
}
printf("Количество цифр: %dn", count);
}



Количество чисел: 4
Цифра: 1
10500
1400
500
201
Количество цифр: 3

Python

количество цифр в числе python (питон)


n = int(input("Сколько будет чисел? "))
d = int(input("Какую цифру считать? "))
count = 0
for i in range(1,n+1):
m = int(input("Число " + str(i) + ": "))
while m > 0:
if m%10 == d:
count += 1
m = m // 10

print("Было введено %d цифр %d" % (count, d))



Сколько будет чисел? 5
Какую цифру считать? 0
Число 1: 508
Число 2: 1024
Число 3: 300
Число 4: 10101
Число 5: 15
Было введено 6 цифр 0

КуМир


алг количество цифры
нач
цел m,n,d,i,count;
вывод "Количество чисел: "
ввод n
вывод "Цифра: "
ввод d
count := 0
нц для i от 1 до n
ввод m
нц пока m > 0
если mod(m,10) = d то
count := count + 1
все
m := div(m,10)
кц
кц
вывод "Количество цифр: ", count
кон



Количество чисел: 5
Цифра: 0
1099
8586
2300
15
10
Количество цифр: 4

Basic-256


input "Количество чисел: ", n
input "Цифра: ", d
c = 0
for i=1 to n
input m
while m > 0
if m%10 = d then c = c+1
m = m 10
endwhile
next i
print "Количество цифр: " + c



Количество чисел: 10
Цифра: 4
1234
11
1287
8945
200783
12
84
9600
544
244
Количество цифр: 7

ЗАДАЧА 3.14. Дано натуральное число N. Определить, является ли оно простым. Натуральное число N называется простым, если оно делится нацело без остатка только на единицу и N. Число 13 — простое, так как делится только на 1 и 13, N = 12 не является простым, так как делится на 1, 2, 3, 4, 6 и 12.

Входные данные: N — целое число.

Выходные данные: сообщение.

Промежуточные данные: i — параметр цикла, возможные делители числа N.

Алгоритм решения этой задачи (рис. 3.33) заключается в том, что необходимо определить, есть ли у числа N делители среди чисел от 2 до N/2. Если делителей нет — число простое. Предположим, что число N является простым (Pr:=true). Организуем цикл, в котором переменная i будет изменяться от 2 до N/2. В цикле будем проверять, делится ли N на i. Если делится, то мы нашли делитель, N не является простым (Pr:=false). Проверка остальных делителей не имеет смысла, аварийно покидаем цикл.

В алгоритме предусмотрено два выхода из цикла. Первый — естественный, при исчерпании всех значений параметра, а второй — досрочный. После выхода из цикла надо проверить значение Pr. Если Pr=true, то число N — простое, иначе N не является простым числом.

При составлении программы на языке Free Pascal досрочный выход из цикла удобно выполнять при помощи оператора break:

var
	N, i : integer;
	Pr : boolean;
	begin
	write ( ’N= ’ );
	readln (N);
	Pr:= true; {Предположим, что число простое.}
	for i :=2 to N div 2 do
		{Если найдется хотя бы один делитель, то}
		if N mod i = 0 then
		begin
			Pr:= false; {число простым не является и}
			break; {досрочный выход из цикла.}
		end;
		{Проверка значения логического параметра, и}
		if Pr then
			{вывод на печать соответствующего сообщения.}
			writeln ( ’Число  ’,N, ’ - простое ’ )
		else
			writeln ( ’Число  ’,N, ’  простым не является ’ );
end.

ЗАДАЧА 3.15. Определить количество простых чисел в интервале от N до M, где N и M — натуральные числа, причем N le M.

Алгоритм решения данной задачи представлен на рис. 3.34.

Обратите внимание, что здесь осуществляется проверка корректности ввода исходных данных. Если границы интервала не положительны, или значение N превышает M, ввод данных повторяется в цикле с постусловием до тех пор, пока не будут введены корректные исходные данные. Далее для каждого числа из указанного интервала (параметр i принимает значения от N до M) происходит проверка. Если число является простым, то переменная k увеличивается на единицу. Подробно определение простого числа описано в задаче 3.14.

Программа на языке Free Pascal, реализующая алгоритм подсчёта количества простых чисел в заданном диапазоне:

var N,M, i, j, k : longint;
Pr : boolean;
begin
	repeat
		write ( ’N= ’ );
		readln (N);
		write ( ’M= ’ );
		readln (M);
	until (N>0) and (M>0) and (N<M);
	k : = 0; {Количество простых чисел.}
	for i :=N to M do {Параметр i принимает значения от N до M.}
	begin
		{Определение простого числа.}
		Pr:= true;
		for j :=2 to i div 2 do
			if i mod j = 0 then
			begin
				Pr:= false;
				break;
			end;
			{Если число простое, увеличиваем количество на 1.}
			if Pr then
				k:=k+1;
	end;
	if k=0 then writeln ( ’Простых чисел в диапазоне нет ’ )
	else writeln ( ’Простых чисел в диапазоне  ’, k );
end.

ЗАДАЧА 3.16. Дано натуральное число N. Определить количество цифр в числе.

Входные данные: N — целое число.

Выходные данные: kol — количество цифр в числе.

Промежуточные данные: M — переменная для временного хранения значения N.

Для того чтобы подсчитать количество цифр в числе, необходимо определить, сколько раз заданное число можно разделить на десять нацело. Например, пусть N=12345, тогда количество цифр kol = 5. Результаты вычислений сведены в таблицу 3.8. Алгоритм определения количества цифр в числе представлен на рис. 3.35.

Таблица
3.8.
Определение количества цифр числа

kol N
1 12345
2 12345 div 10=1234
3 1234 div 10=123
4 123 div 10=12
5 12 div 10=1
1 div 10=0

Текст программы, реализующей данную задачу, можно записать так:

var
	M,N: longint;
	kol : word;
begin
	{Так как речь идёт о натуральных числах,}
	{при вводе предусмотрена проверка.}
	{Закончить цикл, если введено положительное число,}
	{иначе повторить ввод}
	repeat
		write ( ’N= ’ );
		readln (N);
	until N>0;
	M:=N; {Сохранить значение переменной N. }
	kol : = 1; {Пусть число состоит из одной цифры.}
	while M div 10 > 0 do
	{Выполнять тело цикла, пока число делится нацело на 10.}
	begin
		kol := kol +1; {Счётчик количества цифр.}
		M:=M div 1 0; {Изменение числа.}
	end;
	writeln ( ’ kol= ’, kol );
end.

ЗАДАЧА 3.17. Дано натуральное число N. Определить, содержит ли это число нули и в каких разрядах они расположены (например, число 1 101 111 011 содержит ноль в третьем и восьмом разрядах).

Входные данные: N — целое число.

Выходные данные: pos — позиция цифры в числе.

Промежуточные данные: i — параметр цикла, M — переменная для временного хранения значения N.

В связи с тем, что разряды в числе выделяются, начиная с последнего, то для определения номера разряда в числе, необходимо знать количество цифр в
числе1212Алгоритм нахождения количества цифр в числе был рассмотрен в предыдущей задаче.. Таким образом, на первом этапе решения задачи необходимо определить kol — количество цифр в числе. Затем начинаем выделять из числа цифры; если очередная цифра равна нулю, нужно вывести на экран номер разряда, который занимает эта цифра. Процесс определения текущей цифры числа N=120405 представлен в таблице 3.9.

Блок-схема алгоритма решения данной задачи показана на рис. 3.36.

Алгоритм решения задачи 3.17

Рис.
3.36.
Алгоритм решения задачи 3.17

Таблица
3.9.
Определение текущей цифры числа

i Число М Цифра Номер позиции
1 120405 div 10=12040 120405 mod 10=5 6
2 12040 div 10=1204 12040 mod 10=0 5
3 1204 div 10=120 1204 mod 10=4 4
4 120 div 10=12 120 mod 10=0 3
5 12 div 10=1 12 mod 10=2 2
6 1 div 10=0 1 mod 10=1 1

Текст программы, реализующей данный алгоритм:

var
	M,N: longint;
	i, pos, kol : word;
begin
	{Так как речь идет о натуральных числах,}
	{при вводе предусмотрена проверка.}
	{Закончить цикл, если введено положительное число,}
	{иначе повторить ввод}
	repeat
		write ( ’N= ’ );
		readln (N);
	until N>0;
	//Определение kol - количества разрядов.
	M:=N; {Сохранить значение переменной N.}
	kol : = 1; {Пусть число состоит из одной цифры.}
	while M div 10 > 0 do
	{Выполнять тело цикла, пока число делится нацело на 10.}
	begin
		kol := kol +1; {Счётчик количества цифр.}
		M:=M div 1 0; {Изменение числа.}
	end;
	writeln ( ’ kol= ’, kol );
	M:=N;
	pos : = 0; {Пусть в числе нет нулей.}
	for i :=1 to kol do
	begin
		{Выделение цифры из числа и сравнение её с нулем.}
		if (M mod 10 = 0) then
		begin
		pos := kol-i +1; {Позиция нуля в числе.}
		writeln ( ’Ноль в  ’, pos, ’м- разряде. ’ );
		end;
		M:=M div 1 0; {Изменение числа.}
	end;
	if pos=0 then writeln ( ’Число не содержит цифру 0. ’ );
end.

Понравилась статья? Поделить с друзьями:
  • Как составить письмо обращение президенту образец письма
  • Как найти правый фокус эллипса
  • Видео как найти маленьких в вк
  • Задержка в варфейс как исправить
  • Как найти площадь боковой поверхности пирамиды квадрат