Описать функцию подсчета количества цифр в числе - PascalABC.NET
Формулировка задачи:
Описать функцию DigitCount(К) целого типа, находящую количество цифр целого
положительного числа К. Используя эту функцию, сформировать массив В, каждый
элемент которого равен количеству цифр соответствующего элемента массива А
размера N.
Входной файл может быть произвольным
Есть небольшие наработки, не могу понять как сделать что бы количество цифр выводилось в другой массив
Листинг программы
- const
- MaxCount = 200;
- type
- T_number = integer;
- T_elem = integer;
- T_size = 1..MaxCount;
- T_mas = array [T_size] of T_elem;
- ///Нахождение количества цифр в элементе массива
- function DigitCount(k: longint): byte;
- var
- n: longint;
- s: byte;
- begin
- n := abs(k);
- s := 0;
- while n > 10 do
- begin
- n := n div 10;
- s := s + 1
- end;
- DigitCount := s + 1
- end;
- ///Чтение из файла массива А размерностью n
- procedure input_output_mas(var A: T_mas; var Rmas: T_size; var num: T_number);
- begin
- num := 0;
- //assign(output, 'output.txt');
- assign(input, 'input.txt');
- Rmas := 0;
- while not eof(input) do
- begin
- inc(rmas); //текущая размерность массива
- read(A[rmas]);
- write(A[rmas], ' ');
- writeln('Колличество чисел = ', digitCount(a[rmas]));
- num := digitCount(a[rmas]);
- //assign(output, 'output.txt');
- //rewrite(output);
- //readln(num);
- // write(output, num);
- end;
- // close(output);
- close(input);
- end;
- var
- A: T_mas; //исходный массив
- Rmas: T_size;//кол-во элементов
- num: T_number;
- begin
- writeln('Исходный массив: ');
- input_output_mas(a, Rmas, num);
- writeln();
- end.
Решение задачи: «Описать функцию подсчета количества цифр в числе»
textual
Листинг программы
- const
- MaxCount = 200;
- type
- T_number = integer;
- T_elem = integer;
- T_size = 1..MaxCount;
- T_mas = array [T_size] of T_elem;
- ///Нахождение количества цифр в элементе массива
- function DigitCount(k: longint): byte;
- var
- n: longint;
- s: byte;
- begin
- n := abs(k);
- s := 0;
- while n > 10 do
- begin
- n := n div 10;
- s := s + 1
- end;
- DigitCount := s + 1
- end;
- ///Чтение из файла массива А размерностью n
- procedure input_output_mas(var A, B: T_mas; var Rmas: T_size);
- begin
- assign(input, 'input.txt');
- Rmas := 0;
- while not eof(input) do
- begin
- inc(rmas); //текущая размерность массива
- read(A[rmas]);
- write(A[rmas], ' ');
- writeln('Колличество чисел = ', digitCount(a[rmas]));
- B[rmas] := digitCount(a[rmas]);
- end;
- close(input);
- assign(output, 'output.txt');
- for var i := 1 to rmas do
- write(output, b[i]:3);
- close(output);
- writeln('************************');
- writeln(' НОВЫЙ МАССИВ');
- writeln('************************');
- for var i := 1 to rmas do
- write(b[i]:3);
- end;
- var
- A, B: T_mas; //исходный массив
- Rmas: T_size;//кол-во элементов
- num: T_number;
- begin
- writeln('Исходный массив: ');
- input_output_mas(a, b, Rmas);
- writeln();
- end.
Объяснение кода листинга программы
- Объявляются константы и типы данных для задачи.
- Функция DigitCount(k: longint): byte; отвечает за подсчет количества цифр в числе k.
- Функция input_output_mas(var A, B: T_mas; var Rmas: T_size) отвечает за чтение из файла массива А размерностью n, подсчет количества цифр в каждом числе и запись в файл output.txt.
- Создаются и инициализируются переменные A, B, Rmas и num типа T_mas, T_number, T_size.
- Выводится сообщение об исходном массиве.
- Вызывается функция input_output_mas(a, b, Rmas); для чтения из файла input.txt и записи в файл output.txt.
- Выводится сообщение о новом массиве, созданном на основе данных из файла output.txt.
- Задачу можно считать решенной.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д