IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> В файле переставить компоненты..., В обратном порядке...
dimaeyeore
сообщение 15.12.2005 18:45
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Дима

Репутация: -  0  +


Привет всем !! Помогите пожалуйста решить лабу:
Ввести с клавиатуры файл F действ. чисел. Компоненты файла, стоящие между наибольшим и наименьшим компонентом, переставить в обратном порядке. Выдать на печать преобразованный файл.
Умоляю 1.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 16.12.2005 10:03
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Код
F:file of real;
...
{ Ввести файл }
...
ReWrite(f);
while (Не признак конца ввода } do
begin
  read(r);
  write(f,r);
end;
Найти макс. и мин. элементы - элементарная задача. Поищи на форуме.
Для упрощения файл можно считать в массив. Но можно и без него. Тогда при чтении чисел из файла запоминай номера позиций.

Поменять числа в файле:
Примерно так:
Код
for i:=1 to MaxPos to Minpos do
begin
  ...
seek(f,i);
read(i,r);
temp:=r;
seek(f,maxpos-i);
write(f,temp);
...
end;


Все вышесказанное для идеального случая, когда и макс. и мин. по одному.

Сообщение отредактировано: Ozzя - 16.12.2005 10:04
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
dimaeyeore
сообщение 18.12.2005 7:43
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Дима

Репутация: -  0  +


Не знаю почему но прога не работает

program laba4;
Uses crt;
Type fl=file of real;
Var f:fl;
procedure zap(var f:fl);{##########################################}
Var n,i:integer;
a:real;
Begin
clrscr;
rewrite(f);
write('enter number of elements');
readln(n);
for i:=1 to n do
Begin
write('element#',i,'=');
readln(a);
write(f,a);
end;
close(f);
end;
procedure out(var f:fl);{##########################################}
Var a:real;
Begin
clrscr;
reset(f);
while not eof(f) do
Begin
read(f,a);
write(a:5:5,' ');
end;
end;
procedure oprpos(var f:fl; var imin,imax:integer);{###################}
Var max,min,a:real;
i:integer;
Begin
i:=0;
read(f,max);
min:=max; imax:=1;
imin:=imax;
while not eof(f) do
Begin
read(f,a); i:=i+1;
if a>max then
Begin
imax:=i;
max:=a;
end;
if a<min then
Begin
imin:=i;
min:=a;
end;
end;
end;
procedure preobr(var f:fl);{#########################################}
Var imin,imax,i:integer; max,min:integer;
a,b:real;
Begin
reset(f);
oprpos(f,imin,imax);
if imax>imin then
Begin
max:=imax; min:=imin;
end;
if imin>imax then
Begin
max:=imin; min:=imax;
end;
while (min+i<max-i) do
Begin
seek(f,min+i);
read(f,a);
seek(f,max-i);
read(f,b);
seek(f,min+i);
write(f,b);
seek(f,max-i);
write(f,a);
end;
close(f);
end;
Begin
assign(f,'t.txt');
zap(f);
out(f);
preobr(f);
readkey;
end.


 ! 
Ты сам что, кнопку "CODE" нажать не можешь? Или ты считаешь, что тебе мало того, что программу исправлять, так еще и все посты править модераторы должны? dry.gif



Сообщение отредактировано: volvo - 7.11.2006 17:22
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.12.2005 10:14
Сообщение #4


Гость






while (min+i<max-i) do
Begin ...


А где у тебя i изменяется? И, кстати, чему оно равно в начале цикла?
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 3:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"