Пожалуйста помогите решить
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
на Турбо паскале
Вот условие:
Описать функцию DigitCount(K) целого типа, находящую количество целого положительного числа К. Используя ету функцию, найти количество цифр для каждого из пяти данных целых положительных чисел.
Вот условие:
Описать функцию DigitCount(K) целого типа, находящую количество целого положительного числа К. Используя ету функцию, найти количество цифр для каждого из пяти данных целых положительных чисел.
Как-то так:
[syntax='delphi']
program DgCnt;
const
N=5;
var
A:array[1..N] of longint;
i:integer;
{Сама функция}
function DigitCount(Num:longint):integer;
var
s:string;
begin
str(Num,s);
DigitCount:=Length(s);
end;
begin
writeln('Введите 5 чисел');
for i:=1 to N do
readln(A);
for i:=1 to N do
writeln('Число ',A,' содержит ',DigitCount(A),' цифр(ы)');
readln;
end.
end.
[/syntax]
[syntax='delphi']
program DgCnt;
const
N=5;
var
A:array[1..N] of longint;
i:integer;
{Сама функция}
function DigitCount(Num:longint):integer;
var
s:string;
begin
str(Num,s);
DigitCount:=Length(s);
end;
begin
writeln('Введите 5 чисел');
for i:=1 to N do
readln(A);
for i:=1 to N do
writeln('Число ',A,' содержит ',DigitCount(A),' цифр(ы)');
readln;
end.
end.
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
Кста, был бы очень презнателен, если ктонибудь обьяснит ету задачку парусски 

[syntax='delphi']
program DgCnt;
const
N=5;{Количество чисел}
var
A:array[1..N] of longint;{Массив для хранения чисел}
i:integer;{Счетчик}
{Сама функция}
function DigitCount(Num:longint):integer;
var
s:string;{Нужна для хранения строкового представления числа}
begin
str(Num,s);{Преобразуем число в строку}
DigitCount:=Length(s); {Количество цифр = количеству символов в записи числа}
end;
begin
writeln('Введите 5 чисел');
for i:=1 to N do
readln(A); {Ввод данных в массив}
for i:=1 to N do
writeln('Число ',
A,{Вывод числа}
' содержит ',
DigitCount(A),{Выполнение функции DigitCount и вывод результата её работы}
' цифр(ы)');
readln;
end.
[/syntax]
Вообще, что конкретно не ясно?
program DgCnt;
const
N=5;{Количество чисел}
var
A:array[1..N] of longint;{Массив для хранения чисел}
i:integer;{Счетчик}
{Сама функция}
function DigitCount(Num:longint):integer;
var
s:string;{Нужна для хранения строкового представления числа}
begin
str(Num,s);{Преобразуем число в строку}
DigitCount:=Length(s); {Количество цифр = количеству символов в записи числа}
end;
begin
writeln('Введите 5 чисел');
for i:=1 to N do
readln(A); {Ввод данных в массив}
for i:=1 to N do
writeln('Число ',
A,{Вывод числа}
' содержит ',
DigitCount(A),{Выполнение функции DigitCount и вывод результата её работы}
' цифр(ы)');
readln;
end.
[/syntax]
Вообще, что конкретно не ясно?
Ни что так не ограничивает фантазию программиста, как компилятор...
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
Mpak, а какая именно часть программы непонятна?
функция DigitCount работает так - число Num, переданное в функцию в качестве параметра переводится в строку s - и количество чисел в числе = длине полученной строки s
функция DigitCount работает так - число Num, переданное в функцию в качестве параметра переводится в строку s - и количество чисел в числе = длине полученной строки s
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
MOTOCoder, респект, опередил!!! ;-))
Код: Выделить всё
function DigitCount(Num:longint):integer;
var s:string;
begin
str(Num,s);
DigitCount:=Length(s);
end;

Ф-ия, за счет наличия символа '-' в полученной строке, вернет на единицу больше цифр, чем есть.
Код: Выделить всё
function DigitCount(Num:longint):integer;
var s:string;
begin
str (Num,s);
if (Num >= 0) then
DigitCount := Length(s)
else
DigitCount := Length(s) - 1;
end;
Тоже про это думал, но потом вниматльно прочитал условие:BBB писал(а): А если в ф-ию придет отрицательное num ?
Ф-ия, за счет наличия символа '-' в полученной строке, вернет на единицу больше цифр, чем есть.
Описать функцию DigitCount(K) целого типа, находящую количество целого положительного числа К.
Ни что так не ограничивает фантазию программиста, как компилятор...
проще было написать натурального числа