Ввести имя файла и изменить его ** расширение ".exe". Помогите дописать задачу: program...

0 голосов

Ввести имя файла и изменить его на расширение ".exe". Помогите дописать задачу:
program qq;
var s:string;
n: integer;
begin
s:=('Привет.txt');
read(s);
n:=Pos('.',s);
Pelete(s,n+1,3);
s:=


спросил от (22 баллов) в категории Информатика
2 Ответы
0 голосов
ответил от БОГ (150k баллов)
 
Лучший ответ
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadlnString;
  var p:=LastPos('.',s);
  if p=0 then s+='.exe'
  else s:=s[:p+1]+'exe';
  Writeln(s)
end.

Примеры
Привет.txt
Привет.exe

D:\Files\MyDir\Salut.html
D:\Files\MyDir\Salut.exe

Щас укушу
Щас укушу.exe
0 голосов
ответил от БОГ (194k баллов)

Замечание: предполагается, что в имени файла нет ".".
program qq;
var s:string;
begin
writeln('Введите имя файла:');
readln(s);
s:=copy(s,1,pos('.',s))+'exe';
writeln(s);
end.

Пример:
Введите имя файла:
Привет.txt
Привет.exe

оставил комментарий от (22 баллов)

А возможно написать эту задачу используя это:

оставил комментарий от (22 баллов)

n:=Pos('.',s);
Pelete(s,n+1,3);

оставил комментарий от БОГ (194k баллов)

Нет такого Pelete(s,n+1,3); Есть Delete()

оставил комментарий от (22 баллов)

Ну тогда :n:=Pos('.',s);
Delete(s,n+1,3);

оставил комментарий от (22 баллов)

Возможно написать эту задачу используя это: n:=Pos('.',s);
Delete(s,n+1,3);?

оставил комментарий от БОГ (194k баллов)

Существует много способов решить эту задачу. Если использовать n:=Pos('.',s); и Delete(s,n+1,3); получится сложнее и длиннее.

...