Нужно вчленить код одной программы в другую - Free Pascal

Узнай цену своей работы

Формулировка задачи:

МНЕ НУЖНО ЧТОБЫ ДАННАЯ ПРЕОБРАЗОВАННАЯ СТРОКА ИЗ "ПРОГРАММЫ 2" БЫЛА НЕ ТОЛЬКО НАПИСАНА В ОКНЕ ПРОГРАММЫ НО И СОХРАНЯЛАСЬ АВТОМАТИЧЕСКИ В СОЗДАВАЕМЫХ ФАЙЛАХ ИЗ "ПРОГРАММЫ 1"

"Программа 1" которая создает два файла по указанному маршруту
program example3;
begin
    ClrScr; 
    Writeln ('Vvedite stroku iz bukv i cifr'); 
    Readln(S); 
    Assign (ftext,S);;
    if ioResult=0 then
      Rewrite(ftext)
    else
 begin
   Writeln ('File not found!!'); 
   Halt;
 end;
    for i:=1 to 10 do
      Writeln(ftext,i);
    Close(ftext); 
    Writeln ('Vvedite stroku iz bukv i cifr'); 
    Readln(S); 
    Assign(fbin,S);;
    if IOResult=0 then
      Rewrite(fbin)
    else
 begin
   Writeln ('File not found!!'); 
   Halt;
 end;
    for j:=1 to 10 do
      Write (fbin,j);
    Close(fbin); 
Writeln ('Press Enter');
Readln;
end.
"Программа 2" которая преобразует строку заменяя в ней каждую цифру соответствующим числом пробелов
var k:string;
    m:char; 
begin
writeln('Введите строку, содержащую цифры');
readln(k);
for var u:=length(k)downto 1 do
if s[u]in['0'..'9'] then 
 begin
  m:=k[u];
  delete(k,u,1);
  if m in ['1'..'9'] then
  for var y:=1 to ord(m)-48 do
  insert(' ',k,u);
 end;
write(k) 
end.

Решение задачи: «Нужно вчленить код одной программы в другую»

textual
Листинг программы
  for var u:=Length(k) downto 1 do
    if k[u]='0' then Delete(k,u,1)
    else if k[u] in ['1'..'9'] then begin
      k[u]:=' ';
      Insert(' '*(Ord(k[u])-Ord('0')-1),k,u+1);
    end;

Объяснение кода листинга программы

  1. В цикле for перебираются все элементы массива k в обратном порядке, начиная с последнего элемента.
  2. Для каждого элемента u проверяется его значение.
  3. Если значение u равно '0', то вызывается функция Delete, которая удаляет этот элемент из массива k.
  4. Если значение u принадлежит диапазону от '1' до '9', то значение u заменяется на пробел, а в следующую ячейку массива k вставляется пробел, количество которых определяется как разница между порядковым номером элемента и его числовым значением, сдвинутым на единицу влево.
  5. В итоге, в массиве k остаются только пробелы и числа от '1' до '9', разделенные пробелами.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5
Похожие ответы