Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/17: Рейтинг темы: голосов - 17, средняя оценка - 4.59
klik-1992
0 / 0 / 0
Регистрация: 20.12.2009
Сообщений: 14
#1

В типизированном файле поменять местами минимальный и максимальный элементы.

22.02.2010, 19:48. Просмотров 3005. Ответов 8
Метки нет (Все метки)

Дан файл вещественных чисел. Поменять в нем местами минимальный и максимальный элементы.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2010, 19:48
Ответы с готовыми решениями:

В матрице найти минимальный и максимальный элементы и их координаты, поменять местами минимальный и максимальный элементы
В матрице размером n на m (1<n, m<10) (ввод n, m и матрицы с клавиатуры) найти...

Найти минимальный и максимальный элементы и их координаты, поменять местами минимальный и максимальный элемент
3) В матрице размером n на m (1<n, m<10) (ввод n, m и матрицы с клавиатуры)...

Поменять местами минимальный и максимальный элементы массива
Дан массив S(100,100).поменять местами минимальный и максимальный элементы и...

Поменять местами максимальный и минимальный элементы матрицы
Матрица,размерности н х м,вводится из текстового файла.Если сумма элементов...

Поменять местами минимальный и максимальный элементы массива
Поменять местами минимальный и максимальный элементы массива

8
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,516
22.02.2010, 20:22 #2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
uses crt;
var f:file of real;
    a,b,max,min,x:real;
    i,imn,imx:integer;
begin
clrscr;
assign(f,'fileF');
rewrite(f);
writeln('Введите в файл действительные числа, окончание ввода 0:');
repeat
write('a=');
readln(a);
write(f,a);
until a=0;
clrscr;
writeln('Содержание исходного файла:');
reset(f);
while not eof(f) do
 begin
  read(f,a);
  write(a:0:2,' ');
 end;
writeln;
close(f);
reset(f);
read(f,min);
max:=min;
imn:=0;
imx:=0;
for i:=0 to filesize(f)-1 do
 begin
  seek(f,i);
  read(f,a);
  if a>max then
   begin
    max:=a;
    imx:=i;
   end;
  if a<min then
   begin
    min:=a;
    imn:=i;
   end;
 end;
close(f);
writeln;
writeln('Минимальный =',min:0:2,' его индекс=',imn);
writeln('Максимальный=',max:0:2,' его индекс=',imx);
writeln;
reset(f);
seek(f,imn);
read(f,a);
seek(f,imx);
read(f,b);
seek(f,imn);
write(f,b);
seek(f,imx);
write(f,a);
close(f);
writeln('Содержание файла после обмена макс и мин элементов:');
reset(f);
while not eof(f) do
 begin
  read(f,a);
  write(a:0:2,' ');
 end;
close(f);
readln
end.
0
voice8787
19 / 19 / 12
Регистрация: 21.08.2010
Сообщений: 136
09.09.2010, 15:19 #3
Пишу аналогичную программу, не подскажете почему не принимается запись:
Pascal
1
min:=a[0];
если записать
Pascal
1
i:=0; min:=a[i];
, то уже работает

вот сама программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
program maxmin;
uses crt;
var
q:file of real;
min,max:real;
a:array[1..100] of real;
i,nommax,nommin:integer;
begin
clrscr;
assign(q,'D:\pas\files\Q.DAT');
reset(q);
for i:=0 to filesize(q)-1 do
begin
read(q,a[i]);
writeln(a[i]);
end;
 
min:=a[0];
max:=a[0];
nommin:=0;
nommax:=0;
 
 
for i:=1 to filesize(q)-1 do
begin
 
if a[i]<min then
begin
min:=a[i];
nommin:=i;
end;
 
if a[i]>max then
begin
max:=a[i];
nommax:=i;
end;
end;
writeln('min=',min);
writeln('max=',max);
 
writeln('nommin=',nommin);
writeln('nommax=',nommax);
 
seek(q,nommax);
write(q,min);
seek(q,nommin);
write(q,max);
close(q);
 
reset(q);
for i:=0 to filesize(q)-1 do
begin
read(q,a[i]);
writeln(a[i]);
end;
close(q);
 
readln
end.
0
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,516
09.09.2010, 15:27 #4
Так ты бы хоть файл скинул, а то у меня например нет файла
D:\pas\files\Q.DAT
0
voice8787
19 / 19 / 12
Регистрация: 21.08.2010
Сообщений: 136
09.09.2010, 15:31 #5
Вот файл
0
Вложения
Тип файла: rar Q.rar (87 байт, 42 просмотров)
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,516
09.09.2010, 15:33 #6
А ошибка такая
Цитата Сообщение от voice8787 Посмотреть сообщение
a:array[1..100] of real;
или нужно
Pascal
1
a:array[0..100] of real;
или когда читаешь
Pascal
1
2
3
for i:=0 to filesize(q)-1 do
begin
read(q,a[i+1]);
и тогда min:=a[1];
А вообще зачем массив? Нужно либо массив использовать, либо файл, типизированный файл сам как массив, тоже индексы.
Минимум ищут так.
Pascal
1
2
3
4
5
6
7
8
reset(f);
read(f, min)
while not eof(f) do
 begin
  read(f,a);//здесь а просто var a:integer;
  if a<min then min:=a;
 end;
close(f);
1
voice8787
19 / 19 / 12
Регистрация: 21.08.2010
Сообщений: 136
09.09.2010, 15:38 #7
аа, точно))

спасибо!!!
0
Puporev
Модератор
54217 / 41850 / 28922
Регистрация: 18.05.2008
Сообщений: 98,516
09.09.2010, 15:42 #8
Я бы написал так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
program maxmin;
uses crt;
var q:file of real;
    min,max,a:real;
    i,nommax,nommin:integer;
begin
clrscr;
assign(q,'Q.DAT');//у меня файл в папке с программой
reset(q);
writeln('Исходный файл:');
read(q,min);
write(min:0:2,' ');
max:=min;
nommin:=0;
nommax:=0;
for i:=1 to filesize(q)-1 do
 begin
  read(q,a);
  write(a:0:2,' ');
  if a<min then
   begin
    min:=a;
    nommin:=i;
   end
  else if a>max then
   begin
    max:=a;
    nommax:=i;
   end;
 end;
writeln;
writeln('min=',min:0:2);
writeln('max=',max:0:2);
writeln('nommin=',nommin);
writeln('nommax=',nommax);
seek(q,nommax);
write(q,min);
seek(q,nommin);
write(q,max);
close(q);
reset(q);
for i:=0 to filesize(q)-1 do
 begin
  read(q,a);
  write(a:0:2,' ');
 end;
close(q);
readln
end.
1
voice8787
19 / 19 / 12
Регистрация: 21.08.2010
Сообщений: 136
09.09.2010, 15:49 #9
действительно, можно и без массива спокойно обойтись.
спасибо, Puporev!
0
09.09.2010, 15:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2010, 15:49

В векторе У(m) поменять местами максимальный и минимальный элементы
В векторе У(m) поменять местами максимальный и минимальный элементы....

Поменять местами минимальный и максимальный элементы массива
Поменять местами минимальный и максимальный элементы мас-сива.

В массиве поменять местами максимальный и минимальный элементы
1) Дан текст, содержащий от 1 до 70 букв, за которым следует точка. Напечатать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru