Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2011, 18:14   #1
amegi
Новичок
Джуниор
 
Регистрация: 20.01.2011
Сообщений: 1
Вопрос В заданной последовательности поменять местами максимальный и минимальный члены

Задание было: В текстовом файле содержится последовательность действительных чисел. В заданной последовательности поменять местами максимальный и минимальный члены. Измененную последовательность переписать в результирующий файл. Имена исходного и результирующего файлов вводятся с клавиатуры.
Что у меня вышло:

Код:
program zadacha3;
uses crt;
var f:file of real;
i, nmax, nmin :integer;
a:array[0..10] of real;
max,min:real;
begin
clrscr;
assign(f,'1.txt');
reset(f);
for i:=0 to filesize(f)-1 do
begin
read(f,a[i]);
write(a[i]:1:2,' ');
end;
max:=a[0]; nmax:=0;
min:=a[0]; nmin:=0;
for i:=1 to filesize(f)-1 do
begin
if a[i]>max then
begin
max:=a[i];
nmax:=i
end;
if a[i]<min then
begin
min:=a[i];
nmin:=i
end;
end;
seek(f,nmax);
write(f,min);
seek(f,nmin);
write(f,max);
close(f);
rename(f,'2.txt');
readln;
end.
в конце показывает мне нули, да к тому же не могу реализовать ввод имени конечного файла с клавиатуры, пробывал сделать такой элемент:
Код Pascal

Код:
close(f);
writeln (s, 'vvod s.txt');
rename(f,'s');
readln;
end.
не получилось, не говоря уже про ввод имени с клавиатуры исходного файла.

Помоги пожалуйста исправить мои ошибки

Последний раз редактировалось Stilet; 22.01.2011 в 21:03.
amegi вне форума Ответить с цитированием
Старый 22.01.2011, 20:41   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
В текстовом файле
Сказано же в текстовом файле. Зачем было типизированный файл использовать
Код:
var
  f:Text;
  Ishod_Name:string[90];
  Rezul_Name:String[90];
  i, nmax, nmin,kol :integer;
  a:array[0..10] of Integer;
  max,min,n,buf:Integer;
begin
  Write('Vvedite imya ishodnogo fayla:');
  Readln(Ishod_Name);
  Writeln;
  Write('Vvedite imya vihodnogo fayla: ');
  Readln(Rezul_Name);
  assign(f,Ishod_Name);
  reset(f);
  i:=0;
  While Not EOF(F) do
  begin
    Inc(i);
    read(f,n);
    A[i]:=n;
    write(a[i]:3);
  end;
  Close(F);
  Writeln;
  Writeln;
  Kol:=i;
  Max:=Low(Integer);
  Min:=High(Integer);
  For i:=1 to Kol do
  Begin
    If A[i] > Max then
    Begin
      Max:=A[i];
      nmax:=i
    End;
    If A[i] < Min then
    Begin
      Min:=A[i];
      nmin:=i
    end;
  End;
  Buf:=A[nmax];
  A[nmax]:=A[nmin];
  A[nmin]:=Buf;
  For i:=1 to Kol do
  Write(A[i]:3);
  assign(f,Rezul_Name);
  Rewrite(f);
  For i:=1 to Kol do
  Begin
    Write(F,A[i],' ')
  End;
  Close(F);
  readln
End.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 22.01.2011, 21:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

С потолка по твоему коду:
Код:
program zadacha3;
uses crt;
var f1,f2:file of real;
i, max, min :integer;q,w:string;
a:array[1..10] of real;r:real;
begin
 clrscr;
 write('Входной файл ');  Readln(q); assign(f,q);  reset(f);
 write('Выходной файл ');Readln(q); assign(f2,w);rewrite(f2);
 max:=1;Min:=1;
 While Not Eof(f2) do begin
  read(f,a[i]);write(a[i]:1:2,' ');
  if a[i]<a[min] then min:=i;
  if a[i]>a[max] then max:=i;
 end;
r:=a[min];a[min]:=a[max];a[max]:=r;
close(f);
for i:=1 to 10 do write(f2,a[i]);close(f2);
readln;
end.
Не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
члены последовательности amikulia Помощь студентам 0 14.01.2011 12:35
Даны действительные числа, а1 а20 .Поменять в этой последовательности местами: Zhasik Помощь студентам 1 27.12.2010 18:18
Паскаль! поменять местами максимальный и минимальный элемент матрицы. wrmarw Помощь студентам 4 08.05.2010 13:06
Максимальный элемент массива поменять местами с четвертым. Katie Помощь студентам 2 13.01.2010 05:59
Задача на СИ в заданной матрице поменять местами первую строку и первый столбец %( defol-777 Помощь студентам 2 14.01.2009 09:59